libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::PeptideNaturalIsotopeAverage Class Reference

#include <peptidenaturalisotopeaverage.h>

Public Member Functions

 PeptideNaturalIsotopeAverage (const PeptideInterfaceSp &peptide, unsigned int isotopeNumber, unsigned int charge, PrecisionPtr precision)
 fast constructor simple isotope build, not computing isotope ratio
 
 PeptideNaturalIsotopeAverage (const PeptideInterfaceSp &peptide, unsigned int askedIsotopeRank, unsigned int isotopeLevel, unsigned int charge, PrecisionPtr precision)
 
 PeptideNaturalIsotopeAverage (const PeptideNaturalIsotopeList &isotopeList, unsigned int askedIsotopeRank, unsigned int isotopeLevel, unsigned int charge, PrecisionPtr precision)
 
 PeptideNaturalIsotopeAverage (const PeptideNaturalIsotopeAverage &other)
 
virtual ~PeptideNaturalIsotopeAverage ()
 
PeptideNaturalIsotopeAverageSp makePeptideNaturalIsotopeAverageSp () const
 
pappso_double getMz () const
 
pappso_double getIntensityRatio () const
 
unsigned int getCharge () const
 
unsigned int getIsotopeNumber () const
 
unsigned int getIsotopeRank () const
 
const std::vector< PeptideNaturalIsotopeSp > & getComponents () const
 
const PeptideInterfaceSpgetPeptideInterfaceSp () const
 
PrecisionPtr getPrecision () const
 
virtual bool matchPeak (pappso_double peak_mz) const final
 
bool isEmpty () const
 
virtual QString toString () const
 

Private Member Functions

void recursiveDepletion (std::vector< PeptideNaturalIsotopeSp > &v_isotope_list, unsigned int rank)
 

Private Attributes

const PeptideInterfaceSp mcsp_peptideSp
 
std::vector< PeptideNaturalIsotopeSpm_peptideNaturalIsotopeSpList
 
pappso_double m_averageMz
 
pappso_double m_abundanceRatio
 
unsigned int m_isotopeLevel
 
unsigned int m_isotopeRank = 1
 
unsigned int m_z
 
PrecisionPtr mp_precision = nullptr
 

Detailed Description

Definition at line 42 of file peptidenaturalisotopeaverage.h.

Constructor & Destructor Documentation

◆ PeptideNaturalIsotopeAverage() [1/4]

pappso::PeptideNaturalIsotopeAverage::PeptideNaturalIsotopeAverage ( const PeptideInterfaceSp peptide,
unsigned int  isotopeNumber,
unsigned int  charge,
PrecisionPtr  precision 
)

fast constructor simple isotope build, not computing isotope ratio

Definition at line 34 of file peptidenaturalisotopeaverage.cpp.

39 : mcsp_peptideSp(peptide),
40 m_isotopeLevel(isotopeNumber),
42 m_z(charge),
43 mp_precision(precision)
44{
45
47
48 double diffC13 = ((double)isotopeNumber * DIFFC12C13) / (double)charge;
49
50 m_averageMz = peptide.get()->getMz(charge) + diffC13;
52}
std::vector< PeptideNaturalIsotopeSp > m_peptideNaturalIsotopeSpList
const pappso_double DIFFC12C13(1.0033548378)

References pappso::DIFFC12C13(), m_abundanceRatio, m_averageMz, and m_peptideNaturalIsotopeSpList.

◆ PeptideNaturalIsotopeAverage() [2/4]

pappso::PeptideNaturalIsotopeAverage::PeptideNaturalIsotopeAverage ( const PeptideInterfaceSp peptide,
unsigned int  askedIsotopeRank,
unsigned int  isotopeLevel,
unsigned int  charge,
PrecisionPtr  precision 
)

Definition at line 54 of file peptidenaturalisotopeaverage.cpp.

