OpenMS  2.5.0
Public Member Functions | Static Public Member Functions | List of all members
PoseClusteringAffineSuperimposer Class Reference

A superimposer that uses a voting scheme, also known as pose clustering, to find a good affine transformation. More...

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

Inheritance diagram for PoseClusteringAffineSuperimposer:
BaseSuperimposer DefaultParamHandler ProgressLogger

Public Member Functions

 PoseClusteringAffineSuperimposer ()
 Default ctor. More...
 
 ~PoseClusteringAffineSuperimposer () override
 Destructor. More...
 
void run (const ConsensusMap &map_model, const ConsensusMap &map_scene, TransformationDescription &transformation) override
 Estimates the transformation and fills the given mapping function. (Has a precondition!) More...
 
virtual void run (const std::vector< Peak2D > &map_model, const std::vector< Peak2D > &map_scene, TransformationDescription &transformation)
 Perform alignment on vector of 1D peaks. More...
 
- Public Member Functions inherited from BaseSuperimposer
 BaseSuperimposer ()
 Constructor. More...
 
 ~BaseSuperimposer () override
 Destructor. 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...
 
virtual 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...
 
 ~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 () const
 Ends the progress display. More...
 
void nextProgress () const
 increment progress by 1 (according to range begin-end) More...
 

Static Public Member Functions

static BaseSuperimposercreate ()
 Returns an instance of this class. More...
 
static const String getProductName ()
 Returns the name of this module. More...
 
- Static Public Member Functions inherited from BaseSuperimposer
static void registerChildren ()
 Register all derived classes here. More...
 

Additional Inherited Members

- Public Types inherited from ProgressLogger
enum  LogType { CMD, GUI, NONE }
 Possible log types. More...
 
- Protected Member Functions inherited from DefaultParamHandler
virtual void updateMembers_ ()
 This method is used to update extra member variables at the end of the setParameters() method. More...
 
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 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_
 
- Static Protected Attributes inherited from ProgressLogger
static int recursion_depth_
 

Detailed Description

A superimposer that uses a voting scheme, also known as pose clustering, to find a good affine transformation.

This algorithm works on two consensus maps. It computes an affine transformation that maps the elements of second map as near as possible to the elements in the first map.

The voting scheme hashes affine transformations between pairs of features in map one and pairs of features in map two. Each such pair of pairs defines a (potential) "pose" of the second map relative to the first. Then it finds a cluster in the parameter space of these poses. The affine transformation is then computed from this cluster of potential poses, hence the name pose clustering.

See also
PoseClusteringShiftSuperimposer
Parameters of this class are:

NameTypeDefaultRestrictionsDescription
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.
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).
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.
scaling_bucket_size float0.005 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.
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.
max_shift float1000.0 min: 0.0Maximal shift which is considered during histogramming (in seconds). This applies for both directions.
max_scaling float2.0 min: 1.0Maximal scaling which is considered during histogramming. The minimal scaling is the reciprocal of this.
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.
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.

Note:

Constructor & Destructor Documentation

◆ PoseClusteringAffineSuperimposer()

Default ctor.

◆ ~PoseClusteringAffineSuperimposer()

~PoseClusteringAffineSuperimposer ( )
inlineoverride

Destructor.

Member Function Documentation

◆ create()

static BaseSuperimposer* create ( )
inlinestatic

Returns an instance of this class.

◆ getProductName()

static const String getProductName ( )
inlinestatic

Returns the name of this module.

◆ run() [1/2]

void run ( const ConsensusMap map_model,
const ConsensusMap map_scene,
TransformationDescription transformation 
)
overridevirtual

Estimates the transformation and fills the given mapping function. (Has a precondition!)

Note
Exactly two input maps must be given.
Precondition
For performance reasons, we trust that (the equivalent of:)

maps[0].updateRanges(); maps[1].updateRanges();

has been done before calling this. You have been warned!

Parameters
map_modelThe model map (first input map)
map_sceneThe scene map (second input map)
transformationThe output affine transformation (linear model transforming the scene map onto the model map)
Exceptions
IllegalArgumentis thrown if the input maps are invalid.

Implements BaseSuperimposer.

◆ run() [2/2]

virtual void run ( const std::vector< Peak2D > &  map_model,
const std::vector< Peak2D > &  map_scene,
TransformationDescription transformation 
)
virtual

Perform alignment on vector of 1D peaks.