OpenMS
GaussFilter Class Reference

This class represents a Gaussian lowpass-filter which works on uniform as well as on non-uniform profile data. More...

#include <OpenMS/FILTERING/SMOOTHING/GaussFilter.h>

Inheritance diagram for GaussFilter:
[legend]
Collaboration diagram for GaussFilter:
[legend]

Public Member Functions

 GaussFilter ()
 Constructor. More...
 
 ~GaussFilter () override=default
 Destructor. More...
 
void filter (MSSpectrum &spectrum)
 Smoothes an MSSpectrum containing profile data. More...
 
void filter (MSChromatogram &chromatogram)
 
void filterExperiment (PeakMap &map)
 Smoothes an MSExperiment containing profile data. More...
 
- Public Member Functions inherited from ProgressLogger
 ProgressLogger ()
 Constructor. More...
 
virtual ~ProgressLogger ()
 Destructor. More...
 
 ProgressLogger (const ProgressLogger &other)
 Copy constructor. More...
 
ProgressLoggeroperator= (const ProgressLogger &other)
 Assignment Operator. More...
 
void setLogType (LogType type) const
 Sets the progress log that should be used. The default type is NONE! More...
 
LogType getLogType () const
 Returns the type of progress log being used. More...
 
void startProgress (SignedSize begin, SignedSize end, const String &label) const
 Initializes the progress display. More...
 
void setProgress (SignedSize value) const
 Sets the current progress. More...
 
void endProgress (UInt64 bytes_processed=0) const
 
void nextProgress () const
 increment progress by 1 (according to range begin-end) More...
 
- Public Member Functions inherited from DefaultParamHandler
 DefaultParamHandler (const String &name)
 Constructor with name that is displayed in error messages. More...
 
 DefaultParamHandler (const DefaultParamHandler &rhs)
 Copy constructor. More...
 
virtual ~DefaultParamHandler ()
 Destructor. More...
 
DefaultParamHandleroperator= (const DefaultParamHandler &rhs)
 Assignment operator. More...
 
virtual bool operator== (const DefaultParamHandler &rhs) const
 Equality operator. More...
 
void setParameters (const Param &param)
 Sets the parameters. More...
 
const ParamgetParameters () const
 Non-mutable access to the parameters. More...
 
const ParamgetDefaults () const
 Non-mutable access to the default parameters. More...
 
const StringgetName () const
 Non-mutable access to the name. More...
 
void setName (const String &name)
 Mutable access to the name. More...
 
const std::vector< String > & getSubsections () const
 Non-mutable access to the registered subsections. More...
 

Protected Member Functions

void updateMembers_ () override
 This method is used to update extra member variables at the end of the setParameters() method. More...
 
- Protected Member Functions inherited from DefaultParamHandler
void defaultsToParam_ ()
 Updates the parameters after the defaults have been set in the constructor. More...
 

Protected Attributes

GaussFilterAlgorithm gauss_algo_
 
double spacing_
 The spacing of the pre-tabulated kernel coefficients. More...
 
bool write_log_messages_ = false
 
- Protected Attributes inherited from ProgressLogger
LogType type_
 
time_t last_invoke_
 
ProgressLoggerImplcurrent_logger_
 
- Protected Attributes inherited from DefaultParamHandler
Param param_
 Container for current parameters. More...
 
Param defaults_
 Container for default parameters. This member should be filled in the constructor of derived classes! More...
 
std::vector< Stringsubsections_
 Container for registered subsections. This member should be filled in the constructor of derived classes! More...
 
String error_name_
 Name that is displayed in error messages during the parameter checking. More...
 
bool check_defaults_
 If this member is set to false no checking if parameters in done;. More...
 
bool warn_empty_defaults_
 If this member is set to false no warning is emitted when defaults are empty;. More...
 

Additional Inherited Members

- Public Types inherited from ProgressLogger
enum  LogType { CMD , GUI , NONE }
 Possible log types. More...
 
- Static Public Member Functions inherited from DefaultParamHandler
static void writeParametersToMetaValues (const Param &write_this, MetaInfoInterface &write_here, const String &key_prefix="")
 Writes all parameters to meta values. More...
 
- Static Protected Member Functions inherited from ProgressLogger
static String logTypeToFactoryName_ (LogType type)
 Return the name of the factory product used for this log type. More...
 
- Static Protected Attributes inherited from ProgressLogger
static int recursion_depth_
 

Detailed Description

This class represents a Gaussian lowpass-filter which works on uniform as well as on non-uniform profile data.

Gaussian filters are important in many signal processing, image processing, and communication applications. These filters are characterized by narrow bandwidths, sharp cutoffs, and low passband ripple. A key feature of Gaussian filters is that the Fourier transform of a Gaussian is also a Gaussian, so the filter has the same response shape in both the time and frequency domains. The coefficients \( \emph{coeffs} \) of the Gaussian-window with length \( \emph{frameSize} \) are calculated from the gaussian distribution

\[ \emph{coeff}(x) = \frac{1}{\sigma \sqrt{2\pi}} e^{\frac{-x^2}{2\sigma^2}} \]

where \( x=[-\frac{frameSize}{2},...,\frac{frameSize}{2}] \) represents the window area and \( \sigma \) is the standard derivation.

Note
The wider the kernel width the smoother the signal (the more detail information get lost!). Use a Gaussian filter kernel which has approximately the same width as your mass peaks, whereas the Gaussian peak width corresponds approximately to 8*sigma.
The data must be sorted according to ascending m/z!
Parameters of this class are:

NameTypeDefaultRestrictionsDescription
gaussian_width float0.2  Use a gaussian filter width which has approximately the same width as your mass peaks (FWHM in m/z).
ppm_tolerance float10.0  Gaussian width, depending on the m/z position.
The higher the value, the wider the peak and therefore the wider the gaussian.
use_ppm_tolerance stringfalse true, falseIf true, instead of the gaussian_width value, the ppm_tolerance is used. The gaussian is calculated in each step anew, so this is much slower.
write_log_messages stringfalse true, falsetrue: Warn if no signal was found by the Gauss filter algorithm.

Note:
  • If a section name is documented, the documentation is displayed as tooltip.
  • Advanced parameter names are italic.

Constructor & Destructor Documentation

◆ GaussFilter()

Constructor.

◆ ~GaussFilter()

~GaussFilter ( )
overridedefault

Destructor.

Member Function Documentation

◆ filter() [1/2]

void filter ( MSChromatogram chromatogram)

◆ filter() [2/2]

void filter ( MSSpectrum spectrum)

Smoothes an MSSpectrum containing profile data.

Convolutes the filter and the profile data and writes the result back to the spectrum.

Exceptions
Exception::IllegalArgumentis thrown, if the gaussian_width parameter is too small.

Referenced by EmgScoring::prepareFit_().

◆ filterExperiment()

void filterExperiment ( PeakMap map)

Smoothes an MSExperiment containing profile data.

Exceptions
Exception::IllegalArgumentis thrown, if the gaussian_width parameter is too small.

◆ updateMembers_()

void updateMembers_ ( )
overrideprotectedvirtual

This method is used to update extra member variables at the end of the setParameters() method.

Also call it at the end of the derived classes' copy constructor and assignment operator.

The default implementation is empty.

Reimplemented from DefaultParamHandler.

Member Data Documentation

◆ gauss_algo_

GaussFilterAlgorithm gauss_algo_
protected

◆ spacing_

double spacing_
protected

The spacing of the pre-tabulated kernel coefficients.

◆ write_log_messages_

bool write_log_messages_ = false
protected