libpappsomspp
Library for mass spectrometry
pappso::PeptideNaturalIsotopeAverage Class Reference

#include <peptidenaturalisotopeaverage.h>

Public Member Functions

 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)
 
 ~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
 

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/3]

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

Definition at line 32 of file peptidenaturalisotopeaverage.cpp.

38  : PeptideNaturalIsotopeAverage(PeptideNaturalIsotopeList(peptide),
39  askedIsotopeRank,
40  isotopeLevel,
41  charge,
42  precision)
43 {
44 }

◆ PeptideNaturalIsotopeAverage() [2/3]

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

Definition at line 46 of file peptidenaturalisotopeaverage.cpp.

52  : mcsp_peptideSp(isotopeList.getPeptideInterfaceSp()),
53  m_isotopeLevel(isotope_number),
54  m_isotopeRank(askedIsotopeRank),
55  m_z(charge),
56  mp_precision(precision)
57 { // get the askedIsotopeRank :
58  std::vector<PeptideNaturalIsotopeSp> v_isotope_list(
59  isotopeList.getByIsotopeNumber(isotope_number, m_z));
60 
61  // qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__
62  // << "v_isotope_list.size()=" << v_isotope_list.size() << " "
63  // << isotope_number << " " << askedIsotopeRank;
64  m_abundanceRatio = 0;
65  m_averageMz = 0;
66  if(askedIsotopeRank > v_isotope_list.size())
67  {
68  // there is no isotope at this rank
69  return;
70  // throw PappsoException(QObject::tr("askedIsotopeRank greater than
71  // v_isotope_list.size() %1 vs
72  // %2").arg(askedIsotopeRank).arg(v_isotope_list.size()));
73  }
74  else if(askedIsotopeRank < 1)
75  {
76  throw PappsoException(
77  QObject::tr("askedIsotopeRank must be 1 or more and not %1")
78  .arg(askedIsotopeRank));
79  }
80 
81  unsigned int rank = 0;
82 
83  recursiveDepletion(v_isotope_list, rank);
84 
85  // qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
86 }

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

◆ PeptideNaturalIsotopeAverage() [3/3]

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

Definition at line 159 of file peptidenaturalisotopeaverage.cpp.

161  : mcsp_peptideSp(other.mcsp_peptideSp), mp_precision(other.mp_precision)
162 {
163 
164  m_peptideNaturalIsotopeSpList = other.m_peptideNaturalIsotopeSpList;
165 
166  m_averageMz = other.m_averageMz;
167  m_abundanceRatio = other.m_abundanceRatio;
168  m_isotopeLevel = other.m_isotopeLevel;
169  m_isotopeRank = other.m_isotopeRank;
170  m_z = other.m_z;
171 }

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

◆ ~PeptideNaturalIsotopeAverage()

pappso::PeptideNaturalIsotopeAverage::~PeptideNaturalIsotopeAverage ( )

Definition at line 173 of file peptidenaturalisotopeaverage.cpp.

174 {
175 }

Member Function Documentation

◆ getCharge()

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

Definition at line 190 of file peptidenaturalisotopeaverage.cpp.

191 {
192  return m_z;
193 }

References m_z.

◆ getComponents()

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

Definition at line 208 of file peptidenaturalisotopeaverage.cpp.

209 {
211 }

References m_peptideNaturalIsotopeSpList.

◆ getIntensityRatio()

pappso_double pappso::PeptideNaturalIsotopeAverage::getIntensityRatio ( ) const

◆ getIsotopeNumber()

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

Definition at line 196 of file peptidenaturalisotopeaverage.cpp.

197 {
198  return m_isotopeLevel;
199 }

References m_isotopeLevel.

◆ getIsotopeRank()

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

◆ getMz()

pappso_double pappso::PeptideNaturalIsotopeAverage::getMz ( ) const

Definition at line 178 of file peptidenaturalisotopeaverage.cpp.

179 {
180  return m_averageMz;
181 }

References m_averageMz.

Referenced by matchPeak(), and recursiveDepletion().

◆ getPeptideInterfaceSp()

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

Definition at line 214 of file peptidenaturalisotopeaverage.cpp.

215 {
216  return mcsp_peptideSp;
217 }

References mcsp_peptideSp.

◆ getPrecision()

PrecisionPtr pappso::PeptideNaturalIsotopeAverage::getPrecision ( ) const

Definition at line 220 of file peptidenaturalisotopeaverage.cpp.

221 {
222  return mp_precision;
223 }

References mp_precision.

◆ isEmpty()

bool pappso::PeptideNaturalIsotopeAverage::isEmpty ( ) const

Definition at line 235 of file peptidenaturalisotopeaverage.cpp.

236 {
237  return (m_peptideNaturalIsotopeSpList.size() == 0);
238 }

References m_peptideNaturalIsotopeSpList.

Referenced by pappso::getByIntensityRatioByIsotopeNumber().

◆ makePeptideNaturalIsotopeAverageSp()

PeptideNaturalIsotopeAverageSp pappso::PeptideNaturalIsotopeAverage::makePeptideNaturalIsotopeAverageSp ( ) const

Definition at line 154 of file peptidenaturalisotopeaverage.cpp.

155 {
156  return std::make_shared<PeptideNaturalIsotopeAverage>(*this);
157 }

Referenced by pappso::MassSpectrumWidget::computeIsotopeMassList(), pappso::PeptideNaturalIsotopeList::getByIntensityRatio(), and pappso::getByIntensityRatioByIsotopeNumber().

