libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
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::Enums::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 ()
 
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
 
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::Enums::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 44 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::Enums::PeptideIon > &  ion_list,
pappso::PsmFeatures psm_features,
pappso::PrecisionPtr  fragment_tolerance 
)

Default constructor

Definition at line 42 of file psmfeaturesscan.cpp.

47 : CborScanMapBase(psm_file_scan_process),
48 m_tandemSpectrumProcess(tandem_spectrum_process),
49 m_ionList(ion_list),
50 m_psmFeatures(psm_features)
51{
52 m_fragmentTolerance = fragment_tolerance;
53}
CborScanMapBase(const PsmFileScanProcess &psm_file_scan_process)
pappso::XtandemSpectrumProcess & m_tandemSpectrumProcess
std::list< pappso::Enums::PeptideIon > & m_ionList
pappso::PrecisionPtr m_fragmentTolerance

References m_fragmentTolerance.

◆ ~PsmFeaturesScan()

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

Destructor

Definition at line 55 of file psmfeaturesscan.cpp.

56{
57}

Member Function Documentation

◆ checkInf()

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

Definition at line 60 of file psmfeaturesscan.cpp.

61{
62 if(input < 0)
63 return 0;
64 return input;
65}

Referenced by process().

◆ process()

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

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

Definition at line 68 of file psmfeaturesscan.cpp.

