36 #include "../pappsoexception.h"
37 #include "../peptide/peptidefragment.h"
38 #include "../peptide/peptidefragmentionlistbase.h"
48 unsigned int max_charge,
49 const std::list<PeptideIon> &ion_type_list)
54 std::list<DataPoint> peak_list(spectrum.begin(), spectrum.end());
58 for(
auto ion_type : ion_type_list)
63 for(
unsigned int charge = 1; charge <= max_charge; charge++)
65 for(
auto &&ion : ion_list)
67 std::list<DataPoint>::iterator it_peak =
70 if(it_peak != peak_list.end())
79 peak_list.erase(it_peak);
88 std::vector<PeptideFragmentIonSp> &v_peptide_fragment_ion,
89 std::vector<unsigned int> &v_peptide_fragment_ion_charge,
91 : _precision(precision)
93 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__;
97 if(v_peptide_fragment_ion.size() != v_peptide_fragment_ion_charge.size())
100 QObject::tr(
"v_peptide_fragment_ion.size() != "
101 "v_peptide_fragment_ion_charge.size() %2")
102 .arg(v_peptide_fragment_ion.size())
103 .arg(v_peptide_fragment_ion_charge.size()));
107 auto ionIt = v_peptide_fragment_ion.begin();
108 auto chargeIt = v_peptide_fragment_ion_charge.begin();
109 std::list<DataPoint> peak_list(spectrum.begin(), spectrum.end());
111 while(ionIt != v_peptide_fragment_ion.end())
113 std::list<DataPoint>::iterator it_peak =
115 if(it_peak != peak_list.end())
120 peak_list.erase(it_peak);
126 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__
127 <<
" _ion_type_count[PeptideIon::y]="
135 unsigned int max_charge,
137 const std::list<PeptideIon> &ion_type_list)
138 : _precision(precision)
141 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__
142 <<
" _ion_type_count[PeptideIon::y]="
149 unsigned int parent_charge,
151 const std::list<PeptideIon> &ion_type_list)
152 : _precision(precision)
156 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__
157 <<
" _ion_type_count[PeptideIon::y]="
163 : _precision(other._precision),
164 _peak_ion_match_list(other._peak_ion_match_list)
168 std::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;
230 const std::array<unsigned int, PEPTIDE_ION_TYPE_COUNT> &
238 unsigned int z)
const
Class to represent a mass spectrum.
virtual const PeptideFragmentIonSp & getPeptideFragmentIonSp() const
unsigned int getCharge() const
const std::list< PeptideFragmentIonSp > getPeptideFragmentIonSp(PeptideIon ion_type) const
virtual std::list< DataPoint >::iterator getBestPeakIterator(std::list< DataPoint > &peak_list, const PeptideFragmentIonSp &ion, unsigned int charge) const
void privMatchIonList(const MassSpectrum &spectrum, const PeptideFragmentIonListBase &fragmentIonList, unsigned int max_charge, const std::list< PeptideIon > &ion_type_list)
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
PeptideSpectrumMatch(const MassSpectrum &spectrum, const pappso::PeptideSp &peptideSp, unsigned int parent_charge, PrecisionPtr precision, const std::list< PeptideIon > &ion_type_list)
const std::array< unsigned int, PEPTIDE_ION_TYPE_COUNT > & getIonTypeCountArray() const
std::list< PeakIonMatch >::const_iterator const_iterator
const_iterator begin() const
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.
associate a peak and a peptide + charge
find peaks matching between ions and spectrum