47 unsigned int max_charge,
48 const std::list<Enums::PeptideIon> &ion_type_list_in)
53 std::list<DataPoint> peak_list(spectrum.begin(), spectrum.end());
56 std::list<Enums::PeptideIon> ion_type_list(ion_type_list_in);
69 for(
auto ion_type : ion_type_list)
74 for(
unsigned int charge = 1; charge <= max_charge; charge++)
76 for(
auto &&ion : ion_list)
80 if(it_peak != peak_list.end())
88 peak_list.erase(it_peak);
97 std::vector<PeptideFragmentIonSp> &v_peptide_fragment_ion,
98 std::vector<unsigned int> &v_peptide_fragment_ion_charge,
102 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__;
106 if(v_peptide_fragment_ion.size() != v_peptide_fragment_ion_charge.size())
109 "v_peptide_fragment_ion_charge.size() %2")
110 .arg(v_peptide_fragment_ion.size())
111 .arg(v_peptide_fragment_ion_charge.size()));
115 auto ionIt = v_peptide_fragment_ion.begin();
116 auto chargeIt = v_peptide_fragment_ion_charge.begin();
117 std::list<DataPoint> peak_list(spectrum.begin(), spectrum.end());
119 while(ionIt != v_peptide_fragment_ion.end())
121 std::list<DataPoint>::iterator it_peak =
getBestPeakIterator(peak_list, *ionIt, *chargeIt);
122 if(it_peak != peak_list.end())
126 peak_list.erase(it_peak);
132 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__
139 unsigned int max_charge,
141 const std::list<Enums::PeptideIon> &ion_type_list)
145 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__
151 unsigned int parent_charge,
153 const std::list<Enums::PeptideIon> &ion_type_list)
158 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__
168std::list<DataPoint>::iterator
171 unsigned int charge)
const
175 std::list<DataPoint>::iterator itpeak = peak_list.begin();
176 std::list<DataPoint>::iterator itend = peak_list.end();
177 std::list<DataPoint>::iterator itselect = peak_list.end();
181 while(itpeak != itend)
186 if(ion.get()->matchPeak(
_precision, itpeak->x, charge))
190 if(itpeak->y > best_intensity)
192 best_intensity = itpeak->y;
230const std::array<unsigned int, PEPTIDE_ION_TYPE_COUNT> &
Class to represent a mass spectrum.
virtual const PeptideFragmentIonSp & getPeptideFragmentIonSp() const
unsigned int getCharge() const
const std::list< PeptideFragmentIonSp > getPeptideFragmentIonSp(Enums::PeptideIon ion_type) const
virtual std::list< DataPoint >::iterator getBestPeakIterator(std::list< DataPoint > &peak_list, const PeptideFragmentIonSp &ion, unsigned int charge) const
bool contains(const PeptideFragmentIon *peptideFragmentIonSp, unsigned int z) const
std::array< unsigned int, PEPTIDE_ION_TYPE_COUNT > _ion_type_count
unsigned int countTotalMatchedIons() const
const_iterator end() const
unsigned int size() const
virtual ~PeptideSpectrumMatch()
std::list< PeakIonMatch > _peak_ion_match_list
const std::array< unsigned int, PEPTIDE_ION_TYPE_COUNT > & getIonTypeCountArray() const
PeptideSpectrumMatch(const MassSpectrum &spectrum, const pappso::PeptideSp &peptideSp, unsigned int parent_charge, PrecisionPtr precision, const std::list< Enums::PeptideIon > &ion_type_list)
std::list< PeakIonMatch >::const_iterator const_iterator
const_iterator begin() const
void privMatchIonList(const MassSpectrum &spectrum, const PeptideFragmentIonListBase &fragmentIonList, unsigned int max_charge, const std::list< Enums::PeptideIon > &ion_type_list)
PeptideIon
Enums::PeptideIon enum defines all types of ions (Nter or Cter)
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
std::shared_ptr< const PeptideFragmentIon > PeptideFragmentIonSp
std::shared_ptr< const Peptide > PeptideSp
double pappso_double
A type definition for doubles.
const PrecisionBase * PrecisionPtr