Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages

NLargest.h (Maintainer: Andreas Bertsch)

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // --------------------------------------------------------------------------
00005 //                   OpenMS Mass Spectrometry Framework
00006 // --------------------------------------------------------------------------
00007 //  Copyright (C) 2003-2008 -- Oliver Kohlbacher, Knut Reinert
00008 //
00009 //  This library is free software; you can redistribute it and/or
00010 //  modify it under the terms of the GNU Lesser General Public
00011 //  License as published by the Free Software Foundation; either
00012 //  version 2.1 of the License, or (at your option) any later version.
00013 //
00014 //  This library is distributed in the hope that it will be useful,
00015 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017 //  Lesser General Public License for more details.
00018 //
00019 //  You should have received a copy of the GNU Lesser General Public
00020 //  License along with this library; if not, write to the Free Software
00021 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00022 //
00023 // --------------------------------------------------------------------------
00024 // $Maintainer: Andreas Bertsch $
00025 // --------------------------------------------------------------------------
00026 //
00027 #ifndef OPENMS_FILTERING_TRANSFORMERS_NLARGEST_H
00028 #define OPENMS_FILTERING_TRANSFORMERS_NLARGEST_H
00029 
00030 #include <OpenMS/FILTERING/TRANSFORMERS/PreprocessingFunctor.h>
00031 
00032 namespace OpenMS
00033 {
00034 
00042   class NLargest
00043     : public PreprocessingFunctor
00044   {
00045   public:
00046 
00047     // @name Constructors and Destructors
00048     // @{
00050     NLargest();
00051 
00053     NLargest(UInt n);
00054 
00056     NLargest(const NLargest& source);
00057 
00059     virtual ~NLargest();
00060     // @}
00061 
00062     // @name Operators
00063     // @{
00065     NLargest& operator=(const NLargest& source);
00066     // @}
00067 
00068     // @name Accessors
00069     // @{
00070     // static create function for factory
00071     static PreprocessingFunctor* create() 
00072     { 
00073       return new NLargest();
00074     } 
00075     
00077     static const String getProductName()
00078     {
00079       return "NLargest";
00080     }
00081 
00083     template <typename SpectrumType> void filterSpectrum(SpectrumType& spectrum)
00084     {
00085       // get parameter how many peaks are wanted
00086       unsigned int n = (unsigned int)param_.getValue("n");
00087       if (spectrum.size() <= n) return;
00088       
00089       // sort by reverse intensity
00090       spectrum.getContainer().sortByIntensity(true);
00091 
00092       // keep the n largest peaks if more than n are present
00093       spectrum.resize(n);
00094     }
00095 
00096     void filterPeakSpectrum(PeakSpectrum& spectrum);
00097 
00098     void filterPeakMap(PeakMap& exp);
00099     // @}
00100   
00101   };
00102   
00103 }
00104 #endif //OPENMS_FILTERING_TRANSFORMERS_NLARGEST_H

Generated Tue Apr 1 15:36:36 2008 -- using doxygen 1.5.4 OpenMS / TOPP 1.1