60 : PeptideNaturalIsotopeAverage(PeptideNaturalIsotopeList(peptide),
61 askedIsotopeRank,
62 isotopeLevel,
63 charge,
64 precision)
65{
66}
PeptideNaturalIsotopeAverage(const PeptideInterfaceSp &peptide, unsigned int isotopeNumber, unsigned int charge, PrecisionPtr precision)
fast constructor simple isotope build, not computing isotope ratio

◆ PeptideNaturalIsotopeAverage() [3/4]

pappso::PeptideNaturalIsotopeAverage::PeptideNaturalIsotopeAverage ( const PeptideNaturalIsotopeList isotopeList,
unsigned int  askedIsotopeRank,
unsigned int  isotopeLevel,
unsigned int  charge,
PrecisionPtr  precision 
)

Definition at line 68 of file peptidenaturalisotopeaverage.cpp.

74 : mcsp_peptideSp(isotopeList.getPeptideInterfaceSp()),
75 m_isotopeLevel(isotope_number),
76 m_isotopeRank(askedIsotopeRank),
77 m_z(charge),
78 mp_precision(precision)
79{ // get the askedIsotopeRank :
80 std::vector<PeptideNaturalIsotopeSp> v_isotope_list(
81 isotopeList.getByIsotopeNumber(isotope_number, m_z));
82
83 qDebug() << "v_isotope_list.size()=" << v_isotope_list.size() << " "
84 << isotope_number << " " << askedIsotopeRank;
86 m_averageMz = 0;
87 if(askedIsotopeRank > v_isotope_list.size())
88 {
89 // there is no isotope at this rank
90 return;
91 // throw PappsoException(QObject::tr("askedIsotopeRank greater than
92 // v_isotope_list.size() %1 vs
93 // %2").arg(askedIsotopeRank).arg(v_isotope_list.size()));
94 }
95 else if(askedIsotopeRank < 1)
96 {
97 throw PappsoException(
98 QObject::tr("askedIsotopeRank must be 1 or more and not %1")
99 .arg(askedIsotopeRank));
100 }
101
102 unsigned int rank = 0;
103
104 recursiveDepletion(v_isotope_list, rank);
105
106 // qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
107}
void recursiveDepletion(std::vector< PeptideNaturalIsotopeSp > &v_isotope_list, unsigned int rank)

References pappso::PeptideNaturalIsotopeList::getByIsotopeNumber(), m_abundanceRatio, m_averageMz, m_z, and recursiveDepletion().

◆ PeptideNaturalIsotopeAverage() [4/4]

pappso::PeptideNaturalIsotopeAverage::PeptideNaturalIsotopeAverage ( const PeptideNaturalIsotopeAverage other)

Definition at line 180 of file peptidenaturalisotopeaverage.cpp.

182 : mcsp_peptideSp(other.mcsp_peptideSp), mp_precision(other.mp_precision)
183{
184
185 qDebug();
186 m_peptideNaturalIsotopeSpList = other.m_peptideNaturalIsotopeSpList;
187
188 m_averageMz = other.m_averageMz;
189 m_abundanceRatio = other.m_abundanceRatio;
190 m_isotopeLevel = other.m_isotopeLevel;
191 m_isotopeRank = other.m_isotopeRank;
192 m_z = other.m_z;
193 qDebug();
194}

References m_abundanceRatio, m_averageMz, m_isotopeLevel, m_isotopeRank, m_peptideNaturalIsotopeSpList, and m_z.

◆ ~PeptideNaturalIsotopeAverage()

pappso::PeptideNaturalIsotopeAverage::~PeptideNaturalIsotopeAverage ( )
virtual

Definition at line 196 of file peptidenaturalisotopeaverage.cpp.

197{
198}

Member Function Documentation

◆ getCharge()

unsigned int pappso::PeptideNaturalIsotopeAverage::getCharge ( ) const

Definition at line 213 of file peptidenaturalisotopeaverage.cpp.

