#include <OpenMS/TRANSFORMATIONS/FEATUREFINDER/SimpleExtender.h>
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 Parameters are explained on a separate page.
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_ () |
This method is used to update extra member variables at the end of the setParam() method. | |
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. | |
SimpleExtender & | operator= (const SimpleExtender &) |
Not implemented. | |
SimpleExtender (const SimpleExtender &) | |
Not implemented. | |
Classes | |
struct | IndexWithPriority |
A helper structure to sort indizes by their priority. More... |
typedef FeaFiModule<PeakType,FeatureType> Base |
typedef Base::IntensityType IntensityType |
typedef Base::CoordinateType CoordinateType |
typedef DoubleReal ProbabilityType |
Priority of a point (see below).
SimpleExtender | ( | const MSExperiment< PeakType > * | map, | |
FeatureMap< FeatureType > * | features, | |||
FeatureFinder * | ff | |||
) | [inline] |
Constructor.
virtual ~SimpleExtender | ( | ) | [inline, virtual] |
destructor
SimpleExtender | ( | ) | [private] |
Not implemented.
SimpleExtender | ( | const SimpleExtender< PeakType, FeatureType > & | ) | [private] |
Not implemented.
void extend | ( | const ChargedIndexSet & | seed_region, | |
ChargedIndexSet & | result_region | |||
) | [inline] |
return next seed
virtual void updateMembers_ | ( | ) | [inline, protected, virtual] |
This method is used to update extra member variables at the end of the setParam() method.
Also call it at the end of the derived classes' copy constructor and assignment operator.
The default implementation is empty.
Reimplemented from DefaultParamHandler.
write DTA2D debug file for the feature with index nr_feat
bool isTooFarFromCentroid_ | ( | const IndexPair & | index | ) | [inline, protected] |
Checks if the current peak is too far from the centroid.
void moveMzUp_ | ( | const IndexPair & | index | ) | [inline, protected] |
Extends the seed into positive m/z direction.
void moveMzDown_ | ( | const IndexPair & | index | ) | [inline, protected] |
Extends the seed into negative m/z direction.
void moveRtUp_ | ( | const IndexPair & | index | ) | [inline, protected] |
Extension into positive rt dimension.
void moveRtDown_ | ( | const IndexPair & | index | ) | [inline, protected] |
Extends the seed into negative retention time direction.
ProbabilityType computePeakPriority_ | ( | const IndexPair & | index | ) | [inline, protected] |
Computes the priority of a peak as function of intensity and distance from seed.
void checkNeighbour_ | ( | const IndexPair & | index | ) | [inline, protected] |
Checks the neighbours of the current for insertion into the boundary.
SimpleExtender& operator= | ( | const SimpleExtender< PeakType, FeatureType > & | ) | [private] |
Not implemented.
Math::AveragePosition<2> running_avg_ [protected] |
keeps an running average of the peak coordinates weighted by the intensities
std::map<IndexPair, ProbabilityType> priorities_ [protected] |
Keeps track of peaks already included in the boundary (value is priority of peak).
DPosition<2> last_pos_extracted_ [protected] |
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_ [protected] |
Represents the boundary of a feature.
IntensityType intensity_threshold_ [protected] |
Mininum intensity of a boundary point. Calculated from 'intensity_factor' and the seed intensity.
CoordinateType dist_mz_up_ [protected] |
Maximum distance to seed in positive m/z.
CoordinateType dist_mz_down_ [protected] |
Maximum distance to seed in negative m/z.
CoordinateType dist_rt_up_ [protected] |
Maximum distance to seed in positive retention time.
CoordinateType dist_rt_down_ [protected] |
Maximum distance to seed in negative retention time.
ProbabilityType priority_threshold_ [protected] |
Minium priority for points in the feature region (priority is function of intensity and distance to seed).
ChargedIndexSet region_ [protected] |
charged index set
Generated Tue Apr 1 15:36:47 2008 -- using doxygen 1.5.4 | OpenMS / TOPP 1.1 |