OpenMS
TransformationDescription Class Reference

Generic description of a coordinate transformation. More...

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

Collaboration diagram for TransformationDescription:
[legend]

Classes

struct  TransformationStatistics
 Summary statistics before/after applying the transformation. For deviations before/after transformation, the percentiles 100, 99, 95, 90, 75, 50, 25 are returned. More...
 

Public Types

typedef TransformationModel::DataPoint DataPoint
 Coordinate pair. More...
 
typedef TransformationModel::DataPoints DataPoints
 Vector of coordinate pairs. More...
 

Public Member Functions

 TransformationDescription ()
 Default constructor. More...
 
 TransformationDescription (const DataPoints &data)
 Constructor from data. More...
 
 ~TransformationDescription ()
 Destructor. More...
 
 TransformationDescription (const TransformationDescription &rhs)
 Copy constructor. More...
 
TransformationDescriptionoperator= (const TransformationDescription &rhs)
 Assignment operator. More...
 
void fitModel (const String &model_type, const Param &params=Param())
 Fits a model to the data. More...
 
double apply (double value) const
 Applies the transformation to value. More...
 
const StringgetModelType () const
 Gets the type of the fitted model. More...
 
void setDataPoints (const DataPoints &data)
 Sets the data points. More...
 
void setDataPoints (const std::vector< std::pair< double, double > > &data)
 Sets the data points (backwards-compatible overload) More...
 
const DataPointsgetDataPoints () const
 Returns the data points. More...
 
const ParamgetModelParameters () const
 Non-mutable access to the model parameters. More...
 
void invert ()
 Computes an (approximate) inverse of the transformation. More...
 
void getDeviations (std::vector< double > &diffs, bool do_apply=false, bool do_sort=true) const
 Get the deviations between the data pairs. More...
 
TransformationStatistics getStatistics () const
 Get summary statistics (ranges and errors before/after) More...
 
void printSummary (std::ostream &os) const
 Print summary statistics for the transformation. More...
 

Static Public Member Functions

static void getModelTypes (StringList &result)
 Gets the possible types of models. More...
 

Protected Attributes

DataPoints data_
 Data points. More...
 
String model_type_
 Type of model. More...
 
TransformationModelmodel_
 Pointer to model. More...
 

Detailed Description

Generic description of a coordinate transformation.

This description primarily stores data points (coordinate pairs) from which a transformation model can be estimated. Applying the transformation to a coordinate (via apply) then means evaluating the model at that coordinate.

The following models are available:

  • none (TransformationModel): \( f(x) = x \) (identity)
  • identity: Same as none, but intended for reference files (used to indicate that no other model should be fit, because the identity is already optimal).
  • linear (TransformationModelLinear): \( f(x) = slope * x + intercept \)
  • interpolated (TransformationModelInterpolated): Interpolation between pairs, extrapolation using first and last pair. Supports different interpolation types.
  • b-spline (TransformationModelBSpline): Non-linear smoothing spline, with different options for extrapolation.
  • lowess (TransformationModelLowess): Non-linear smoothing via local regression, with different options for extrapolation.
Remarks
TransformationDescription stores data points, TransformationModel stores parameters. That way, data can be modeled using different models/parameters, and models can still keep a representation of the data in the format they need (if at all).

Member Typedef Documentation

◆ DataPoint

Coordinate pair.

◆ DataPoints

Vector of coordinate pairs.

Constructor & Destructor Documentation

◆ TransformationDescription() [1/3]

Default constructor.

◆ TransformationDescription() [2/3]

TransformationDescription ( const DataPoints data)
explicit

Constructor from data.

◆ ~TransformationDescription()

Destructor.

◆ TransformationDescription() [3/3]

Copy constructor.

Member Function Documentation

◆ apply()

double apply ( double  value) const

Applies the transformation to value.

Returns the result of evaluating the fitted model at value. Returns value unchanged if no model was fitted.

◆ fitModel()

void fitModel ( const String model_type,
const Param params = Param() 
)

Fits a model to the data.

Referenced by TOPPOpenSwathBase::performCalibration().

◆ getDataPoints()

const DataPoints& getDataPoints ( ) const

Returns the data points.

◆ getDeviations()

void getDeviations ( std::vector< double > &  diffs,
bool  do_apply = false,
bool  do_sort = true 
) const

Get the deviations between the data pairs.

Parameters
diffsOutput
do_applyGet deviations after applying the model?
do_sortSort diffs before returning?

◆ getModelParameters()

const Param& getModelParameters ( ) const

Non-mutable access to the model parameters.

◆ getModelType()

const String& getModelType ( ) const

Gets the type of the fitted model.

◆ getModelTypes()

static void getModelTypes ( StringList result)
static

Gets the possible types of models.

◆ getStatistics()

TransformationStatistics getStatistics ( ) const

Get summary statistics (ranges and errors before/after)

◆ invert()

void invert ( )

Computes an (approximate) inverse of the transformation.

Referenced by ChromatogramExtractor::extractChromatograms().

◆ operator=()

Assignment operator.

◆ printSummary()

void printSummary ( std::ostream &  os) const

Print summary statistics for the transformation.

◆ setDataPoints() [1/2]

void setDataPoints ( const DataPoints data)

Sets the data points.

Removes the model that was previously fitted to the data (if any).

◆ setDataPoints() [2/2]

void setDataPoints ( const std::vector< std::pair< double, double > > &  data)

Sets the data points (backwards-compatible overload)

Removes the model that was previously fitted to the data (if any).

Member Data Documentation

◆ data_

DataPoints data_
protected

Data points.

◆ model_

TransformationModel* model_
protected

Pointer to model.

◆ model_type_

String model_type_
protected

Type of model.