Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
Classes | Public Member Functions | Protected Member Functions | Protected Attributes

TwoDOptimization Class Reference

This class provides the two-dimensional optimization of the picked peak parameters. More...

#include <OpenMS/TRANSFORMATIONS/RAW2PEAK/TwoDOptimization.h>

Inheritance diagram for TwoDOptimization:
DefaultParamHandler

List of all members.

Classes

struct  Data
 Helper struct (contains the size of an area and a raw data container). More...

Public Member Functions

 TwoDOptimization ()
 Constructor.
 TwoDOptimization (const TwoDOptimization &opt)
 Copy constructor.
virtual ~TwoDOptimization ()
 Destructor.
TwoDOptimizationoperator= (const TwoDOptimization &opt)
 Assignment operator.
DoubleReal getMZTolerance () const
 Non-mutable access to the matching epsilon.
void setMZTolerance (DoubleReal tolerance_mz)
 Mutable access to the matching epsilon.
DoubleReal getMaxPeakDistance () const
 Non-mutable access to the maximal peak distance in a cluster.
void setMaxPeakDistance (DoubleReal max_peak_distance)
 Mutable access to the maximal peak distance in a cluster.
DoubleReal getMaxAbsError () const
 Non-mutable access to the maximal absolute error.
void setMaxAbsError (DoubleReal eps_abs)
 Mutable access to the maximal absolute error.
DoubleReal getMaxRelError () const
 Non-mutable access to the maximal relative error.
void setMaxRelError (DoubleReal eps_rel)
 Mutable access to the maximal relative error.
UInt getMaxIterations () const
 Non-mutable access to the maximal number of iterations.
void setMaxIterations (UInt max_iteration)
 Mutable access to the maximal number of iterations.
const
OptimizationFunctions::PenaltyFactorsIntensity
getPenalties () const
 Non-mutable access to the minimal number of adjacent scans.
void setPenalties (OptimizationFunctions::PenaltyFactorsIntensity &penalties)
 Mutable access to the minimal number of adjacent scans.
template<typename InputSpectrumIterator , typename OutputPeakType >
void optimize (InputSpectrumIterator first, InputSpectrumIterator last, MSExperiment< OutputPeakType > &ms_exp, bool real2D=true)
 Find two dimensional peak clusters and optimize their peak parameters.

Protected Member Functions

void updateMembers_ ()
 update members method from DefaultParamHandler to update the members
Auxiliary Functions for the search of matching regions

std::vector< DoubleReal >::iterator searchInScan_ (std::vector< DoubleReal >::iterator scan_begin, std::vector< DoubleReal >::iterator scan_end, DoubleReal current_mz)
template<typename InputSpectrumIterator , typename OutputPeakType >
void optimizeRegions_ (InputSpectrumIterator &first, InputSpectrumIterator &last, MSExperiment< OutputPeakType > &ms_exp)
template<typename InputSpectrumIterator , typename OutputPeakType >
void optimizeRegionsScanwise_ (InputSpectrumIterator &first, InputSpectrumIterator &last, MSExperiment< OutputPeakType > &ms_exp)
template<typename InputSpectrumIterator , typename OutputPeakType >
void getRegionEndpoints_ (MSExperiment< OutputPeakType > &exp, InputSpectrumIterator &first, InputSpectrumIterator &last, Size iso_map_idx, DoubleReal noise_level, TwoDOptimization::Data &d)
 Get the indices of the first and last raw data point of this region.
void findMatchingPeaks_ (std::multimap< DoubleReal, IsotopeCluster >::iterator &it, MSExperiment<> &ms_exp)
 Identify matching peak in a peak cluster.

Static Protected Member Functions

Functions provided to the gsl Levenberg-Marquardt

static Int residual2D_ (const gsl_vector *x, void *params, gsl_vector *f)
 Function computing estimated signal and its deviation to the experimental signal*/.
static Int jacobian2D_ (const gsl_vector *x, void *params, gsl_matrix *J)
 Function computing the Jacobian */.
static Int evaluate2D_ (const gsl_vector *x, void *params, gsl_vector *f, gsl_matrix *J)
 Function that calls residual2D and jacobian2D*/.

Protected Attributes

std::multimap< DoubleReal,
IsotopeCluster
iso_map_
 stores the retention time of each isotopic cluster
std::multimap< DoubleReal,
IsotopeCluster >
::const_iterator 
curr_region_
 Pointer to the current region.
DoubleReal max_peak_distance_
 upper bound for distance between two peaks belonging to the same region
DoubleReal tolerance_mz_
 threshold for the difference in the peak position of two matching peaks
std::map< Int, std::vector
< PeakIndex > > 
matching_peaks_
 Indices of peaks in the adjacent scans matching peaks in the scan with no. ref_scan.
DoubleReal eps_abs_
 Convergence Parameter: Maximal absolute error.
DoubleReal eps_rel_
 Convergence Parameter: Maximal relative error.
UInt max_iteration_
 Convergence Parameter: Maximal number of iterations.
bool real_2D_
 Optimization considering all scans of a cluster or optimization of each scan separately.
OptimizationFunctions::PenaltyFactorsIntensity penalties_
 Penalty factors for some parameters in the optimization.

Detailed Description

This class provides the two-dimensional optimization of the picked peak parameters.

Given the picked peaks, this class optimizes the peak parameters of each isotope pattern using a non-linear optimization. The peaks of adjacent scans are adjusted to achieve that a peak occuring in several scans has always the same m/z position. For the optimization the Levenberg-Marquardt algorithm provided from the GSL is used. The optimized parameters are the m/z values, the left and right width, which shall be equal for a peak in all scans, and the peaks' heights.

Todo:
Works only with defined types due to pointers to the data in the optimization namespace! Change that or remove templates (Alexandra)
Parameters of this class are:

NameTypeDefaultRestrictionsDescription
delta_abs_error float9.99999974737875e-06  if the absolute error gets smaller than this value the fitting is stopped.
delta_rel_error float9.99999974737875e-06  if the relative error gets smaller than this value the fitting is stopped.
iterations int10  maximal number of iterations for the fitting step
penalties:position float0  If the position changes more than 0.2Da during the fitting it can be penalized
penalties:height float1  penalty term for the fitting of the intensity:If it gets negative during the fitting it can be penalized.
penalties:left_width float0  penalty term for the fitting of the left width:If the left width gets too broad or negative during the fitting it can be penalized.
penalties:right_width float0  penalty term for the fitting of the right width:If the right width gets too broad or negative during the fitting it can be penalized.
2d:tolerance_mz float2.2  mz tolerance for cluster construction
2d:max_peak_distance float1.2  maximal peak distance in mz in a cluster

Note:

Constructor & Destructor Documentation

Constructor.

TwoDOptimization ( const TwoDOptimization opt  ) 

Copy constructor.

virtual ~TwoDOptimization (  )  [inline, virtual]

Destructor.


Member Function Documentation

static Int evaluate2D_ ( const gsl_vector *  x,
void *  params,
gsl_vector *  f,
gsl_matrix *  J 
) [static, protected]

Function that calls residual2D and jacobian2D*/.

void findMatchingPeaks_ ( std::multimap< DoubleReal, IsotopeCluster >::iterator &  it,
MSExperiment<> &  ms_exp 
) [protected]

Identify matching peak in a peak cluster.

Referenced by TwoDOptimization::optimizeRegions_().

DoubleReal getMaxAbsError (  )  const [inline]

Non-mutable access to the maximal absolute error.

UInt getMaxIterations (  )  const [inline]

Non-mutable access to the maximal number of iterations.

DoubleReal getMaxPeakDistance (  )  const [inline]

Non-mutable access to the maximal peak distance in a cluster.

DoubleReal getMaxRelError (  )  const [inline]

Non-mutable access to the maximal relative error.

DoubleReal getMZTolerance (  )  const [inline]

Non-mutable access to the matching epsilon.

const OptimizationFunctions::PenaltyFactorsIntensity& getPenalties (  )  const [inline]

Non-mutable access to the minimal number of adjacent scans.

void getRegionEndpoints_ ( MSExperiment< OutputPeakType > &  exp,
InputSpectrumIterator &  first,
InputSpectrumIterator &  last,
Size  iso_map_idx,
DoubleReal  noise_level,
TwoDOptimization::Data d 
) [protected]
static Int jacobian2D_ ( const gsl_vector *  x,
void *  params,
gsl_matrix *  J 
) [static, protected]

Function computing the Jacobian */.

