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

SimpleExtender< PeakType, FeatureType > Class Template Reference
[FeatureFinder]

Simple feature extension algorithm. More...

#include <OpenMS/TRANSFORMATIONS/FEATUREFINDER/SimpleExtender.h>

Inheritance diagram for SimpleExtender< PeakType, FeatureType >:
FeaFiModule< PeakType, FeatureType > FeatureFinderDefs DefaultParamHandler

List of all members.

Classes

struct  IndexWithPriority
 A helper structure to sort indizes by their priority. More...

Public Types

typedef FeaFiModule< PeakType,
FeatureType > 
Base
typedef Base::IntensityType IntensityType
 Intensity of a data point.
typedef Base::CoordinateType CoordinateType
 Coordinates of a point (m/z and rt).
typedef DoubleReal ProbabilityType
 Priority of a point (see below).

Public Member Functions

 SimpleExtender (const MSExperiment< PeakType > *map, FeatureMap< FeatureType > *features, FeatureFinder *ff)
 Constructor.
virtual ~SimpleExtender ()
 destructor
void extend (const ChargedIndexSet &seed_region, ChargedIndexSet &result_region)
 return next seed

Protected Member Functions

virtual void updateMembers_ ()
void writeDebugFile_ (const std::vector< IndexPair > &peaks, UInt nr_feat)
 write DTA2D debug file for the feature with index nr_feat
bool isTooFarFromCentroid_ (const IndexPair &index)
 Checks if the current peak is too far from the centroid.
void moveMzUp_ (const IndexPair &index)
 Extends the seed into positive m/z direction.
void moveMzDown_ (const IndexPair &index)
 Extends the seed into negative m/z direction.
void moveRtUp_ (const IndexPair &index)
 Extension into positive rt dimension.
void moveRtDown_ (const IndexPair &index)
 Extends the seed into negative retention time direction.
ProbabilityType computePeakPriority_ (const IndexPair &index)
 Computes the priority of a peak as function of intensity and distance from seed.
void checkNeighbour_ (const IndexPair &index)
 Checks the neighbours of the current for insertion into the boundary.

Protected Attributes

Math::AveragePosition< 2 > running_avg_
 keeps an running average of the peak coordinates weighted by the intensities
std::map< IndexPair,
ProbabilityType
priorities_
 Keeps track of peaks already included in the boundary (value is priority of peak).
DPosition< 2 > last_pos_extracted_
 Position of last peak extracted from the boundary (used to compute the priority of neighbouring peaks).
std::priority_queue
< IndexWithPriority,
std::vector< IndexWithPriority >
, typename
IndexWithPriority::PriorityLess
boundary_
 Represents the boundary of a feature.
IntensityType intensity_threshold_
 Mininum intensity of a boundary point. Calculated from 'intensity_factor' and the seed intensity.
CoordinateType dist_mz_up_
 Maximum distance to seed in positive m/z.
CoordinateType dist_mz_down_
 Maximum distance to seed in negative m/z.
CoordinateType dist_rt_up_
 Maximum distance to seed in positive retention time.
CoordinateType dist_rt_down_
 Maximum distance to seed in negative retention time.
ProbabilityType priority_threshold_
 Minium priority for points in the feature region (priority is function of intensity and distance to seed).
ChargedIndexSet region_
 charged index set

Private Member Functions

 SimpleExtender ()
 Not implemented.
SimpleExtenderoperator= (const SimpleExtender &)
 Not implemented.
 SimpleExtender (const SimpleExtender &)
 Not implemented.

Detailed Description

template<class PeakType, class FeatureType>
class OpenMS::SimpleExtender< PeakType, FeatureType >

Simple feature extension algorithm.

This algorithm implements the extension phase of the FeatureFinder as described by Groepl et al. (2005)

We want to determine a region around a seed that is provided by the seeder. Initially, this region is empty. The boundary of this region is implemented using a MutablePriorityQueue which contains only the seed at the beginning.

