OpenMS
2.8.0
|
Estimates the signal/noise (S/N) ratio of each data point in a scan by using the median (histogram based) More...
#include <OpenMS/FILTERING/NOISEESTIMATION/SignalToNoiseEstimatorMedian.h>
Public Types | |
enum | IntensityThresholdCalculation { MANUAL = -1 , AUTOMAXBYSTDEV = 0 , AUTOMAXBYPERCENT = 1 } |
method to use for estimating the maximal intensity that is used for histogram calculation More... | |
typedef SignalToNoiseEstimator< Container >::PeakIterator | PeakIterator |
typedef SignalToNoiseEstimator< Container >::PeakType | PeakType |
typedef SignalToNoiseEstimator< Container >::GaussianEstimate | GaussianEstimate |
Public Types inherited from SignalToNoiseEstimator< MSSpectrum > | |
typedef Container::const_iterator | PeakIterator |
typedef PeakIterator::value_type | PeakType |
Public Types inherited from ProgressLogger | |
enum | LogType { CMD , GUI , NONE } |
Possible log types. More... | |
Public Member Functions | |
SignalToNoiseEstimatorMedian () | |
default constructor More... | |
SignalToNoiseEstimatorMedian (const SignalToNoiseEstimatorMedian &source) | |
Copy Constructor. More... | |
Public Member Functions inherited from SignalToNoiseEstimator< MSSpectrum > | |
SignalToNoiseEstimator () | |
Constructor. More... | |
SignalToNoiseEstimator (const SignalToNoiseEstimator &source) | |
Copy constructor. More... | |
SignalToNoiseEstimator & | operator= (const SignalToNoiseEstimator &source) |
Assignment operator. More... | |
~SignalToNoiseEstimator () override | |
Destructor. More... | |
virtual void | init (const MSSpectrum &c) |
Set the start and endpoint of the raw data interval, for which signal to noise ratios will be estimated immediately. More... | |
virtual double | getSignalToNoise (const Size index) const |
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... | |
virtual DefaultParamHandler & | operator= (const DefaultParamHandler &rhs) |
Assignment operator. More... | |
virtual bool | operator== (const DefaultParamHandler &rhs) const |
Equality operator. More... | |
void | setParameters (const Param ¶m) |
Sets the parameters. More... | |
const Param & | getParameters () const |
Non-mutable access to the parameters. More... | |
const Param & | getDefaults () const |
Non-mutable access to the default parameters. More... | |
const String & | getName () 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... | |
Public Member Functions inherited from ProgressLogger | |
ProgressLogger () | |
Constructor. More... | |
virtual | ~ProgressLogger () |
Destructor. More... | |
ProgressLogger (const ProgressLogger &other) | |
Copy constructor. More... | |
ProgressLogger & | operator= (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 () const |
Ends the progress display. More... | |
void | nextProgress () const |
increment progress by 1 (according to range begin-end) More... | |
Assignment | |
double | max_intensity_ |
maximal intensity considered during binning (values above get discarded) More... | |
double | auto_max_stdev_Factor_ |
parameter for initial automatic estimation of "max_intensity_": a stdev multiplier More... | |
double | auto_max_percentile_ |
parameter for initial automatic estimation of "max_intensity_" percentile or a stdev More... | |
int | auto_mode_ |
determines which method shall be used for estimating "max_intensity_". valid are MANUAL=-1, AUTOMAXBYSTDEV=0 or AUTOMAXBYPERCENT=1 More... | |
double | win_len_ |
range of data points which belong to a window in Thomson More... | |
int | bin_count_ |
number of bins in the histogram More... | |
int | min_required_elements_ |
minimal number of elements a window needs to cover to be used More... | |
double | noise_for_empty_window_ |
bool | write_log_messages_ |
double | sparse_window_percent_ |
double | histogram_oob_percent_ |
SignalToNoiseEstimatorMedian & | operator= (const SignalToNoiseEstimatorMedian &source) |
~SignalToNoiseEstimatorMedian () override | |
Destructor. More... | |
double | getSparseWindowPercent () const |
Returns how many percent of the windows were sparse. More... | |
double | getHistogramRightmostPercent () const |
Returns the percentage where the median was found in the rightmost bin. More... | |
void | computeSTN_ (const Container &c) override |
void | updateMembers_ () override |
overridden function from DefaultParamHandler to keep members up to date, when a parameter is changed More... | |
Additional Inherited Members | |
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... | |
Protected Member Functions inherited from SignalToNoiseEstimator< MSSpectrum > | |
virtual void | computeSTN_ (const MSSpectrum &c)=0 |
computes the S/N values when init() is called More... | |
GaussianEstimate | estimate_ (const PeakIterator &scan_first_, const PeakIterator &scan_last_) const |
calculate mean & stdev of intensities of a spectrum More... | |
Protected Member Functions inherited from DefaultParamHandler | |
void | defaultsToParam_ () |
Updates the parameters after the defaults have been set in the constructor. 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... | |
Protected Attributes inherited from SignalToNoiseEstimator< MSSpectrum > | |
std::vector< double > | stn_estimates_ |
stores the noise estimate for each peak More... | |
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< String > | subsections_ |
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... | |
Protected Attributes inherited from ProgressLogger | |
LogType | type_ |
time_t | last_invoke_ |
ProgressLoggerImpl * | current_logger_ |
Static Protected Attributes inherited from ProgressLogger | |
static int | recursion_depth_ |
Estimates the signal/noise (S/N) ratio of each data point in a scan by using the median (histogram based)
For each datapoint in the given scan, we collect a range of data points around it (param: win_len). The noise for a datapoint is estimated to be the median of the intensities of the current window. If the number of elements in the current window is not sufficient (param: MinReqElements), the noise level is set to a default value (param: noise_for_empty_window). The whole computation is histogram based, so the user will need to supply a number of bins (param: bin_count), which determines the level of error and runtime. The maximal intensity for a datapoint to be included in the histogram can be either determined automatically (params: AutoMaxIntensity, auto_mode) by two different methods or can be set directly by the user (param: max_intensity). If the (estimated) max_intensity value is too low and the median is found to be in the last (&highest) bin, a warning will be given. In this case you should increase max_intensity (and optionally the bin_count).
Changing any of the parameters will invalidate the S/N values (which will invoke a recomputation on the next request).
Name | Type | Default | Restrictions | Description |
---|---|---|---|---|
max_intensity | int | -1 | min: -1 | maximal intensity considered for histogram construction. By default, it will be calculated automatically (see auto_mode). Only provide this parameter if you know what you are doing (and change 'auto_mode' to '-1')! All intensities EQUAL/ABOVE 'max_intensity' will be added to the LAST histogram bin. If you choose 'max_intensity' too small, the noise estimate might be too small as well. If chosen too big, the bins become quite large (which you could counter by increasing 'bin_count', which increases runtime). In general, the Median-S/N estimator is more robust to a manual max_intensity than the MeanIterative-S/N. |
auto_max_stdev_factor | float | 3.0 | min: 0.0 max: 999.0 | parameter for 'max_intensity' estimation (if 'auto_mode' == 0): mean + 'auto_max_stdev_factor' * stdev |
auto_max_percentile | int | 95 | min: 0 max: 100 | parameter for 'max_intensity' estimation (if 'auto_mode' == 1): auto_max_percentile th percentile |
auto_mode | int | 0 | min: -1 max: 1 | method to use to determine maximal intensity: -1 --> use 'max_intensity'; 0 --> 'auto_max_stdev_factor' method (default); 1 --> 'auto_max_percentile' method |
win_len | float | 200.0 | min: 1.0 | window length in Thomson |
bin_count | int | 30 | min: 3 | number of bins for intensity values |
min_required_elements | int | 10 | min: 1 | minimum number of elements required in a window (otherwise it is considered sparse) |
noise_for_empty_window | float | 1.0e20 | noise value used for sparse windows | |
write_log_messages | string | true | true, false | Write out log messages in case of sparse windows or median in rightmost histogram bin |
typedef SignalToNoiseEstimator<Container>::GaussianEstimate GaussianEstimate |
typedef SignalToNoiseEstimator<Container>::PeakIterator PeakIterator |
typedef SignalToNoiseEstimator<Container>::PeakType PeakType |
|
inline |
|
inline |
Copy Constructor.
References SignalToNoiseEstimatorMedian< Container >::updateMembers_().
|
inlineoverride |
Destructor.
|
inlineoverrideprotected |
Calculate signal-to-noise values for all data points given, by using a sliding window approach
c | Raw data, usually an MSSpectrum |
Throws | Exception::InvalidValue |
start progress estimation
References SignalToNoiseEstimatorMedian< Container >::auto_max_percentile_, SignalToNoiseEstimatorMedian< Container >::auto_max_stdev_Factor_, SignalToNoiseEstimatorMedian< Container >::auto_mode_, SignalToNoiseEstimatorMedian< Container >::AUTOMAXBYPERCENT, SignalToNoiseEstimatorMedian< Container >::AUTOMAXBYSTDEV, SignalToNoiseEstimatorMedian< Container >::bin_count_, OpenMS::Constants::c, ProgressLogger::endProgress(), SignalToNoiseEstimator< Container >::estimate_(), SignalToNoiseEstimatorMedian< Container >::histogram_oob_percent_, SignalToNoiseEstimatorMedian< Container >::max_intensity_, SignalToNoiseEstimator< Container >::GaussianEstimate::mean, SignalToNoiseEstimatorMedian< Container >::min_required_elements_, SignalToNoiseEstimatorMedian< Container >::noise_for_empty_window_, OPENMS_LOG_WARN, ProgressLogger::setProgress(), SignalToNoiseEstimatorMedian< Container >::sparse_window_percent_, ProgressLogger::startProgress(), SignalToNoiseEstimator< MSSpectrum >::stn_estimates_, SignalToNoiseEstimator< Container >::GaussianEstimate::variance, SignalToNoiseEstimatorMedian< Container >::win_len_, and SignalToNoiseEstimatorMedian< Container >::write_log_messages_.
|
inline |
Returns the percentage where the median was found in the rightmost bin.
References SignalToNoiseEstimatorMedian< Container >::histogram_oob_percent_.
|
inline |
Returns how many percent of the windows were sparse.
References SignalToNoiseEstimatorMedian< Container >::sparse_window_percent_.
|
inline |
|
inlineoverrideprotectedvirtual |
overridden function from DefaultParamHandler to keep members up to date, when a parameter is changed
Reimplemented from DefaultParamHandler.
References SignalToNoiseEstimatorMedian< Container >::auto_max_percentile_, SignalToNoiseEstimatorMedian< Container >::auto_max_stdev_Factor_, SignalToNoiseEstimatorMedian< Container >::auto_mode_, SignalToNoiseEstimatorMedian< Container >::bin_count_, Param::getValue(), SignalToNoiseEstimatorMedian< Container >::max_intensity_, SignalToNoiseEstimatorMedian< Container >::min_required_elements_, SignalToNoiseEstimatorMedian< Container >::noise_for_empty_window_, DefaultParamHandler::param_, SignalToNoiseEstimator< MSSpectrum >::stn_estimates_, ParamValue::toBool(), SignalToNoiseEstimatorMedian< Container >::win_len_, and SignalToNoiseEstimatorMedian< Container >::write_log_messages_.
Referenced by SignalToNoiseEstimatorMedian< Container >::operator=(), and SignalToNoiseEstimatorMedian< Container >::SignalToNoiseEstimatorMedian().
|
protected |
parameter for initial automatic estimation of "max_intensity_" percentile or a stdev
Referenced by SignalToNoiseEstimatorMedian< Container >::computeSTN_(), and SignalToNoiseEstimatorMedian< Container >::updateMembers_().
|
protected |
parameter for initial automatic estimation of "max_intensity_": a stdev multiplier
Referenced by SignalToNoiseEstimatorMedian< Container >::computeSTN_(), and SignalToNoiseEstimatorMedian< Container >::updateMembers_().
|
protected |
determines which method shall be used for estimating "max_intensity_". valid are MANUAL=-1, AUTOMAXBYSTDEV=0 or AUTOMAXBYPERCENT=1
Referenced by SignalToNoiseEstimatorMedian< Container >::computeSTN_(), and SignalToNoiseEstimatorMedian< Container >::updateMembers_().
|
protected |
number of bins in the histogram
Referenced by SignalToNoiseEstimatorMedian< Container >::computeSTN_(), and SignalToNoiseEstimatorMedian< Container >::updateMembers_().
|
protected |
|
protected |
maximal intensity considered during binning (values above get discarded)
Referenced by SignalToNoiseEstimatorMedian< Container >::computeSTN_(), and SignalToNoiseEstimatorMedian< Container >::updateMembers_().
|
protected |
minimal number of elements a window needs to cover to be used
Referenced by SignalToNoiseEstimatorMedian< Container >::computeSTN_(), and SignalToNoiseEstimatorMedian< Container >::updateMembers_().
|
protected |
used as noise value for windows which cover less than "min_required_elements_" use a very high value if you want to get a low S/N result
Referenced by SignalToNoiseEstimatorMedian< Container >::computeSTN_(), and SignalToNoiseEstimatorMedian< Container >::updateMembers_().
|
protected |
|
protected |
range of data points which belong to a window in Thomson
Referenced by SignalToNoiseEstimatorMedian< Container >::computeSTN_(), and SignalToNoiseEstimatorMedian< Container >::updateMembers_().
|
protected |