1
// -*- Mode: C++; tab-width: 2; -*-
4
// --------------------------------------------------------------------------
5
// OpenMS Mass Spectrometry Framework
6
// --------------------------------------------------------------------------
7
// Copyright (C) 2003-2011 -- Oliver Kohlbacher, Knut Reinert
9
// This library is free software; you can redistribute it and/or
10
// modify it under the terms of the GNU Lesser General Public
11
// License as published by the Free Software Foundation; either
12
// version 2.1 of the License, or (at your option) any later version.
14
// This library is distributed in the hope that it will be useful,
15
// but WITHOUT ANY WARRANTY; without even the implied warranty of
16
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
// Lesser General Public License for more details.
19
// You should have received a copy of the GNU Lesser General Public
20
// License along with this library; if not, write to the Free Software
21
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23
// --------------------------------------------------------------------------
24
// $Maintainer: Sandro Andreotti $
25
// $Authors: Andreas Bertsch $
26
// --------------------------------------------------------------------------
29
#ifndef OPENMS_ANALYSIS_DENOVO_COMPNOVOIDENTIFICATION_H
30
#define OPENMS_ANALYSIS_DENOVO_COMPNOVOIDENTIFICATION_H
33
#include <OpenMS/ANALYSIS/DENOVO/CompNovoIdentificationBase.h>
41
@brief run with CompNovoIdentification
43
@htmlinclude OpenMS_CompNovoIdentification.parameters
47
class OPENMS_DLLAPI CompNovoIdentification : public CompNovoIdentificationBase
52
/** @name constructors and destructors
55
/// default constructor
56
CompNovoIdentification();
59
CompNovoIdentification(const CompNovoIdentification& source);
62
virtual ~CompNovoIdentification();
66
CompNovoIdentification& operator = (const CompNovoIdentification& source);
71
/// performs an ProteinIdentification run on a PeakMap
72
void getIdentifications(std::vector<PeptideIdentification>& ids, const PeakMap& exp);
74
/// performs an ProteinIdentification run on a PeakSpectrum
75
void getIdentification(PeptideIdentification& id, const PeakSpectrum& CID_spec, const PeakSpectrum& ETD_spec);
79
typedef CompNovoIonScoringBase::IsotopeType IsotopeType;
80
typedef CompNovoIonScoringBase::IonScore IonScore;
81
typedef CompNovoIdentificationBase::Permut Permut;
85
/// call the DAC algorithm for the subspectrum defined via left and right peaks and fill the set with candidates sequences
86
void getDecompositionsDAC_(std::set<String>& sequences, Size left, Size right, DoubleReal peptide_weight, const PeakSpectrum& CID_orig_spec, const PeakSpectrum& ETD_orig_spec, Map<DoubleReal, IonScore>& CID_nodes);
88
/// reduces the given number of permuts by scoring the perumtations to the CID and ETD spec
89
void reducePermuts_(std::set<String>& permuts, const PeakSpectrum& CID_orig_spec, const PeakSpectrum& ETD_orig_spec, DoubleReal prefix, DoubleReal suffix);
91
/// fills the spectrum with c and z type ions
92
void getETDSpectrum_(PeakSpectrum& spec, const String& sequence, Size /* charge */, DoubleReal prefix = 0.0, DoubleReal suffix = 0.0);
94
/// estimates an exact precursor weight of the ETD spectrum, because in most of the cases the precursor is found in the MS/MS spec
95
DoubleReal estimatePrecursorWeight_(const PeakSpectrum& ETD_spec, Size& charge);