◆ matchPeak()

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

Definition at line 226 of file peptidenaturalisotopeaverage.cpp.

227 {
228  // qDebug() << "PeptideNaturalIsotopeAverage::matchPeak";
229  // qDebug() << "PeptideNaturalIsotopeAverage::matchPeak precision " <<
230  // mp_precision.getDelta(200);
231  return (MzRange(getMz(), mp_precision).contains(peak_mz));
232 }

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 90 of file peptidenaturalisotopeaverage.cpp.

92 {
93  rank++;
94 
95  m_abundanceRatio = 0;
96  m_averageMz = 0;
98  std::vector<PeptideNaturalIsotopeSp> peptide_list;
99  // select neighbors in the precision range :
100  MzRange mz_range(v_isotope_list[0].get()->getMz(m_z), mp_precision);
101 
102  for(auto &isotope_sp : v_isotope_list)
103  {
104  if(mz_range.contains(isotope_sp.get()->getMz(m_z)))
105  {
106  peptide_list.push_back(isotope_sp);
107  m_abundanceRatio += isotope_sp.get()->getIntensityRatio(m_z);
108  m_averageMz += (isotope_sp.get()->getMz(m_z) *
109  isotope_sp.get()->getIntensityRatio(m_z));
110  }
111  }
112 
113  if(peptide_list.size() > 0)
114  {
116 
117  // depletion
118  auto it_remove = std::remove_if(
119  v_isotope_list.begin(),
120  v_isotope_list.end(),
121  [peptide_list](const PeptideNaturalIsotopeSp &isotope_sp) {
122  auto it =
123  std::find(peptide_list.begin(), peptide_list.end(), isotope_sp);
124  return (it != peptide_list.end());
125  });
126  v_isotope_list.erase(it_remove, v_isotope_list.end());
127 
128  if(rank == m_isotopeRank)
129  {
130  m_peptideNaturalIsotopeSpList = peptide_list;
131  return;
132  }
133  else
134  {
135  unsigned int charge = m_z;
136  std::sort(v_isotope_list.begin(),
137  v_isotope_list.end(),
138  [charge](const PeptideNaturalIsotopeSp &m,
139  const PeptideNaturalIsotopeSp &n) {
140  return (m.get()->getIntensityRatio(charge) >
141  n.get()->getIntensityRatio(charge));
142  });
143  recursiveDepletion(v_isotope_list, rank);
144  }
145  }
146  else
147  {
148  m_abundanceRatio = 0;
149  m_averageMz = 0;
150  }
151 }

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

Referenced by PeptideNaturalIsotopeAverage().

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 77 of file peptidenaturalisotopeaverage.h.

Referenced by getPeptideInterfaceSp().

◆ mp_precision

PrecisionPtr pappso::PeptideNaturalIsotopeAverage::mp_precision = nullptr
private

Definition at line 85 of file peptidenaturalisotopeaverage.h.

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


The documentation for this class was generated from the following files:
pappso::PeptideNaturalIsotopeAverage::getMz
pappso_double getMz() const
Definition: peptidenaturalisotopeaverage.cpp:178
pappso::PeptideNaturalIsotopeAverage::mp_precision
PrecisionPtr mp_precision
Definition: peptidenaturalisotopeaverage.h:85
pappso::PeptideNaturalIsotopeAverage::m_peptideNaturalIsotopeSpList
std::vector< PeptideNaturalIsotopeSp > m_peptideNaturalIsotopeSpList
Definition: peptidenaturalisotopeaverage.h:78
pappso::PeptideNaturalIsotopeAverage::recursiveDepletion
void recursiveDepletion(std::vector< PeptideNaturalIsotopeSp > &v_isotope_list, unsigned int rank)
Definition: peptidenaturalisotopeaverage.cpp:90
pappso::PeptideNaturalIsotopeAverage::m_isotopeRank
unsigned int m_isotopeRank
Definition: peptidenaturalisotopeaverage.h:83
pappso::PeptideNaturalIsotopeAverage::m_averageMz
pappso_double m_averageMz
Definition: peptidenaturalisotopeaverage.h:80
pappso::PeptideNaturalIsotopeAverage::PeptideNaturalIsotopeAverage
PeptideNaturalIsotopeAverage(const PeptideInterfaceSp &peptide, unsigned int askedIsotopeRank, unsigned int isotopeLevel, unsigned int charge, PrecisionPtr precision)
Definition: peptidenaturalisotopeaverage.cpp:32
pappso::PeptideNaturalIsotopeSp
std::shared_ptr< const PeptideNaturalIsotope > PeptideNaturalIsotopeSp
Definition: peptidenaturalisotope.h:41
pappso::PeptideNaturalIsotopeAverage::m_z
unsigned int m_z
Definition: peptidenaturalisotopeaverage.h:84
pappso::PeptideNaturalIsotopeAverage::mcsp_peptideSp
const PeptideInterfaceSp mcsp_peptideSp
Definition: peptidenaturalisotopeaverage.h:77
pappso::PeptideNaturalIsotopeAverage::m_abundanceRatio
pappso_double m_abundanceRatio
Definition: peptidenaturalisotopeaverage.h:81
pappso::PeptideNaturalIsotopeAverage::m_isotopeLevel
unsigned int m_isotopeLevel
Definition: peptidenaturalisotopeaverage.h:82