36 unsigned int isotopeNumber,
39 : mcsp_peptideSp(peptide),
40 m_isotopeLevel(isotopeNumber),
43 mp_precision(precision)
48 double diffC13 = ((double)isotopeNumber *
DIFFC12C13) / (double)charge;
56 unsigned int askedIsotopeRank,
57 unsigned int isotopeLevel,
70 unsigned int askedIsotopeRank,
71 unsigned int isotope_number,
74 : mcsp_peptideSp(isotopeList.getPeptideInterfaceSp()),
75 m_isotopeLevel(isotope_number),
76 m_isotopeRank(askedIsotopeRank),
78 mp_precision(precision)
80 std::vector<PeptideNaturalIsotopeSp> v_isotope_list(
83 qDebug() <<
"v_isotope_list.size()=" << v_isotope_list.size() <<
" "
84 << isotope_number <<
" " << askedIsotopeRank;
87 if(askedIsotopeRank > v_isotope_list.size())
95 else if(askedIsotopeRank < 1)
98 QObject::tr(
"askedIsotopeRank must be 1 or more and not %1")
99 .arg(askedIsotopeRank));
102 unsigned int rank = 0;
112 std::vector<PeptideNaturalIsotopeSp> &v_isotope_list,
unsigned int rank)
119 std::vector<PeptideNaturalIsotopeSp> peptide_list;
123 for(
auto &isotope_sp : v_isotope_list)
125 if(mz_range.
contains(isotope_sp.get()->getMz(
m_z)))
127 peptide_list.push_back(isotope_sp);
130 isotope_sp.get()->getIntensityRatio(
m_z));
134 if(peptide_list.size() > 0)
139 auto it_remove = std::remove_if(
140 v_isotope_list.begin(),
141 v_isotope_list.end(),
144 std::find(peptide_list.begin(), peptide_list.end(), isotope_sp);
145 return (it != peptide_list.end());
147 v_isotope_list.erase(it_remove, v_isotope_list.end());
156 unsigned int charge =
m_z;
157 std::sort(v_isotope_list.begin(),
158 v_isotope_list.end(),
161 return (m.get()->getIntensityRatio(charge) >
162 n.get()->getIntensityRatio(charge));
177 return std::make_shared<PeptideNaturalIsotopeAverage>(*
this);
182 : mcsp_peptideSp(other.mcsp_peptideSp), mp_precision(other.mp_precision)
230const std::vector<PeptideNaturalIsotopeSp> &
266 return QString(
"%1 l%2 mz%3 z%4 N%5")
bool contains(pappso_double) const
virtual ~PeptideNaturalIsotopeAverage()
std::vector< PeptideNaturalIsotopeSp > m_peptideNaturalIsotopeSpList
pappso_double m_abundanceRatio
unsigned int getIsotopeRank() const
const PeptideInterfaceSp mcsp_peptideSp
virtual QString toString() const
PeptideNaturalIsotopeAverage(const PeptideInterfaceSp &peptide, unsigned int isotopeNumber, unsigned int charge, PrecisionPtr precision)
fast constructor simple isotope build, not computing isotope ratio
unsigned int m_isotopeRank
pappso_double getIntensityRatio() const
const std::vector< PeptideNaturalIsotopeSp > & getComponents() const
pappso_double getMz() const
unsigned int m_isotopeLevel
virtual bool matchPeak(pappso_double peak_mz) const final
const PeptideInterfaceSp & getPeptideInterfaceSp() const
unsigned int getCharge() const
void recursiveDepletion(std::vector< PeptideNaturalIsotopeSp > &v_isotope_list, unsigned int rank)
unsigned int getIsotopeNumber() const
pappso_double m_averageMz
PeptideNaturalIsotopeAverageSp makePeptideNaturalIsotopeAverageSp() const
PrecisionPtr getPrecision() const
PrecisionPtr mp_precision
std::vector< PeptideNaturalIsotopeSp > getByIsotopeNumber(unsigned int isotopeLevel, unsigned int charge) const
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
std::shared_ptr< const PeptideNaturalIsotope > PeptideNaturalIsotopeSp
std::shared_ptr< const PeptideInterface > PeptideInterfaceSp
double pappso_double
A type definition for doubles.
std::shared_ptr< const PeptideNaturalIsotopeAverage > PeptideNaturalIsotopeAverageSp
const pappso_double DIFFC12C13(1.0033548378)
peptide natural isotope model