69{
70
71 if(keys().contains("psm_list"))
72 {
74
75 pappso::MassSpectrum spectrum =
76 m_tandemSpectrumProcess.process(*qualified_mass_spectrum.get()->getMassSpectrumSPtr().get(),
77 qualified_mass_spectrum.get()->getPrecursorMz(),
78 qualified_mass_spectrum.get()->getPrecursorCharge());
79
80 QCborArray new_psm_arr;
81 for(QCborValue cbor_psm : value("psm_list").toArray())
82 {
83 QCborMap cbor_psm_map = cbor_psm.toMap();
84 QCborMap cbor_psm_features;
85 pappso::PeptideSp peptide_sp =
86 pappso::PeptideProFormaParser::parseString(cbor_psm_map.value("proforma").toString());
87
88
89 std::size_t peptide_size = peptide_sp.get()->size();
90 cbor_psm_features.insert(QString("peptide_size"), (unsigned int)peptide_size);
91
92 pappso::XtandemHyperscore hyperscore(spectrum,
93 peptide_sp,
94 qualified_mass_spectrum.get()->getPrecursorCharge(),
97 true);
98 cbor_psm_features.insert(QString("hyperscore"), QCborValue(hyperscore.getHyperscore()));
99
100
102 peptide_sp,
103 qualified_mass_spectrum.get()->getMassSpectrumSPtr().get(),
104 qualified_mass_spectrum.get()->getPrecursorCharge(),
105 2);
106 // TIC
107 cbor_psm_features.insert(QString("total_intensity"),
108 std::log(m_psmFeatures.getTotalIntensity()));
109 // MaxIntALL
110 cbor_psm_features.insert(QString("max_intensity"),
111 checkInf(std::log(qualified_mass_spectrum.get()
112 ->getMassSpectrumSPtr()
113 .get()
114 ->maxIntensityDataPoint()
115 .y)));
116
117 // MaxYionInt
118 cbor_psm_features.insert(
119 QString("MaxYionInt"),
121
122 // MaxBionInt
123 cbor_psm_features.insert(
124 QString("MaxBionInt"),
126
127 // SumYmatchInt
128 cbor_psm_features.insert(
129 QString("SumYmatchInt"),
131
132 // SumBmatchInt
133 cbor_psm_features.insert(
134 QString("SumBmatchInt"),
136
137 // FracYmatchInt
138 cbor_psm_features.insert(
139 QString("FracYmatchInt"),
142 // FracBmatchInt
143 cbor_psm_features.insert(
144 QString("FracBmatchInt"),
147
148 // SeqCoverYion
149 cbor_psm_features.insert(
150 QString("SeqCoverYion"),
152 (double)peptide_size);
153 // SeqCoverBion
154 cbor_psm_features.insert(
155 QString("SeqCoverBion"),
157 (double)peptide_size);
158
159
160 // ConsecutiveYion
161 cbor_psm_features.insert(
162 QString("ConsecutiveYion"),
164 // ConsecutiveBion
165 cbor_psm_features.insert(
166 QString("ConsecutiveBion"),
168
169 // MassErrMean
170 cbor_psm_features.insert(QString("MassErrMean"), m_psmFeatures.getMatchedMzDiffMean());
171
172 // MassErrSD
173 cbor_psm_features.insert(QString("MassErrSD"), m_psmFeatures.getMatchedMzDiffSd());
174
175 // NumofAnnoPeaks
176 cbor_psm_features.insert(QString("NumofAnnoPeaks"),
177 (unsigned int)m_psmFeatures.getNumberOfMatchedIons());
178
179 // NumofComplementPeaks
180 std::size_t num_of_pairs = m_psmFeatures.countMatchedIonComplementPairs();
181 cbor_psm_features.insert(QString("NumofComplementPeaks"), (unsigned int)num_of_pairs);
182 if(num_of_pairs > 0)
183 {
184 // SumComplementPeaksInt
185 cbor_psm_features.insert(
186 QString("SumComplementPeaksInt"),
188
189 // FracComplementPeaksInt
190 cbor_psm_features.insert(
191 QString("FracComplementPeaksInt"),
194 // SeqCoverComplementPeaks
195 cbor_psm_features.insert(
196 QString("SeqCoverComplementPeaks"),
198 (double)peptide_size);
199 }
201 cbor_psm_features.insert(QString("lrSize"), (unsigned int)lr.getSize());
202
203
204 double coeff_of_determination = lr.getCoefficientOfDetermination();
205 if(std::isnan(coeff_of_determination))
206 {
207 }
208 else
209 {
210 cbor_psm_features.insert(QString("lrCoeffDet"), coeff_of_determination);
211 }
212
213
214 QCborMap psm_eval = cbor_psm_map.value("eval").toMap();
215 psm_eval.remove(QString("features"));
216 psm_eval.insert(QString("features"), cbor_psm_features);
217 cbor_psm_map.remove(QString("eval"));
218 cbor_psm_map.insert(QString("eval"), psm_eval);
219
220 new_psm_arr.push_back(cbor_psm_map);
221 }
222
223 insert(QString("psm_list"), new_psm_arr);
224 }
225}
std::size_t getSize() const
get data size
double getCoefficientOfDetermination() const
get Coefficient of determination (R2)
Class to represent a mass spectrum.
static PeptideSp parseString(const QString &pepstr)
double getMaxIntensityPeakIonMatch(Enums::PeptideIon ion_type) const
double getIntensityOfMatchedIon(Enums::PeptideIon ion_type)
get the sum of intensity of a specific ion
std::size_t getNumberOfMatchedIons() const
number of matched ions (peaks)
std::size_t getAaSequenceCoverage(Enums::PeptideIon ion_type)
number of amino acid covered by matched ions
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
std::size_t getMaxConsecutiveIon(Enums::PeptideIon ion_type)
get the maximum consecutive fragments of one ion type
LinearRegression getIonIsotopeLinearRegression() const
void setPeptideSpectrumCharge(const pappso::PeptideSp peptideSp, const MassSpectrum *p_spectrum, unsigned int parent_charge, unsigned int max_isotope_number)
double getMatchedMzDiffSd() const
get standard deviation of matched peak mass delta
std::map< pappso_double, pappso_double > toMap() const
Definition trace.cpp:691
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::Enums::b, checkInf(), pappso::PsmFeatures::countMatchedIonComplementPairs(), pappso::PsmFeatures::getAaSequenceCoverage(), pappso::LinearRegression::getCoefficientOfDetermination(), pappso::PsmFeatures::getComplementPairsAaSequenceCoverage(), pappso::cbor::psm::CborScanMapBase::getCurrentQualifiedMassSpectrumSPtr(), pappso::XtandemHyperscore::getHyperscore(), pappso::PsmFeatures::getIntensityOfMatchedIon(), pappso::PsmFeatures::getIonIsotopeLinearRegression(), pappso::PsmFeatures::getMatchedMzDiffMean(), pappso::PsmFeatures::getMatchedMzDiffSd(), pappso::PsmFeatures::getMaxConsecutiveIon(), pappso::PsmFeatures::getMaxIntensityPeakIonMatch(), pappso::PsmFeatures::getNumberOfMatchedIons(), pappso::LinearRegression::getSize(), pappso::PsmFeatures::getTotalIntensity(), pappso::PsmFeatures::getTotalIntensityOfMatchedIonComplementPairs(), m_fragmentTolerance, m_ionList, m_psmFeatures, m_tandemSpectrumProcess, pappso::PeptideProFormaParser::parseString(), pappso::XtandemSpectrumProcess::process(), pappso::PsmFeatures::setPeptideSpectrumCharge(), pappso::Trace::toMap(), and pappso::Enums::y.

Member Data Documentation

◆ m_fragmentTolerance

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

Definition at line 69 of file psmfeaturesscan.h.

Referenced by PsmFeaturesScan(), and process().

◆ m_ionList

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

Definition at line 67 of file psmfeaturesscan.h.

Referenced by process().

◆ m_psmFeatures

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

Definition at line 68 of file psmfeaturesscan.h.

Referenced by process().

◆ m_tandemSpectrumProcess

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

Definition at line 66 of file psmfeaturesscan.h.

Referenced by process().


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