214{
215 return m_z;
216}

References m_z.

Referenced by toString().

◆ getComponents()

const std::vector< PeptideNaturalIsotopeSp > & pappso::PeptideNaturalIsotopeAverage::getComponents ( ) const

Definition at line 231 of file peptidenaturalisotopeaverage.cpp.

232{
234}

References m_peptideNaturalIsotopeSpList.

◆ getIntensityRatio()

pappso_double pappso::PeptideNaturalIsotopeAverage::getIntensityRatio ( ) const

◆ getIsotopeNumber()

unsigned int pappso::PeptideNaturalIsotopeAverage::getIsotopeNumber ( ) const

Definition at line 219 of file peptidenaturalisotopeaverage.cpp.

220{
221 return m_isotopeLevel;
222}

References m_isotopeLevel.

Referenced by toString().

◆ getIsotopeRank()

unsigned int pappso::PeptideNaturalIsotopeAverage::getIsotopeRank ( ) const

◆ getMz()

pappso_double pappso::PeptideNaturalIsotopeAverage::getMz ( ) const

◆ getPeptideInterfaceSp()

const PeptideInterfaceSp & pappso::PeptideNaturalIsotopeAverage::getPeptideInterfaceSp ( ) const

Definition at line 237 of file peptidenaturalisotopeaverage.cpp.

238{
239 return mcsp_peptideSp;
240}

References mcsp_peptideSp.

Referenced by toString().

◆ getPrecision()

PrecisionPtr pappso::PeptideNaturalIsotopeAverage::getPrecision ( ) const

Definition at line 243 of file peptidenaturalisotopeaverage.cpp.

244{
245 return mp_precision;
246}

References mp_precision.

◆ isEmpty()

bool pappso::PeptideNaturalIsotopeAverage::isEmpty ( ) const

Definition at line 258 of file peptidenaturalisotopeaverage.cpp.

259{
260 return (m_peptideNaturalIsotopeSpList.size() == 0);
261}

References m_peptideNaturalIsotopeSpList.

Referenced by pappso::getByIntensityRatioByIsotopeNumber().

◆ makePeptideNaturalIsotopeAverageSp()

PeptideNaturalIsotopeAverageSp pappso::PeptideNaturalIsotopeAverage::makePeptideNaturalIsotopeAverageSp ( ) const

◆ matchPeak()

bool pappso::PeptideNaturalIsotopeAverage::matchPeak ( pappso_double  peak_mz) const
finalvirtual

Definition at line 249 of file peptidenaturalisotopeaverage.cpp.

250{
251 // qDebug() << "PeptideNaturalIsotopeAverage::matchPeak";
252 // qDebug() << "PeptideNaturalIsotopeAverage::matchPeak precision " <<
253 // mp_precision.getDelta(200);
254 return (MzRange(getMz(), mp_precision).contains(peak_mz));
255}

References getMz(), and mp_precision.

Referenced by pappso::PeptideIsotopeSpectrumMatch::getBestPeakIterator().

◆ recursiveDepletion()

void pappso::PeptideNaturalIsotopeAverage::recursiveDepletion ( std::vector< PeptideNaturalIsotopeSp > &  v_isotope_list,
unsigned int  rank 
)
private

Definition at line 111 of file peptidenaturalisotopeaverage.cpp.

