libpappsomspp
Library for mass spectrometry
pappso::cbor::psm::PsmFeaturesScan Class Reference

#include <psmfeaturesscan.h>

Inheritance diagram for pappso::cbor::psm::PsmFeaturesScan:
pappso::cbor::psm::CborScanMapBase

Public Member Functions

 PsmFeaturesScan (const PsmFileScanProcess &psm_file_scan_process, pappso::XtandemSpectrumProcess &tandem_spectrum_process, std::list< pappso::PeptideIon > &ion_list, pappso::PsmFeatures &psm_features, pappso::PrecisionPtr fragment_tolerance)
 
virtual ~PsmFeaturesScan ()
 
- Public Member Functions inherited from pappso::cbor::psm::CborScanMapBase
 CborScanMapBase (const PsmFileScanProcess &psm_file_scan_process)
 
virtual ~CborScanMapBase ()
 
virtual void process ()
 
std::vector< double >::iterator addPsmEvalVectorDouble (const QString &eval_name, const QString &eval_value_key, std::vector< double >::iterator begin, std::vector< double >::const_iterator end)
 add a new eval key and double values (from a vector) to each PSM More...
 
QCborMap getCborScanId () const
 
QCborMap getCborScanPrecursor () const
 
QCborArray getCborPsmList () const
 

Protected Member Functions

void process () override
 
double checkInf (double input) const
 
- Protected Member Functions inherited from pappso::cbor::psm::CborScanMapBase
pappso::QualifiedMassSpectrumSPtr getCurrentQualifiedMassSpectrumSPtr () const
 

Private Attributes

pappso::XtandemSpectrumProcessm_tandemSpectrumProcess
 
std::list< pappso::PeptideIon > & m_ionList
 
pappso::PsmFeatures m_psmFeatures
 
pappso::PrecisionPtr m_fragmentTolerance
 

Additional Inherited Members

- Protected Attributes inherited from pappso::cbor::psm::CborScanMapBase
const PsmFileScanProcessm_PsmFileScanProcess
 

Detailed Description

Todo:
write docs

Definition at line 38 of file psmfeaturesscan.h.

Constructor & Destructor Documentation

◆ PsmFeaturesScan()

pappso::cbor::psm::PsmFeaturesScan::PsmFeaturesScan ( const PsmFileScanProcess psm_file_scan_process,
pappso::XtandemSpectrumProcess tandem_spectrum_process,
std::list< pappso::PeptideIon > &  ion_list,
pappso::PsmFeatures psm_features,
pappso::PrecisionPtr  fragment_tolerance 
)

Default constructor

Definition at line 35 of file psmfeaturesscan.cpp.

41 : CborScanMapBase(psm_file_scan_process),
42 m_tandemSpectrumProcess(tandem_spectrum_process),
43 m_ionList(ion_list),
44 m_psmFeatures(psm_features)
45{
46 m_fragmentTolerance = fragment_tolerance;
47}
CborScanMapBase(const PsmFileScanProcess &psm_file_scan_process)
pappso::XtandemSpectrumProcess & m_tandemSpectrumProcess
std::list< pappso::PeptideIon > & m_ionList
pappso::PrecisionPtr m_fragmentTolerance

References m_fragmentTolerance.

◆ ~PsmFeaturesScan()

pappso::cbor::psm::PsmFeaturesScan::~PsmFeaturesScan ( )
virtual

Destructor

Definition at line 49 of file psmfeaturesscan.cpp.

50{
51}

Member Function Documentation

◆ checkInf()

double pappso::cbor::psm::PsmFeaturesScan::checkInf ( double  input) const
protected

Definition at line 54 of file psmfeaturesscan.cpp.

55{
56 if(input < 0)
57 return 0;
58 return input;
59}

◆ process()

void pappso::cbor::psm::PsmFeaturesScan::process ( )
overrideprotectedvirtual

Reimplemented from pappso::cbor::psm::CborScanMapBase.

Definition at line 62 of file psmfeaturesscan.cpp.

