libpappsomspp
Library for mass spectrometry
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 More...
 
 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),
41  m_isotopeRank(1),
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;
51  m_abundanceRatio = 0;
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() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__
84  // << "v_isotope_list.size()=" << v_isotope_list.size() << " "
85  // << isotope_number << " " << askedIsotopeRank;
86  m_abundanceRatio = 0;
87  m_averageMz = 0;
88  if(askedIsotopeRank > v_isotope_list.size())
89  {
90  // there is no isotope at this rank
91  return;
92  // throw PappsoException(QObject::tr("askedIsotopeRank greater than
93  // v_isotope_list.size() %1 vs
94  // %2").arg(askedIsotopeRank).arg(v_isotope_list.size()));
95  }
96  else if(askedIsotopeRank < 1)
97  {
98  throw PappsoException(
99  QObject::tr("askedIsotopeRank must be 1 or more and not %1")
100  .arg(askedIsotopeRank));
101  }
102 
103  unsigned int rank = 0;
104 
105  recursiveDepletion(v_isotope_list, rank);
106 
107  // qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
108 }
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 181 of file peptidenaturalisotopeaverage.cpp.

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

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

◆ ~PeptideNaturalIsotopeAverage()

pappso::PeptideNaturalIsotopeAverage::~PeptideNaturalIsotopeAverage ( )
virtual

Definition at line 197 of file peptidenaturalisotopeaverage.cpp.

198 {
199 }

Member Function Documentation

◆ getCharge()

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

Definition at line 214 of file peptidenaturalisotopeaverage.cpp.

215 {
216  return m_z;
217 }

References m_z.

Referenced by toString().

◆ getComponents()

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

Definition at line 232 of file peptidenaturalisotopeaverage.cpp.

233 {
235 }

References m_peptideNaturalIsotopeSpList.

◆ getIntensityRatio()

pappso_double pappso::PeptideNaturalIsotopeAverage::getIntensityRatio ( ) const

◆ getIsotopeNumber()

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

Definition at line 220 of file peptidenaturalisotopeaverage.cpp.

221 {
222  return m_isotopeLevel;
223 }

References m_isotopeLevel.

Referenced by toString().

◆ getIsotopeRank()

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

◆ getMz()

pappso_double pappso::PeptideNaturalIsotopeAverage::getMz ( ) const

Definition at line 202 of file peptidenaturalisotopeaverage.cpp.

203 {
204  return m_averageMz;
205 }

References m_averageMz.

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

◆ getPeptideInterfaceSp()

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

Definition at line 238 of file peptidenaturalisotopeaverage.cpp.

239 {
240  return mcsp_peptideSp;
241 }

References mcsp_peptideSp.

Referenced by toString().

◆ getPrecision()

PrecisionPtr pappso::PeptideNaturalIsotopeAverage::getPrecision ( ) const

Definition at line 244 of file peptidenaturalisotopeaverage.cpp.

245 {
246  return mp_precision;
247 }

References mp_precision.

◆ isEmpty()

bool pappso::PeptideNaturalIsotopeAverage::isEmpty ( ) const

Definition at line 259 of file peptidenaturalisotopeaverage.cpp.

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

References m_peptideNaturalIsotopeSpList.

Referenced by pappso::getByIntensityRatioByIsotopeNumber().

◆ makePeptideNaturalIsotopeAverageSp()

PeptideNaturalIsotopeAverageSp pappso::PeptideNaturalIsotopeAverage::makePeptideNaturalIsotopeAverageSp ( ) const

Definition at line 176 of file peptidenaturalisotopeaverage.cpp.

177 {
178  return std::make_shared<PeptideNaturalIsotopeAverage>(*this);
179 }

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

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

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

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

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

Referenced by PeptideNaturalIsotopeAverage().

◆ toString()

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

Definition at line 265 of file peptidenaturalisotopeaverage.cpp.

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

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

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: