Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
MapAlignmentAlgorithmSpectrumAlignment.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // OpenMS -- Open-Source Mass Spectrometry
3 // --------------------------------------------------------------------------
4 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5 // ETH Zurich, and Freie Universitaet Berlin 2002-2017.
6 //
7 // This software is released under a three-clause BSD license:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of any author or any participating institution
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 // For a full list of authors, refer to the file AUTHORS.
17 // --------------------------------------------------------------------------
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // --------------------------------------------------------------------------
31 // $Maintainer: Timo Sachsenberg $
32 // $Authors: Vipul Patel $
33 // --------------------------------------------------------------------------
34 
35 #ifndef OPENMS_ANALYSIS_MAPMATCHING_MAPALIGNMENTALGORITHMSPECTRUMALIGNMENT_H
36 #define OPENMS_ANALYSIS_MAPMATCHING_MAPALIGNMENTALGORITHMSPECTRUMALIGNMENT_H
37 
43 
44 namespace OpenMS
45 {
56  public DefaultParamHandler,
57  public ProgressLogger
58  {
59 public:
62 
65 
67  virtual void align(std::vector<PeakMap >&, std::vector<TransformationDescription>&);
68 
69 private:
74 
83  class OPENMS_DLLAPI Compare
84  {
85  protected:
86  bool flag;
87 
88  public:
89 
91  explicit Compare(bool b = false) :
92  flag(b)
93  {
94  }
95 
105  inline bool operator()(const std::pair<std::pair<Int, float>, float>& c1, const std::pair<std::pair<Int, float>, float>& c2)
106  {
107  if (!flag)
108  {
109  return c1.second > c2.second;
110  }
111  else
112  {
113  return (c1.first).first < (c2.first).first;
114  }
115  }
116 
124  inline bool operator()(const std::pair<float, float>& c1, const std::pair<float, float>& c2)
125  {
126  if (!flag)
127  {
128  return c1.first > c2.first;
129  }
130  else
131  {
132  return c1.first < c2.first;
133  }
134  }
135 
136  };
137 
153  void prepareAlign_(const std::vector<MSSpectrum*>& pattern, PeakMap& aligned, std::vector<TransformationDescription>& transformation);
154 
165  void msFilter_(PeakMap& peakmap, std::vector<MSSpectrum*>& spectrum_pointer_container);
166 
179  bool insideBand_(Size i, Size j, Size n, Size m, Int k_);
180 
198  Int bestk_(const std::vector<MSSpectrum*>& pattern,
199  std::vector<MSSpectrum*>& aligned, std::map<Size, std::map<Size, float> >& buffer,
200  bool column_row_orientation, Size xbegin, Size xend, Size ybegin, Size yend);
201 
222  float scoreCalculation_(Size i, Size j, Size patternbegin, Size alignbegin,
223  const std::vector<MSSpectrum*>& pattern, std::vector<MSSpectrum*>& aligned,
224  std::map<Size, std::map<Size, float> >& buffer, bool column_row_orientation);
225 
229  float scoring_(const MSSpectrum& a, MSSpectrum& b);
230 
252  void affineGapalign_(Size xbegin, Size ybegin, Size xend, Size yend,
253  const std::vector<MSSpectrum*>& pattern,
254  std::vector<MSSpectrum*>& aligned,
255  std::vector<int>& xcoordinate, std::vector<float>& ycoordinate,
256  std::vector<int>& xcoordinatepattern);
257 
273  void bucketFilter_(const std::vector<MSSpectrum*>& pattern,
274  std::vector<MSSpectrum*>& aligned, std::vector<Int>& xcoordinate,
275  std::vector<float>& ycoordinate, std::vector<Int>& xcoordinatepattern);
276 
297  void debugFileCreator_(const std::vector<MSSpectrum*>& pattern, std::vector<MSSpectrum*>& aligned);
298 
304  void debugscoreDistributionCalculation_(float score);
305 
307  float gap_;
309  float e_;
319  bool debug_;
323  float threshold_;
325  std::vector<std::vector<float> > debugmatrix_;
327  std::vector<std::vector<float> > debugscorematrix_;
329  std::vector<std::pair<float, float> > debugtraceback_;
331  std::vector<float> scoredistribution_; //save the cell i, j , matchscore, insertscore, traceback
332  //docu in base class
333  void updateMembers_();
334  };
335 
336 } // namespace OpenMS
337 
338 #endif // OPENMS_ANALYSIS_MAPMATCHING_MAPALIGNMENTALGORITHMSPECTRUMALIGNMENT_H
std::vector< std::vector< float > > debugmatrix_
Container holding the score of the matchmatrix and also the insertmatrix.
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:325
float mismatchscore_
Represent the cost of a mismatch in the alignment.
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:321
Size anchorPoints_
Defines the amount of anchor points which are selected within one bucket.
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:317
bool debug_
Debug mode flag default: False.
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:319
PeakSpectrumCompareFunctor * c1_
Pointer holds the scoring function, which can be selected.
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:311
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
std::vector< float > scoredistribution_
Container holding the score of each cell(matchmatrix,insertmatrix, traceback)
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:331
bool flag
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:86
Size bucketsize_
Defines the size of one bucket.
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:315
float e_
Extension cost after a gap is open.
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:309
Compare(bool b=false)
Default constructor with an order flag.
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:91
The representation of a 1D spectrum.
Definition: MSSpectrum.h:67
inner class necessary for using the sort algorithm.
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:83
A map alignment algorithm based on spectrum similarity (dynamic programming).
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:55
bool operator()(const std::pair< float, float > &c1, const std::pair< float, float > &c2)
overloaded operator() for comparing pairs of float, float std::pair<float,float>. ...
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:124
In-Memory representation of a mass spectrometry experiment.
Definition: MSExperiment.h:82
bool operator()(const std::pair< std::pair< Int, float >, float > &c1, const std::pair< std::pair< Int, float >, float > &c2)
overloaded operator() for comparing maps of maps std::pair<std::pair<Int,float>,float>.
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:105
std::vector< std::pair< float, float > > debugtraceback_
Container holding the path of the traceback.
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:329
float cutoffScore_
This is the minimal score to be count as a mismatch(range 0.0 - 1.0)
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:313
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:128
std::vector< std::vector< float > > debugscorematrix_
Container holding the only the score of Spectra.
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:327
Base class for all classes that want to report their progress.
Definition: ProgressLogger.h:55
Base class for compare functors of spectra, that return a similarity value for two spectra...
Definition: PeakSpectrumCompareFunctor.h:53
float gap_
Represent the gap cost for opening or closing a gap in the alignment.
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:307
A base class for all classes handling default parameters.
Definition: DefaultParamHandler.h:92
float threshold_
This is the minimum score for counting as a match(1-cutoffScore_)
Definition: MapAlignmentAlgorithmSpectrumAlignment.h:323
int Int
Signed integer type.
Definition: Types.h:103

OpenMS / TOPP release 2.3.0 Documentation generated on Tue Jan 9 2018 18:22:01 using doxygen 1.8.13