63{
64
65 if(keys().contains("psm_list"))
66 {
68
69 pappso::MassSpectrum spectrum =
70 m_tandemSpectrumProcess.process(*qualified_mass_spectrum.get()->getMassSpectrumSPtr().get(),
71 qualified_mass_spectrum.get()->getPrecursorMz(),
72 qualified_mass_spectrum.get()->getPrecursorCharge());
73
74 QCborArray new_psm_arr;
75 for(QCborValue cbor_psm : value("psm_list").toArray())
76 {
77 QCborMap cbor_psm_map = cbor_psm.toMap();
78 QCborMap cbor_psm_features;
79 pappso::PeptideSp peptide_sp =
80 pappso::PeptideProFormaParser::parseString(cbor_psm_map.value("proforma").toString());
81
82
83 std::size_t peptide_size = peptide_sp.get()->size();
84 cbor_psm_features.insert(QString("peptide_size"), (unsigned int)peptide_size);
85
86 pappso::XtandemHyperscore hyperscore(spectrum,
87 peptide_sp,
88 qualified_mass_spectrum.get()->getPrecursorCharge(),
91 true);
92 cbor_psm_features.insert(QString("hyperscore"), QCborValue(hyperscore.getHyperscore()));
93
94
96 peptide_sp,
97 qualified_mass_spectrum.get()->getMassSpectrumSPtr().get(),
98 qualified_mass_spectrum.get()->getPrecursorCharge(),
99 2);
100 // TIC
101 cbor_psm_features.insert(QString("total_intensity"),
102 std::log(m_psmFeatures.getTotalIntensity()));
103 // MaxIntALL
104 cbor_psm_features.insert(QString("max_intensity"),
105 checkInf(std::log(qualified_mass_spectrum.get()
106 ->getMassSpectrumSPtr()
107 .get()
108 ->maxIntensityDataPoint()
109 .y)));
110
111 // MaxYionInt
112 cbor_psm_features.insert(
113 QString("MaxYionInt"),
115
116 // MaxBionInt
117 cbor_psm_features.insert(
118 QString("MaxBionInt"),
120
121 // SumYmatchInt
122 cbor_psm_features.insert(
123 QString("SumYmatchInt"),
125
126 // SumBmatchInt
127 cbor_psm_features.insert(
128 QString("SumBmatchInt"),
130
131 // FracYmatchInt
132 cbor_psm_features.insert(
133 QString("FracYmatchInt"),
136 // FracBmatchInt
137 cbor_psm_features.insert(
138 QString("FracBmatchInt"),
141
142 // SeqCoverYion
143 cbor_psm_features.insert(
144 QString("SeqCoverYion"),
146 (double)peptide_size);
147 // SeqCoverBion
148 cbor_psm_features.insert(
149 QString("SeqCoverBion"),
151 (double)peptide_size);
152
153
154 // ConsecutiveYion
155 cbor_psm_features.insert(
156 QString("ConsecutiveYion"),
158 // ConsecutiveBion
159 cbor_psm_features.insert(
160 QString("ConsecutiveBion"),
162
163 // MassErrMean
164 cbor_psm_features.insert(QString("MassErrMean"), m_psmFeatures.getMatchedMzDiffMean());
165
166 // MassErrSD
167 cbor_psm_features.insert(QString("MassErrSD"), m_psmFeatures.getMatchedMzDiffSd());
168
169 // NumofAnnoPeaks
170 cbor_psm_features.insert(QString("NumofAnnoPeaks"),
171 (unsigned int)m_psmFeatures.getNumberOfMatchedIons());
172
173 // NumofComplementPeaks
174 std::size_t num_of_pairs = m_psmFeatures.countMatchedIonComplementPairs();
175 cbor_psm_features.insert(QString("NumofComplementPeaks"), (unsigned int)num_of_pairs);
176 if(num_of_pairs > 0)
177 {
178 // SumComplementPeaksInt
179 cbor_psm_features.insert(
180 QString("SumComplementPeaksInt"),
182
183 // FracComplementPeaksInt
184 cbor_psm_features.insert(
185 QString("FracComplementPeaksInt"),
188 // SeqCoverComplementPeaks
189 cbor_psm_features.insert(
190 QString("SeqCoverComplementPeaks"),
192 (double)peptide_size);
193 }
195 cbor_psm_features.insert(QString("lrSize"), (unsigned int)lr.getSize());
196
197
198 double coeff_of_determination = lr.getCoefficientOfDetermination();
199 if(std::isnan(coeff_of_determination))
200 {
201 }
202 else
203 {
204 cbor_psm_features.insert(QString("lrCoeffDet"), coeff_of_determination);
205 }
206
207
208 QCborMap psm_eval = cbor_psm_map.value("eval").toMap();
209 psm_eval.remove(QString("features"));
210 psm_eval.insert(QString("features"), cbor_psm_features);
211 cbor_psm_map.remove(QString("eval"));
212 cbor_psm_map.insert(QString("eval"), psm_eval);
213
214 new_psm_arr.push_back(cbor_psm_map);
215 }
216
217 insert(QString("psm_list"), new_psm_arr);
218 }
219}
std::size_t getSize() const
get data size
double getCoefficientOfDetermination() const
get Coefficient of determination (R2)
Class to represent a mass spectrum.
Definition: massspectrum.h:73
static PeptideSp parseString(const QString &pepstr)
std::size_t getNumberOfMatchedIons() const
number of matched ions (peaks)
double getTotalIntensity() const
sum of all peak intensities (matched or not)
double getMatchedMzDiffMean() const
get mean deviation of matched peak mass delta
double getTotalIntensityOfMatchedIonComplementPairs() const
intensity of matched ion complement
std::size_t countMatchedIonComplementPairs() const
count the number of matched ion complement
std::size_t getComplementPairsAaSequenceCoverage()
number of amino acid covered by matched complement pairs of ions
LinearRegression getIonIsotopeLinearRegression() const
double getMaxIntensityPeakIonMatch(PeptideIon ion_type) const
std::size_t getMaxConsecutiveIon(PeptideIon ion_type)
get the maximum consecutive fragments of one ion type
void setPeptideSpectrumCharge(const pappso::PeptideSp peptideSp, const MassSpectrum *p_spectrum, unsigned int parent_charge, unsigned int max_isotope_number)
Definition: psmfeatures.cpp:57
double getIntensityOfMatchedIon(PeptideIon ion_type)
get the sum of intensity of a specific ion
double getMatchedMzDiffSd() const
get standard deviation of matched peak mass delta
std::size_t getAaSequenceCoverage(PeptideIon ion_type)
number of amino acid covered by matched ions
std::map< pappso_double, pappso_double > toMap() const
Definition: trace.cpp:716
MassSpectrum process(const MassSpectrum &spectrum, pappso_double parent_ion_mass, unsigned int parent_charge) const
process raw spectrum to prepare hyperscore computation
pappso::QualifiedMassSpectrumSPtr getCurrentQualifiedMassSpectrumSPtr() const
double checkInf(double input) const
@ y
Cter amino ions.
@ b
Nter acylium ions.
std::shared_ptr< QualifiedMassSpectrum > QualifiedMassSpectrumSPtr
std::shared_ptr< const Peptide > PeptideSp

References pappso::b, pappso::LinearRegression::getCoefficientOfDetermination(), pappso::XtandemHyperscore::getHyperscore(), pappso::LinearRegression::getSize(), pappso::PeptideProFormaParser::parseString(), pappso::Trace::toMap(), and pappso::y.

Member Data Documentation

◆ m_fragmentTolerance

pappso::PrecisionPtr pappso::cbor::psm::PsmFeaturesScan::m_fragmentTolerance
private

Definition at line 63 of file psmfeaturesscan.h.

Referenced by PsmFeaturesScan().

◆ m_ionList

std::list<pappso::PeptideIon>& pappso::cbor::psm::PsmFeaturesScan::m_ionList
private

Definition at line 61 of file psmfeaturesscan.h.

◆ m_psmFeatures

pappso::PsmFeatures pappso::cbor::psm::PsmFeaturesScan::m_psmFeatures
private

Definition at line 62 of file psmfeaturesscan.h.

◆ m_tandemSpectrumProcess

pappso::XtandemSpectrumProcess& pappso::cbor::psm::PsmFeaturesScan::m_tandemSpectrumProcess
private

Definition at line 60 of file psmfeaturesscan.h.


The documentation for this class was generated from the following files: