00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef OPENMS_COMPARISON_SPECTRA_SPECTRUMCHEAPDPCORR_H
00028 #define OPENMS_COMPARISON_SPECTRA_SPECTRUMCHEAPDPCORR_H
00029
00030 #include <OpenMS/KERNEL/StandardTypes.h>
00031 #include <OpenMS/COMPARISON/SPECTRA/PeakSpectrumCompareFunctor.h>
00032 #include <OpenMS/DATASTRUCTURES/HashMap.h>
00033
00034 namespace OpenMS
00035 {
00036
00050 class SpectrumCheapDPCorr : public PeakSpectrumCompareFunctor
00051 {
00052 public:
00053
00054
00055
00057 SpectrumCheapDPCorr();
00058
00060 SpectrumCheapDPCorr(const SpectrumCheapDPCorr& source);
00061
00063 virtual ~SpectrumCheapDPCorr();
00064
00065
00066
00067
00069 SpectrumCheapDPCorr& operator = (const SpectrumCheapDPCorr& source);
00070
00071 double operator () (const PeakSpectrum& a, const PeakSpectrum& b) const;
00072
00073 double operator () (const PeakSpectrum& a) const;
00074
00075
00076
00077
00079 static PeakSpectrumCompareFunctor* create() { return new SpectrumCheapDPCorr(); }
00080
00082 static const String getProductName()
00083 {
00084 return "SpectrumCheapDPCorr";
00085 }
00086
00088 const PeakSpectrum& lastconsensus() const;
00089
00091 HashMap<UInt, UInt> getPeakMap() const;
00092
00094 void setFactor(double f);
00095
00096
00097 private:
00098
00100 double dynprog_(const PeakSpectrum&, const PeakSpectrum&, int, int, int, int) const;
00101
00103 double comparepeaks_(double posa, double posb, double inta, double intb) const;
00104
00105 static const String info_;
00106
00108 mutable PeakSpectrum lastconsensus_;
00109
00111 bool keeppeaks_;
00112
00114 mutable double factor_;
00115
00117 mutable HashMap<UInt, UInt> peak_map_;
00118 };
00119
00120 }
00121 #endif //OPENMS_COMPARISON_SPECTRA_SPECTRUMCHEAPDPCORR_H