OpenMS
MapAlignmentAlgorithmPoseClustering Class Reference

A map alignment algorithm based on pose clustering. More...

#include <OpenMS/ANALYSIS/MAPMATCHING/MapAlignmentAlgorithmPoseClustering.h>

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

Public Member Functions

 MapAlignmentAlgorithmPoseClustering ()
 Default constructor. More...
 
 ~MapAlignmentAlgorithmPoseClustering () override
 Destructor. More...
 
void align (const FeatureMap &map, TransformationDescription &trafo)
 
void align (const PeakMap &map, TransformationDescription &trafo)
 
void align (const ConsensusMap &map, TransformationDescription &trafo)
 
template<typename MapType >
void setReference (const MapType &map)
 Sets the reference for the alignment. 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...
 
- 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 setLogger (ProgressLoggerImpl *logger)
 Sets the logger to be used for progress logging. 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...
 

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

PoseClusteringAffineSuperimposer superimposer_
 
StablePairFinder pairfinder_
 
ConsensusMap reference_
 
Int max_num_peaks_considered_
 
- 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...
 
- Protected Attributes inherited from ProgressLogger
LogType type_
 
time_t last_invoke_
 
ProgressLoggerImplcurrent_logger_
 

Private Member Functions

 MapAlignmentAlgorithmPoseClustering (const MapAlignmentAlgorithmPoseClustering &)
 Copy constructor intentionally not implemented -> private. More...
 
MapAlignmentAlgorithmPoseClusteringoperator= (const MapAlignmentAlgorithmPoseClustering &)
 Assignment operator intentionally not implemented -> private. 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 Attributes inherited from ProgressLogger
static int recursion_depth_
 

Detailed Description

A map alignment algorithm based on pose clustering.

Pose clustering analyzes pair distances to find the most probable transformation of retention times.

The algorithm chooses the x most intensity peaks/features per map. This is modeled via the parameter 'max_num_peaks_considered', which in turn influences the runtime and stability of the results. Bigger values prolong computation, smaller values might lead to no or unstable trafos. Set to -1 to use all features (might take very long for large maps).

For further details see:
Eva Lange et al.
A Geometric Approach for the Alignment of Liquid Chromatography-Mass Spectrometry Data
ISMB/ECCB 2007

Parameters of this class are:

NameTypeDefaultRestrictionsDescription
max_num_peaks_considered int1000 min: -1The maximal number of peaks/features to be considered per map. To use all, set to '-1'.
superimposer:mz_pair_max_distance float0.5 min: 0.0Maximum of m/z deviation of corresponding elements in different maps. This condition applies to the pairs considered in hashing.
superimposer:rt_pair_distance_fraction float0.1 min: 0.0 max: 1.0Within each of the two maps, the pairs considered for pose clustering must be separated by at least this fraction of the total elution time interval (i.e., max - min).
superimposer:num_used_points int2000 min: -1Maximum number of elements considered in each map (selected by intensity). Use this to reduce the running time and to disregard weak signals during alignment. For using all points, set this to -1.
superimposer:scaling_bucket_size float5.0e-03 min: 0.0The scaling of the retention time interval is being hashed into buckets of this size during pose clustering. A good choice for this would be a bit smaller than the error you would expect from repeated runs.
superimposer:shift_bucket_size float3.0 min: 0.0The shift at the lower (respectively, higher) end of the retention time interval is being hashed into buckets of this size during pose clustering. A good choice for this would be about the time between consecutive MS scans.
superimposer:max_shift float1000.0 min: 0.0Maximal shift which is considered during histogramming (in seconds). This applies for both directions.
superimposer:max_scaling float2.0 min: 1.0Maximal scaling which is considered during histogramming. The minimal scaling is the reciprocal of this.
superimposer:dump_buckets string  [DEBUG] If non-empty, base filename where hash table buckets will be dumped to. A serial number for each invocation will be appended automatically.
superimposer:dump_pairs string  [DEBUG] If non-empty, base filename where the individual hashed pairs will be dumped to (large!). A serial number for each invocation will be appended automatically.
pairfinder:second_nearest_gap float2.0 min: 1.0Only link features whose distance to the second nearest neighbors (for both sides) is larger by 'second_nearest_gap' than the distance between the matched pair itself.
pairfinder:use_identifications stringfalse true, falseNever link features that are annotated with different peptides (features without ID's always match; only the best hit per peptide identification is considered).
pairfinder:ignore_charge stringfalse true, falsefalse [default]: pairing requires equal charge state (or at least one unknown charge '0'); true: Pairing irrespective of charge state
pairfinder:ignore_adduct stringtrue true, falsetrue [default]: pairing requires equal adducts (or at least one without adduct annotation); true: Pairing irrespective of adducts
pairfinder:distance_RT:max_difference float100.0 min: 0.0Never pair features with a larger RT distance (in seconds).
pairfinder:distance_RT:exponent float1.0 min: 0.0Normalized RT differences ([0-1], relative to 'max_difference') are raised to this power (using 1 or 2 will be fast, everything else is REALLY slow)
pairfinder:distance_RT:weight float1.0 min: 0.0Final RT distances are weighted by this factor
pairfinder:distance_MZ:max_difference float0.3 min: 0.0Never pair features with larger m/z distance (unit defined by 'unit')
pairfinder:distance_MZ:unit stringDa Da, ppmUnit of the 'max_difference' parameter
pairfinder:distance_MZ:exponent float2.0 min: 0.0Normalized ([0-1], relative to 'max_difference') m/z differences are raised to this power (using 1 or 2 will be fast, everything else is REALLY slow)
pairfinder:distance_MZ:weight float1.0 min: 0.0Final m/z distances are weighted by this factor
pairfinder:distance_intensity:exponent float1.0 min: 0.0Differences in relative intensity ([0-1]) are raised to this power (using 1 or 2 will be fast, everything else is REALLY slow)
pairfinder:distance_intensity:weight float0.0 min: 0.0Final intensity distances are weighted by this factor
pairfinder:distance_intensity:log_transform stringdisabled enabled, disabledLog-transform intensities? If disabled, d = |int_f2 - int_f1| / int_max. If enabled, d = |log(int_f2 + 1) - log(int_f1 + 1)| / log(int_max + 1))

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

Constructor & Destructor Documentation

◆ MapAlignmentAlgorithmPoseClustering() [1/2]

Default constructor.

◆ ~MapAlignmentAlgorithmPoseClustering()

Destructor.

◆ MapAlignmentAlgorithmPoseClustering() [2/2]

Copy constructor intentionally not implemented -> private.

Member Function Documentation

◆ align() [1/3]

void align ( const ConsensusMap map,
TransformationDescription trafo 
)

◆ align() [2/3]

void align ( const FeatureMap map,
TransformationDescription trafo 
)

◆ align() [3/3]

void align ( const PeakMap map,
TransformationDescription trafo 
)

◆ operator=()

Assignment operator intentionally not implemented -> private.

◆ setReference()

void setReference ( const MapType map)
inline

Sets the reference for the alignment.

References MapConversion::convert().

◆ 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

◆ max_num_peaks_considered_

Int max_num_peaks_considered_
protected

◆ pairfinder_

StablePairFinder pairfinder_
protected

◆ reference_

ConsensusMap reference_
protected

◆ superimposer_

PoseClusteringAffineSuperimposer superimposer_
protected