25 #include "../pappsoexception.h"
34 unsigned int askedIsotopeRank,
35 unsigned int isotopeLevel,
48 unsigned int askedIsotopeRank,
49 unsigned int isotope_number,
52 : mcsp_peptideSp(isotopeList.getPeptideInterfaceSp()),
53 m_isotopeLevel(isotope_number),
54 m_isotopeRank(askedIsotopeRank),
56 mp_precision(precision)
58 std::vector<PeptideNaturalIsotopeSp> v_isotope_list(
66 if(askedIsotopeRank > v_isotope_list.size())
74 else if(askedIsotopeRank < 1)
77 QObject::tr(
"askedIsotopeRank must be 1 or more and not %1")
78 .arg(askedIsotopeRank));
81 unsigned int rank = 0;
91 std::vector<PeptideNaturalIsotopeSp> &v_isotope_list,
unsigned int rank)
98 std::vector<PeptideNaturalIsotopeSp> peptide_list;
102 for(
auto &isotope_sp : v_isotope_list)
104 if(mz_range.
contains(isotope_sp.get()->getMz(
m_z)))
106 peptide_list.push_back(isotope_sp);
109 isotope_sp.get()->getIntensityRatio(
m_z));
113 if(peptide_list.size() > 0)
118 auto it_remove = std::remove_if(
119 v_isotope_list.begin(),
120 v_isotope_list.end(),
123 std::find(peptide_list.begin(), peptide_list.end(), isotope_sp);
124 return (it != peptide_list.end());
126 v_isotope_list.erase(it_remove, v_isotope_list.end());
135 unsigned int charge =
m_z;
136 std::sort(v_isotope_list.begin(),
137 v_isotope_list.end(),
140 return (m.get()->getIntensityRatio(charge) >
141 n.get()->getIntensityRatio(charge));
156 return std::make_shared<PeptideNaturalIsotopeAverage>(*
this);
161 : mcsp_peptideSp(other.mcsp_peptideSp), mp_precision(other.mp_precision)
207 const std::vector<PeptideNaturalIsotopeSp> &