At each step, we choose a data point from the boundary, move it into the region and explore the neigbourhood of this point in a cross-wise manner (m/z up, m/z down, rt up and rt down). During this exploration we compute the priority of all encountered points as a function of the distance from the extracted point. If this priority exceeds a threshold, we insert the corresponding point into the boundary and proceed.

We stop the extension phase if all peaks contained in the boundary have an intensity lower than a threshold or are too distant from the centroid of the feature.

SimpleExtender.png
Parameters of this class are:

NameTypeDefaultRestrictionsDescription
dist_mz_up float6 min: 0Maximum high m/z distance of peak in the region/boundary from the seed.
dist_mz_down float2 min: 0Maximum low m/z distance of peak in the region/boundary from the seed.
dist_rt_up float5 min: 0Maximum high RT distance of peak in the region/boundary from the seed.
dist_rt_down float5 min: 0Maximum low RT distance of peak in the region/boundary from the seed.
priority_thr float-0.1  Minimum priority for data points to be included into the boundary of the feature (default 0.0). The priority of a data point is a function of its intensity and its distance to the last point included into the feature region. Setting this threshold to zero or a very small value is usually a good idea.
intensity_factor float0.03 min: 0 max: 1Influences for intensity (ion count) threshold in the feature extension. We include only raw data points into this region if their intensity is larger than [intensity_factor * (intensity of the seed)].

Note:

Member Typedef Documentation

typedef FeaFiModule<PeakType, FeatureType> Base

Coordinates of a point (m/z and rt).

Intensity of a data point.

Priority of a point (see below).


Constructor & Destructor Documentation

virtual ~SimpleExtender (  )  [inline, virtual]

destructor

SimpleExtender (  )  [private]

Not implemented.

SimpleExtender ( const SimpleExtender< PeakType, FeatureType > &   )  [private]

Not implemented.


Member Function Documentation

ProbabilityType computePeakPriority_ ( const IndexPair index  )  [inline, protected]

Computes the priority of a peak as function of intensity and distance from seed.

References FeaFiModule< PeakType, FeatureType >::map_.

Referenced by SimpleExtender< PeakType, FeatureType >::checkNeighbour_(), and SimpleExtender< PeakType, FeatureType >::extend().

void moveRtDown_ ( const IndexPair index  )  [inline, protected]
SimpleExtender& operator= ( const SimpleExtender< PeakType, FeatureType > &   )  [private]

Not implemented.

void writeDebugFile_ ( const std::vector< IndexPair > &  peaks,
UInt  nr_feat 
) [inline, protected]

Member Data Documentation

std::priority_queue<IndexWithPriority, std::vector<IndexWithPriority>, typename IndexWithPriority::PriorityLess> boundary_ [protected]

Mininum intensity of a boundary point. Calculated from 'intensity_factor' and the seed intensity.

Referenced by SimpleExtender< PeakType, FeatureType >::checkNeighbour_(), and SimpleExtender< PeakType, FeatureType >::extend().

Position of last peak extracted from the boundary (used to compute the priority of neighbouring peaks).

Referenced by SimpleExtender< PeakType, FeatureType >::extend().

std::map<IndexPair, ProbabilityType> priorities_ [protected]

Keeps track of peaks already included in the boundary (value is priority of peak).

Referenced by SimpleExtender< PeakType, FeatureType >::checkNeighbour_(), and SimpleExtender< PeakType, FeatureType >::extend().

Minium priority for points in the feature region (priority is function of intensity and distance to seed).

Referenced by SimpleExtender< PeakType, FeatureType >::checkNeighbour_(), and SimpleExtender< PeakType, FeatureType >::updateMembers_().

ChargedIndexSet region_ [protected]

charged index set

keeps an running average of the peak coordinates weighted by the intensities

Referenced by SimpleExtender< PeakType, FeatureType >::extend(), and SimpleExtender< PeakType, FeatureType >::isTooFarFromCentroid_().


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