113{
114 rank++;
115
117 m_averageMz = 0;
119 std::vector<PeptideNaturalIsotopeSp> peptide_list;
120 // select neighbors in the precision range :
121 MzRange mz_range(v_isotope_list[0].get()->getMz(m_z), mp_precision);
122
123 for(auto &isotope_sp : v_isotope_list)
124 {
125 if(mz_range.contains(isotope_sp.get()->getMz(m_z)))
126 {
127 peptide_list.push_back(isotope_sp);
128 m_abundanceRatio += isotope_sp.get()->getIntensityRatio(m_z);
129 m_averageMz += (isotope_sp.get()->getMz(m_z) *
130 isotope_sp.get()->getIntensityRatio(m_z));
131 }
132 }
133
134 if(peptide_list.size() > 0)
135 {
137
138 // depletion
139 auto it_remove = std::remove_if(
140 v_isotope_list.begin(),
141 v_isotope_list.end(),
142 [peptide_list](const PeptideNaturalIsotopeSp &isotope_sp) {
143 auto it =
144 std::find(peptide_list.begin(), peptide_list.end(), isotope_sp);
145 return (it != peptide_list.end());
146 });
147 v_isotope_list.erase(it_remove, v_isotope_list.end());
148
149 if(rank == m_isotopeRank)
150 {
151 m_peptideNaturalIsotopeSpList = peptide_list;
152 return;
153 }
154 else
155 {
156 unsigned int charge = m_z;
157 std::sort(v_isotope_list.begin(),
158 v_isotope_list.end(),
159 [charge](const PeptideNaturalIsotopeSp &m,
160 const PeptideNaturalIsotopeSp &n) {
161 return (m.get()->getIntensityRatio(charge) >
162 n.get()->getIntensityRatio(charge));
163 });
164 recursiveDepletion(v_isotope_list, rank);
165 }
166 }
167 else
168 {
170 m_averageMz = 0;
171 }
172}
std::shared_ptr< const PeptideNaturalIsotope > PeptideNaturalIsotopeSp

References pappso::MzRange::contains(), getMz(), m_abundanceRatio, m_averageMz, m_isotopeRank, m_peptideNaturalIsotopeSpList, m_z, mp_precision, and recursiveDepletion().

Referenced by PeptideNaturalIsotopeAverage(), and recursiveDepletion().

◆ toString()

QString pappso::PeptideNaturalIsotopeAverage::toString ( ) const
virtual

Definition at line 264 of file peptidenaturalisotopeaverage.cpp.

265{
266 return QString("%1 l%2 mz%3 z%4 N%5")
267 .arg(getPeptideInterfaceSp().get()->getSequence())
268 .arg(getPeptideInterfaceSp().get()->size())
269 .arg(getMz())
270 .arg(getCharge())
271 .arg(getIsotopeNumber());
272}
const PeptideInterfaceSp & getPeptideInterfaceSp() const

References getCharge(), getIsotopeNumber(), getMz(), and getPeptideInterfaceSp().

Referenced by pappso::PeptideIsotopeSpectrumMatch::PeptideIsotopeSpectrumMatch().

Member Data Documentation

◆ m_abundanceRatio

pappso_double pappso::PeptideNaturalIsotopeAverage::m_abundanceRatio
private

◆ m_averageMz

pappso_double pappso::PeptideNaturalIsotopeAverage::m_averageMz
private

◆ m_isotopeLevel

unsigned int pappso::PeptideNaturalIsotopeAverage::m_isotopeLevel
private

◆ m_isotopeRank

unsigned int pappso::PeptideNaturalIsotopeAverage::m_isotopeRank = 1
private

◆ m_peptideNaturalIsotopeSpList

std::vector<PeptideNaturalIsotopeSp> pappso::PeptideNaturalIsotopeAverage::m_peptideNaturalIsotopeSpList
private

◆ m_z

unsigned int pappso::PeptideNaturalIsotopeAverage::m_z
private

◆ mcsp_peptideSp

const PeptideInterfaceSp pappso::PeptideNaturalIsotopeAverage::mcsp_peptideSp
private

Definition at line 86 of file peptidenaturalisotopeaverage.h.

Referenced by getPeptideInterfaceSp().

◆ mp_precision

PrecisionPtr pappso::PeptideNaturalIsotopeAverage::mp_precision = nullptr
private

Definition at line 94 of file peptidenaturalisotopeaverage.h.

Referenced by getPrecision(), matchPeak(), and recursiveDepletion().


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