TwoDOptimization& operator= ( const TwoDOptimization opt  ) 

Assignment operator.

void optimize ( InputSpectrumIterator  first,
InputSpectrumIterator  last,
MSExperiment< OutputPeakType > &  ms_exp,
bool  real2D = true 
)

Find two dimensional peak clusters and optimize their peak parameters.

Note:
For the peak spectra, the following meta data arrays (see MSSpectrum) have to be present and have to be named just as listed here:
  • intensity (index:1)
  • leftWidth (index:3)
  • rightWidth (index:4)
  • peakShape (index:5)
Parameters:
first begin of the raw data spectra iterator range
last end of the raw data spectra interator range
ms_exp peak map corresponding to the raw data in the range from first to last
real2D flag if the optimization should be two dimensional or on each scan separately
Exceptions:
Exception::IllegalArgument is thrown if required meta information from peak picking is missing (area, shape, left width, right width) or if the input data is invalid in some other way

References TwoDOptimization::curr_region_, Param::getValue(), TwoDOptimization::iso_map_, TwoDOptimization::max_peak_distance_, TwoDOptimization::optimizeRegions_(), TwoDOptimization::optimizeRegionsScanwise_(), DefaultParamHandler::param_, IsotopeCluster::peaks, TwoDOptimization::real_2D_, IsotopeCluster::scans, TwoDOptimization::searchInScan_(), and MSSpectrum< PeakT >::setRT().

static Int residual2D_ ( const gsl_vector *  x,
void *  params,
gsl_vector *  f 
) [static, protected]

Function computing estimated signal and its deviation to the experimental signal*/.

std::vector<DoubleReal>::iterator searchInScan_ ( std::vector< DoubleReal >::iterator  scan_begin,
std::vector< DoubleReal >::iterator  scan_end,
DoubleReal  current_mz 
) [protected]
void setMaxAbsError ( DoubleReal  eps_abs  )  [inline]

Mutable access to the maximal absolute error.

void setMaxIterations ( UInt  max_iteration  )  [inline]

Mutable access to the maximal number of iterations.

void setMaxPeakDistance ( DoubleReal  max_peak_distance  )  [inline]

Mutable access to the maximal peak distance in a cluster.

void setMaxRelError ( DoubleReal  eps_rel  )  [inline]

Mutable access to the maximal relative error.

void setMZTolerance ( DoubleReal  tolerance_mz  )  [inline]

Mutable access to the matching epsilon.

void setPenalties ( OptimizationFunctions::PenaltyFactorsIntensity penalties  )  [inline]

Mutable access to the minimal number of adjacent scans.

References PenaltyFactorsIntensity::height, PenaltyFactors::lWidth, PenaltyFactors::pos, and PenaltyFactors::rWidth.

void updateMembers_ (  )  [protected, virtual]

update members method from DefaultParamHandler to update the members

Reimplemented from DefaultParamHandler.


Member Data Documentation

std::multimap<DoubleReal, IsotopeCluster>::const_iterator curr_region_ [protected]

Pointer to the current region.

Referenced by TwoDOptimization::optimize().

DoubleReal eps_abs_ [protected]

Convergence Parameter: Maximal absolute error.

Referenced by TwoDOptimization::optimizeRegions_().

DoubleReal eps_rel_ [protected]

Convergence Parameter: Maximal relative error.

Referenced by TwoDOptimization::optimizeRegions_().

std::map<Int, std::vector<PeakIndex> > matching_peaks_ [protected]

Indices of peaks in the adjacent scans matching peaks in the scan with no. ref_scan.

Referenced by TwoDOptimization::optimizeRegions_().

UInt max_iteration_ [protected]

Convergence Parameter: Maximal number of iterations.

Referenced by TwoDOptimization::optimizeRegions_().

upper bound for distance between two peaks belonging to the same region

Referenced by TwoDOptimization::optimize().

Penalty factors for some parameters in the optimization.

Referenced by TwoDOptimization::optimizeRegions_().

bool real_2D_ [protected]

Optimization considering all scans of a cluster or optimization of each scan separately.

Referenced by TwoDOptimization::optimize().

threshold for the difference in the peak position of two matching peaks


OpenMS / TOPP release 1.10.0 Documentation generated on Thu Mar 7 2013 09:42:57 using doxygen 1.7.1