libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
peptidebase.h
Go to the documentation of this file.
1/**
2 * \file pappsomspp/masschroq/peptidebase.h
3 * \date 24/01/2025
4 * \author Olivier Langella
5 * \brief peptide model base in masschroqlite
6 */
7
8/*******************************************************************************
9 * Copyright (c) 2025 Olivier Langella
10 *<Olivier.Langella@universite-paris-saclay.fr>.
11 *
12 * This file is part of MassChroQ.
13 *
14 * MassChroQ is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation, either version 3 of the License, or
17 * (at your option) any later version.
18 *
19 * MassChroQ is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with MassChroQ. If not, see <http://www.gnu.org/licenses/>.
26 *
27 ******************************************************************************/
28
29#pragma once
30
31
33
34namespace pappso::masschroq
35{
36/**
37 * @todo write docs
38 */
40{
41 public:
42 /**
43 * Default constructor
44 */
45 PeptideBase(const pappso::PeptideSp &peptide_sp);
46
47 /**
48 * Destructor
49 */
50 virtual ~PeptideBase();
51
52
53 /** @brief get the peptide sequence
54 * @return pappso::PeptideSp const reference
55 */
56 virtual const pappso::PeptideSp &getPappsoPeptideSp() const;
57
58 /** @brief compute possible isotopes for this molecule
59 * @param ni_min_abundance the minimal isotop abundance proportion to cover
60 * (0.9 will compute isotopes to reach at least 90% of its theoretical
61 * abundance
62 */
63 virtual void computeIsotopologues(double ni_min_abundance);
64
65 /** @brief get list of isotopes for this peptide
66 * needs computeIsotopologues before
67 *
68 * @return pappso::PeptideNaturalIsotopeList pointer to all possible isotopes
69 * (C13, H2, N15...)
70 */
73
74
75 /** @brief get possible and distinguishable masses of isotopes
76 * get list of distinguishable isotopes given the charge and mass precision
77 * @param precision mass spectrometer MS1 precision
78 * @param charge number of H+
79 * @param ni_min_abundance select isotopes to regroup
80 * @return std::vector<pappso::PeptideNaturalIsotopeAverageSp> list
81 */
82 virtual const std::vector<pappso::PeptideNaturalIsotopeAverageSp> &
84 std::uint8_t charge,
85 double ni_min_abundance);
86
87 protected:
90 std::map<std::uint8_t, std::vector<pappso::PeptideNaturalIsotopeAverageSp>>
92 double m_niMinAbundance = 0;
93 QMutex m_mutex;
94};
95} // namespace mcql
const pappso::PeptideSp msp_peptide
Definition peptidebase.h:88
virtual const pappso::PeptideNaturalIsotopeList * getPeptideNaturalIsotopeList() const
get list of isotopes for this peptide needs computeIsotopologues before
virtual void computeIsotopologues(double ni_min_abundance)
compute possible isotopes for this molecule
virtual const std::vector< pappso::PeptideNaturalIsotopeAverageSp > & getPeptideNaturalIsotopeAverageSpList(pappso::PrecisionPtr precision, std::uint8_t charge, double ni_min_abundance)
get possible and distinguishable masses of isotopes get list of distinguishable isotopes given the ch...
virtual const pappso::PeptideSp & getPappsoPeptideSp() const
get the peptide sequence
PeptideBase(const pappso::PeptideSp &peptide_sp)
pappso::PeptideNaturalIsotopeList * mpa_peptideNaturalIsotopeList
Definition peptidebase.h:89
std::map< std::uint8_t, std::vector< pappso::PeptideNaturalIsotopeAverageSp > > m_peptideNaturalIsotopeAverageSpListByCharge
Definition peptidebase.h:91
std::shared_ptr< const Peptide > PeptideSp
const PrecisionBase * PrecisionPtr
Definition precision.h:122