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
pappso::XtandemHyperscoreBis::m_totalMatchedIons
unsigned int m_totalMatchedIons
Definition: xtandemhyperscorebis.h:52
pappso::pappso_double
double pappso_double
A type definition for doubles.
Definition: types.h:48
PEPTIDE_ION_TYPE_COUNT
#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:354
pappso::XtandemHyperscoreBis::computeXtandemHyperscore
bool computeXtandemHyperscore(const MassSpectrum &spectrum, const Peptide &peptide, unsigned int parent_charge)
Definition: xtandemhyperscorebis.cpp:85
pappso::XtandemHyperscoreBis::mp_precision
PrecisionPtr mp_precision
Definition: xtandemhyperscorebis.h:49
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks
Definition: aa.cpp:39
pappso::MassSpectrum
Class to represent a mass spectrum.
Definition: massspectrum.h:71
pappso::XtandemHyperscoreBis::m_isRefineSpectrumSynthesis
bool m_isRefineSpectrumSynthesis
Definition: xtandemhyperscorebis.h:48
pappso::XtandemHyperscoreBis::reset
void reset()
Definition: xtandemhyperscorebis.cpp:74
pappso::XtandemHyperscoreBis::m_aaIonFactorBb
static AaFactorMap m_aaIonFactorBb
Definition: xtandemhyperscorebis.h:59
pappso::XtandemHyperscoreBis::XtandemHyperscoreBis
XtandemHyperscoreBis(bool refine_spectrum_synthesis, PrecisionPtr precision, const std::vector< PeptideIon > &ion_list)
Definition: xtandemhyperscorebis.cpp:50
pappso::PeptideIon
PeptideIon
PeptideIon enum defines all types of ions (Nter or Cter)
Definition: types.h:334
pappso::XtandemHyperscoreBis::m_aaIonFactorY
static AaFactorMap m_aaIonFactorY
Definition: xtandemhyperscorebis.h:58
pappso::Peptide
Definition: peptide.h:93
pappso::XtandemHyperscoreBis::m_ionList
std::vector< PeptideIon > m_ionList
Definition: xtandemhyperscorebis.h:50
pappso::XtandemHyperscoreBis::getHyperscore
pappso_double getHyperscore() const
Definition: xtandemhyperscorebis.cpp:269
pappso::XtandemHyperscoreBis::getXtandemPredictedIonIntensityFactor
unsigned int getXtandemPredictedIonIntensityFactor(const QString &sequence, PeptideIon ion_type, unsigned int size) const
Definition: xtandemhyperscorebis.cpp:208
pappso::PrecisionBase
Definition: precision.h:44
pappso::XtandemHyperscoreBis::AaFactorMap
std::map< char, pappso_double > AaFactorMap
Definition: xtandemhyperscorebis.h:42
pappso::XtandemHyperscoreBis::m_ionCount
unsigned int m_ionCount[PEPTIDE_ION_TYPE_COUNT]
Definition: xtandemhyperscorebis.h:53
pappso::XtandemHyperscoreBis::getMatchedIons
unsigned int getMatchedIons(PeptideIon ion_type) const
Definition: xtandemhyperscorebis.cpp:67
pappso::XtandemHyperscoreBis::~XtandemHyperscoreBis
~XtandemHyperscoreBis()
Definition: xtandemhyperscorebis.cpp:62
pappso::XtandemHyperscoreBis::getTotalMatchedIons
unsigned int getTotalMatchedIons() const
Definition: xtandemhyperscorebis.cpp:263
pappso::XtandemHyperscoreBis::m_protoHyperscore
pappso_double m_protoHyperscore
Definition: xtandemhyperscorebis.h:56
pappso::XtandemHyperscoreBis
Definition: xtandemhyperscorebis.h:41