35 #include "../pappsoexception.h"
47 ret.push_back(PeptideIon::yp);
48 ret.push_back(PeptideIon::ystar);
49 ret.push_back(PeptideIon::yo);
50 ret.push_back(PeptideIon::b);
51 ret.push_back(PeptideIon::bp);
52 ret.push_back(PeptideIon::a);
53 ret.push_back(PeptideIon::bstar);
54 ret.push_back(PeptideIon::bo);
65 ret.push_back(PeptideIon::c);
66 ret.push_back(PeptideIon::z);
67 ret.push_back(PeptideIon::ystar);
68 ret.push_back(PeptideIon::yo);
72 const std::list<PeptideIon> &
80 : msp_peptide(peptide), m_ionList(ions)
85 <<
"PeptideFragmentIonListBase::PeptideFragmentIonListBase begin "
87 std::list<PeptideFragmentSp> fragment_list =
94 for(
auto &&fragment_sp : fragment_list)
98 if(fragment_sp.get()->getPeptideIonDirection() ==
107 (ion_type == PeptideIon::ystar) ||
108 (ion_type == PeptideIon::yo) ||
109 (ion_type == PeptideIon::z))
112 std::make_shared<PeptideFragmentIon>(fragment_sp,
115 else if(ion_type == PeptideIon::yp)
117 if(phosphorylation_mod ==
nullptr)
119 phosphorylation_mod =
122 peptide.get()->getNumberOfModification(
123 phosphorylation_mod);
128 std::make_shared<PeptideFragmentIon>(
129 fragment_sp, ion_type, i + 1));
139 if((ion_type == PeptideIon::b) ||
140 (ion_type == PeptideIon::bstar) ||
141 (ion_type == PeptideIon::bo) ||
142 (ion_type == PeptideIon::a) || (ion_type == PeptideIon::c))
145 std::make_shared<PeptideFragmentIon>(fragment_sp,
148 else if(ion_type == PeptideIon::bp)
150 if(phosphorylation_mod ==
nullptr)
152 phosphorylation_mod =
155 peptide.get()->getNumberOfModification(
156 phosphorylation_mod);
161 std::make_shared<PeptideFragmentIon>(
162 fragment_sp, ion_type, i + 1));
168 qDebug() <<
"PeptideFragmentIonListBase::PeptideFragmentIonListBase end "
175 "ERROR building PeptideFragmentIonListBase, PAPPSO exception:\n%1")
176 .arg(exception_pappso.
qwhat());
177 qDebug() <<
"PeptideFragmentIonListBase::PeptideFragmentIonListBase "
178 "PappsoException :\n"
182 catch(std::exception &exception_std)
186 "ERROR building PeptideFragmentIonListBase, std exception:\n%1")
187 .arg(exception_std.what());
188 qDebug() <<
"PeptideFragmentIonListBase::PeptideFragmentIonListBase "
197 : msp_peptide(other.msp_peptide),
198 msp_peptide_fragment_ion_list(other.msp_peptide_fragment_ion_list),
199 m_ionList(other.m_ionList),
200 m_phosphorylationNumber(other.m_phosphorylationNumber)
208 return std::make_shared<const PeptideFragmentIonListBase>(*
this);
216 const std::list<PeptideFragmentSp>
219 std::list<PeptideFragmentSp> peptide_fragment_list;
221 unsigned int max = peptide.get()->size() - 1;
222 for(
unsigned int i = 0; i <
max; i++)
225 peptide_fragment_list.push_back(std::make_shared<PeptideFragment>(
226 peptide, PeptideDirection::Nter, i + 1));
227 peptide_fragment_list.push_back(std::make_shared<PeptideFragment>(
230 return peptide_fragment_list;
233 const std::list<PeptideFragmentIonSp>
236 std::list<PeptideFragmentIonSp> ion_list;
239 if(peptide_fragment_ion_sp.get()->getPeptideIonType() == ion_type)
241 ion_list.push_back(peptide_fragment_ion_sp);
249 unsigned int size)
const
259 unsigned int number_of_neutral_phospho_loss)
const
263 if(peptide_fragment_ion_sp.get()->getPeptideIonType() == ion_type)
265 if(peptide_fragment_ion_sp.get()->size() ==
size)
267 if(peptide_fragment_ion_sp.get()
268 ->getNumberOfNeutralPhosphoLoss() ==
269 number_of_neutral_phospho_loss)
271 return (peptide_fragment_ion_sp);
277 throw PappsoException(QString(
"PeptideFragmentIon %1 of size %2 not found")