OpenMS
FeatureDeconvolution Class Reference

An algorithm to decharge features (i.e. as found by FeatureFinder). More...

#include <OpenMS/ANALYSIS/DECHARGING/FeatureDeconvolution.h>

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

Public Types

enum  CHARGEMODE { QFROMFEATURE = 1 , QHEURISTIC , QALL }
 
typedef DPosition< 2 > ClusterPointType
 
typedef Feature::CoordinateType CoordinateType
 
typedef ILPDCWrapper::PairsType PairsType
 

Constructors and Destructor s

MassExplainer::AdductsType potential_adducts_
 List of adducts used to explain mass differences. More...
 
std::map< Size, Stringmap_label_
 labeling table More...
 
std::map< String, Sizemap_label_inverse_
 labeling table inverse More...
 
bool enable_intensity_filter_
 status of intensity filter for edges More...
 
CHARGEMODE q_try_
 status of charge discovery More...
 
Int verbose_level_
 amount of debug information displayed More...
 
 FeatureDeconvolution ()
 default constructor More...
 
 FeatureDeconvolution (const FeatureDeconvolution &source)
 Copy constructor. More...
 
FeatureDeconvolutionoperator= (const FeatureDeconvolution &source)
 Assignment operator. More...
 
 ~FeatureDeconvolution () override
 destructor More...
 
void compute (const FeatureMap &fm_in, FeatureMap &fm_out, ConsensusMap &cons_map, ConsensusMap &cons_map_p)
 Compute a zero-charge feature map from a set of charged features. More...
 
void updateMembers_ () override
 This method is used to update extra member variables at the end of the setParameters() method. More...
 
void checkSolution_ (const ConsensusMap &cons_map) const
 
void inferMoreEdges_ (PairsType &edges, std::map< Size, std::set< CmpInfo_ > > &feature_adducts)
 
void printEdgesOfConnectedFeatures_ (Size idx_1, Size idx_2, const PairsType &feature_relation)
 A function mostly for debugging. More...
 
bool intensityFilterPassed_ (const Int q1, const Int q2, const Compomer &cmp, const Feature &f1, const Feature &f2) const
 returns true if the intensity filter was passed or switched off More...
 
bool chargeTestworthy_ (const Int feature_charge, const Int putative_charge, const bool other_unchanged) const
 determines if we should test a putative feature charge More...
 

Additional Inherited Members

- 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...
 
- 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 DefaultParamHandler
void defaultsToParam_ ()
 Updates the parameters after the defaults have been set in the constructor. 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< 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...
 

Detailed Description

An algorithm to decharge features (i.e. as found by FeatureFinder).

Parameters of this class are:

NameTypeDefaultRestrictionsDescription
charge_min int1  Minimal possible charge
charge_max int10  Maximal possible charge
charge_span_max int4 min: 1Maximal range of charges for a single analyte, i.e. observing q1=[5,6,7] implies span=3. Setting this to 1 will only find adduct variants of the same charge
q_try stringfeature feature, heuristic, allTry different values of charge for each feature according to the above settings ('heuristic' [does not test all charges, just the likely ones] or 'all' ), or leave feature charge untouched ('feature').
retention_max_diff float1.0  Maximum allowed RT difference between any two features if their relation shall be determined
retention_max_diff_local float1.0  Maximum allowed RT difference between between two co-features, after adduct shifts have been accounted for (if you do not have any adduct shifts, this value should be equal to 'retention_max_diff', otherwise it should be smaller!)
mass_max_diff float0.5  Maximum allowed mass difference [in Th] for a single feature.
potential_adducts string list[K:+:0.1]  Adducts used to explain mass differences in format: 'Element:Charge(+/-):Probability[:RTShift[:Label]]', i.e. the number of '+' or '-' indicate the charge, e.g. 'Ca:++:0.5' indicates +2. Probabilites have to be in (0,1]. RTShift param is optional and indicates the expected RT shift caused by this adduct, e.g. '(2)H4H-4:0:1:-3' indicates a 4 deuterium label, which causes early elution by 3 seconds. As a fifth parameter you can add a label which is tagged on every feature which has this adduct. This also determines the map number in the consensus file.
max_neutrals int0  Maximal number of neutral adducts(q=0) allowed. Add them in the 'potential_adducts' section!
max_minority_bound int2 min: 0Maximum count of the least probable adduct (according to 'potential_adducts' param) within a charge variant. E.g. setting this to 2 will not allow an adduct composition of '1(H+),3(Na+)' if Na+ is the least probable adduct
min_rt_overlap float0.66 min: 0.0 max: 1.0Minimum overlap of the convex hull' RT intersection measured against the union from two features (if CHs are given)
intensity_filter stringfalse true, falseEnable the intensity filter, which will only allow edges between two equally charged features if the intensity of the feature with less likely adducts is smaller than that of the other feature. It is not used for features of different charge.
negative_mode stringfalse  Enable negative ionization mode.
default_map_label stringdecharged features  Label of map in output consensus file where all features are put by default
verbose_level int0 min: 0 max: 3Amount of debug information given during processing.

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

