libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
peakionisotopematch.cpp
Go to the documentation of this file.
1/*
2 * *******************************************************************************
3 * * Copyright (c) 2015 Olivier Langella <Olivier.Langella@moulon.inra.fr>.
4 * *
5 * * This file is part of MassChroqPRM.
6 * *
7 * * MassChroqPRM is free software: you can redistribute it and/or modify
8 * * it under the terms of the GNU General Public License as published by
9 * * the Free Software Foundation, either version 3 of the License, or
10 * * (at your option) any later version.
11 * *
12 * * MassChroqPRM is distributed in the hope that it will be useful,
13 * * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * * GNU General Public License for more details.
16 * *
17 * * You should have received a copy of the GNU General Public License
18 * * along with MassChroqPRM. If not, see <http://www.gnu.org/licenses/>.
19 * *
20 * * Contributors:
21 * * Olivier Langella <Olivier.Langella@moulon.inra.fr> - initial API and
22 * implementation
23 * ******************************************************************************/
24
25#include "peakionisotopematch.h"
26
27namespace pappso
28{
29std::vector<PeakIonIsotopeMatch>::iterator
30findComplementIonType(std::vector<PeakIonIsotopeMatch>::iterator begin,
31 std::vector<PeakIonIsotopeMatch>::iterator end,
32 const PeakIonIsotopeMatch &peak_ion,
33 std::size_t peptide_size)
34{
35
36 return std::find_if(
37 begin,
38 end,
39 [peak_ion, peptide_size](const PeakIonIsotopeMatch &to_compare) {
40 if(to_compare.getCharge() == peak_ion.getCharge())
41 {
42 if((to_compare.getPeptideFragmentIonSp().get()->size() +
43 peak_ion.getPeptideFragmentIonSp().get()->size()) == peptide_size)
44 {
46 peak_ion.getPeptideIonType()))
47 {
49 .get()
50 ->getIsotopeNumber() ==
52 .get()
54 {
55 return true;
56 }
57 }
58 }
59 }
60
61 return false;
62 });
63}
64
65
67 const DataPoint &peak,
68 const PeptideNaturalIsotopeAverageSp &naturalIsotopeAverageSp,
69 const PeptideFragmentIonSp &ion_sp)
70 : PeakIonMatch(peak, ion_sp, naturalIsotopeAverageSp.get()->getCharge()),
71 _naturalIsotopeAverageSp(naturalIsotopeAverageSp)
72{
73 qDebug();
74}
75
81
82
84 : PeakIonMatch(std::move(other))
85{
86 _naturalIsotopeAverageSp = other._naturalIsotopeAverageSp;
87}
88
97
98
107
108
109QString
111{
112 return QString("%1isotope%2r%3mz%4")
114 .arg(_naturalIsotopeAverageSp.get()->getIsotopeNumber())
115 .arg(_naturalIsotopeAverageSp.get()->getIsotopeRank())
116 .arg(getPeak().x);
117}
118
119} // namespace pappso
PeakIonIsotopeMatch(const DataPoint &peak, const PeptideNaturalIsotopeAverageSp &naturalIsotopeAverageSp, const PeptideFragmentIonSp &ion_sp)
virtual QString toString() const
PeakIonIsotopeMatch & operator=(const PeakIonIsotopeMatch &other)
PeptideNaturalIsotopeAverageSp _naturalIsotopeAverageSp
virtual const PeptideNaturalIsotopeAverageSp & getPeptideNaturalIsotopeAverageSp() const
const DataPoint & getPeak() const
virtual const PeptideFragmentIonSp & getPeptideFragmentIonSp() const
virtual QString toString() const
Enums::PeptideIon getPeptideIonType() const
PeakIonMatch & operator=(const PeakIonMatch &other)
PeakIonMatch(const DataPoint &peak, const PeptideFragmentIonSp &ion_sp, unsigned int charge)
unsigned int getCharge() const
virtual unsigned int size() const override
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition aa.cpp:39
bool peptideIonTypeIsComplement(Enums::PeptideIon ion_type_ref, Enums::PeptideIon ion_type)
tells if an ion type is the complement ion of the other
Definition peptide.cpp:68
std::shared_ptr< const PeptideFragmentIon > PeptideFragmentIonSp
std::shared_ptr< const PeptideNaturalIsotopeAverage > PeptideNaturalIsotopeAverageSp
std::vector< PeakIonIsotopeMatch >::iterator findComplementIonType(std::vector< PeakIonIsotopeMatch >::iterator begin, std::vector< PeakIonIsotopeMatch >::iterator end, const PeakIonIsotopeMatch &peak_ion, std::size_t peptide_size)
find the first element containing the complementary ion complementary ion of y1 is b(n-1) for instanc...