36 #include "../pappsoexception.h"
37 #include "../peptide/peptidefragment.h"
38 #include "../peptide/peptidefragmentionlistbase.h"
46 const MassSpectrum &spectrum,
47 const PeptideFragmentIonListBase &fragmentIonList,
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)
60 auto ion_list = fragmentIonList.getPeptideFragmentIonSp(ion_type);
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);
87 const MassSpectrum &spectrum,
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())
99 throw PappsoException(
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]="
133 const MassSpectrum &spectrum,
134 const PeptideFragmentIonListBase &fragmentIonList,
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]="
147 const MassSpectrum &spectrum,
149 unsigned int parent_charge,
151 const std::list<PeptideIon> &ion_type_list)
152 : _precision(precision)
155 privMatchIonList(spectrum, fragmentIonList, parent_charge, ion_type_list);
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