Member Typedef Documentation

◆ ClusterPointType

◆ CoordinateType

◆ PairsType

Member Enumeration Documentation

◆ CHARGEMODE

enum CHARGEMODE
Enumerator
QFROMFEATURE 
QHEURISTIC 
QALL 

Constructor & Destructor Documentation

◆ FeatureDeconvolution() [1/2]

default constructor

◆ FeatureDeconvolution() [2/2]

Copy constructor.

◆ ~FeatureDeconvolution()

~FeatureDeconvolution ( )
override

destructor

Member Function Documentation

◆ chargeTestworthy_()

bool chargeTestworthy_ ( const Int  feature_charge,
const Int  putative_charge,
const bool  other_unchanged 
) const
protected

determines if we should test a putative feature charge

Answer query given the internal status of q_try. Features with q<=0 always return true.

◆ checkSolution_()

void checkSolution_ ( const ConsensusMap cons_map) const
protected

◆ compute()

void compute ( const FeatureMap fm_in,
FeatureMap fm_out,
ConsensusMap cons_map,
ConsensusMap cons_map_p 
)

Compute a zero-charge feature map from a set of charged features.

Find putative ChargePairs, then score them and hand over to ILP.

Parameters
fm_inInput feature-map
fm_outOutput feature-map (sorted by position and augmented with user params)
cons_map[out] Output of grouped features belonging to a charge group
cons_map_p[out] Output of paired features connected by an edge

◆ inferMoreEdges_()

void inferMoreEdges_ ( PairsType edges,
std::map< Size, std::set< CmpInfo_ > > &  feature_adducts 
)
protected

test if "simple" edges have alternative (more difficult explanation) supported by neighboring edges e.g. (.) -> (H+) might be augmented to (Na+) -> (H+Na+)

◆ intensityFilterPassed_()

bool intensityFilterPassed_ ( const Int  q1,
const Int  q2,
const Compomer cmp,
const Feature f1,
const Feature f2 
) const
inlineprotected

returns true if the intensity filter was passed or switched off

Filter for adding an edge only when the two features connected by it, fulfill the intensity criterion.

◆ operator=()

FeatureDeconvolution& operator= ( const FeatureDeconvolution source)

Assignment operator.

◆ printEdgesOfConnectedFeatures_()

void printEdgesOfConnectedFeatures_ ( Size  idx_1,
Size  idx_2,
const PairsType feature_relation 
)
protected

A function mostly for debugging.

◆ 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

◆ enable_intensity_filter_

bool enable_intensity_filter_
protected

status of intensity filter for edges

◆ map_label_

std::map<Size, String> map_label_
protected

labeling table

◆ map_label_inverse_

std::map<String, Size> map_label_inverse_
protected

labeling table inverse

◆ potential_adducts_

MassExplainer::AdductsType potential_adducts_
protected

List of adducts used to explain mass differences.

◆ q_try_

CHARGEMODE q_try_
protected

status of charge discovery

◆ verbose_level_

Int verbose_level_
protected

amount of debug information displayed