libpappsomspp
Library for mass spectrometry
xtandemhyperscorebis.h
Go to the documentation of this file.
1 /**
2  * \file pappsomspp/psm/xtandem/xtandemhyperscorebis.h
3  * \date 8/9/2016
4  * \author Olivier Langella
5  * \brief computation of the X!Tandem hyperscore
6  */
7 
8 /*******************************************************************************
9  * Copyright (c) 2015 Olivier Langella <Olivier.Langella@moulon.inra.fr>.
10  *
11  * This file is part of the PAPPSOms++ library.
12  *
13  * PAPPSOms++ is free software: you can redistribute it and/or modify
14  * it under the terms of the GNU General Public License as published by
15  * the Free Software Foundation, either version 3 of the License, or
16  * (at your option) any later version.
17  *
18  * PAPPSOms++ is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
25  *
26  * Contributors:
27  * Olivier Langella <Olivier.Langella@moulon.inra.fr> - initial API and
28  *implementation
29  ******************************************************************************/
30 
31 #pragma once
32 
33 
34 #include "../../massspectrum/massspectrum.h"
35 #include "../../peptide/peptide.h"
36 
37 namespace pappso
38 {
39 
41 {
42  using AaFactorMap = std::map<char, pappso_double>;
43 
44  private:
45  unsigned int getXtandemPredictedIonIntensityFactor(const QString &sequence,
46  PeptideIon ion_type,
47  unsigned int size) const;
50  std::vector<PeptideIon> m_ionList;
51 
52  unsigned int m_totalMatchedIons = 0;
53  unsigned int m_ionCount[PEPTIDE_ION_TYPE_COUNT] = {0};
54 
55 
57 
60 
61  public:
62  XtandemHyperscoreBis(bool refine_spectrum_synthesis,
63  PrecisionPtr precision,
64  const std::vector<PeptideIon> &ion_list);
66 
68  unsigned int getMatchedIons(PeptideIon ion_type) const;
69 
70 
71  void reset();
72 
73  bool computeXtandemHyperscore(const MassSpectrum &spectrum,
74  const Peptide &peptide,
75  unsigned int parent_charge);
76  unsigned int getTotalMatchedIons() const;
77 };
78 
79 
80 } // namespace pappso
Class to represent a mass spectrum.
Definition: massspectrum.h:71
unsigned int getTotalMatchedIons() const
unsigned int getXtandemPredictedIonIntensityFactor(const QString &sequence, PeptideIon ion_type, unsigned int size) const
std::map< char, pappso_double > AaFactorMap
bool computeXtandemHyperscore(const MassSpectrum &spectrum, const Peptide &peptide, unsigned int parent_charge)
XtandemHyperscoreBis(bool refine_spectrum_synthesis, PrecisionPtr precision, const std::vector< PeptideIon > &ion_list)
unsigned int m_ionCount[PEPTIDE_ION_TYPE_COUNT]
std::vector< PeptideIon > m_ionList
unsigned int getMatchedIons(PeptideIon ion_type) const
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition: aa.cpp:39
PeptideIon
PeptideIon enum defines all types of ions (Nter or Cter)
Definition: types.h:386
double pappso_double
A type definition for doubles.
Definition: types.h:49
#define PEPTIDE_ION_TYPE_COUNT
only usefull for inernal usefull DO not change this value : it is used to define static array size
Definition: types.h:406