The MRMTransitionGroupPicker finds peaks in chromatograms that belong to the same precursors. More...
#include <OpenMS/ANALYSIS/OPENSWATH/MRMTransitionGroupPicker.h>
Public Member Functions | |
template<typename SpectrumT , typename TransitionT > | |
void | pickTransitionGroup (MRMTransitionGroup< SpectrumT, TransitionT > &transition_group) |
Pick a group of chromatograms belonging to the same peptide. More... | |
template<typename SpectrumT , typename TransitionT > | |
MRMFeature | createMRMFeature (MRMTransitionGroup< SpectrumT, TransitionT > &transition_group, std::vector< SpectrumT > &picked_chroms, const int chr_idx, const int peak_idx) |
Create feature from a vector of chromatograms and a specified peak. More... | |
template<typename SpectrumT > | |
void | remove_overlapping_features (std::vector< SpectrumT > &picked_chroms, double best_left, double best_right) |
Remove overlapping features. More... | |
void | findLargestPeak (std::vector< MSChromatogram > &picked_chroms, int &chr_idx, int &peak_idx) |
Find largest peak in a vector of chromatograms. More... | |
MRMTransitionGroupPicker () | |
Constructor. More... | |
~MRMTransitionGroupPicker () | |
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 DefaultParamHandler & | operator= (const DefaultParamHandler &rhs) |
Assignment operator. More... | |
virtual bool | operator== (const DefaultParamHandler &rhs) const |
Equality operator. More... | |
void | setParameters (const Param ¶m) |
Sets the parameters. More... | |
const Param & | getParameters () const |
Non-mutable access to the parameters. More... | |
const Param & | getDefaults () const |
Non-mutable access to the default parameters. More... | |
const String & | getName () 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... | |
Protected Member Functions | |
void | updateMembers_ () |
Synchronize members with param class. More... | |
MRMTransitionGroupPicker & | operator= (const MRMTransitionGroupPicker &rhs) |
Assignment operator is protected for algorithm. More... | |
template<typename SpectrumT , typename TransitionT > | |
const SpectrumT & | selectChromHelper_ (MRMTransitionGroup< SpectrumT, TransitionT > &transition_group, String native_id) |
Select matching precursor or fragment ion chromatogram. More... | |
template<typename SpectrumT , typename TransitionT > | |
double | computeQuality_ (MRMTransitionGroup< SpectrumT, TransitionT > &transition_group, std::vector< SpectrumT > &picked_chroms, const int chr_idx, const double best_left, const double best_right, String &outlier) |
Compute transition group quality (higher score is better) More... | |
template<typename SpectrumT > | |
void | recalculatePeakBorders_ (std::vector< SpectrumT > &picked_chroms, double &best_left, double &best_right, double max_z) |
Recalculate the borders of the peak. More... | |
void | calculateBgEstimation_ (const MSChromatogram &chromatogram, double best_left, double best_right, double &background, double &avg_noise_level) |
Will use the chromatogram to estimate the background noise and then subtract it. More... | |
Resampling methods | |
template<typename SpectrumT > | |
void | prepareMasterContainer_ (const SpectrumT &ref_chromatogram, SpectrumT &master_peak_container, double left_boundary, double right_boundary) |
Create an empty master peak container that has the correct mz / RT values set. More... | |
template<typename SpectrumT > | |
SpectrumT | resampleChromatogram_ (const SpectrumT &chromatogram, const SpectrumT &master_peak_container, double left_boundary, double right_boundary) |
Resample a container at the positions indicated by the master peak container. More... | |
Protected Member Functions inherited from DefaultParamHandler | |
void | defaultsToParam_ () |
Updates the parameters after the defaults have been set in the constructor. More... | |
Protected Attributes | |
String | background_subtraction_ |
bool | recalculate_peaks_ |
bool | use_precursors_ |
bool | compute_peak_quality_ |
double | min_qual_ |
int | stop_after_feature_ |
double | stop_after_intensity_ratio_ |
double | min_peak_width_ |
double | recalculate_peaks_max_z_ |
double | resample_boundary_ |
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< String > | subsections_ |
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... | |
The MRMTransitionGroupPicker finds peaks in chromatograms that belong to the same precursors.
Parameters of this class are:Name | Type | Default | Restrictions | Description |
---|---|---|---|---|
stop_after_feature | int | -1 | Stop finding after feature (ordered by intensity; -1 means do not stop). | |
stop_after_intensity_ratio | float | 0.0001 | Stop after reaching intensity ratio | |
min_peak_width | float | -1 | Minimal peak width (s), discard all peaks below this value (-1 means no action). | |
background_subtraction | string | none | none, smoothed, original | Try to apply a background subtraction to the peak (experimental). The background is estimated at the peak boundaries, either the smoothed or the raw chromatogram data can be used for that. |
recalculate_peaks | string | false | true, false | Tries to get better peak picking by looking at peak consistency of all picked peaks. Tries to use the consensus (median) peak border if theof variation within the picked peaks is too large. |
use_precursors | string | false | true, false | Use precursor chromatogram for peak picking |
recalculate_peaks_max_z | float | 1 | Determines the maximal Z-Score (difference measured in standard deviations) that is considered too large for peak boundaries. If the Z-Score is above this value, the median is used for peak boundaries (default value 1.0). | |
minimal_quality | float | -10000 | Only if compute_peak_quality is set, this parameter will not consider peaks below this quality threshold | |
resample_boundary | float | 15 | For computing peak quality, how many extra seconds should be sample left and right of the actual peak | |
compute_peak_quality | string | false | true, false | Tries to compute a quality value for each peakgroup and detect outlier transitions. The resulting score is centered around zero and values above 0 are generally good and below -1 or -2 are usually bad. |
PeakPickerMRM:sgolay_frame_length | int | 15 | The number of subsequent data points used for smoothing. This number has to be uneven. If it is not, 1 will be added. |
|
PeakPickerMRM:sgolay_polynomial_order | int | 3 | Order of the polynomial that is fitted. | |
PeakPickerMRM:gauss_width | float | 50 | Gaussian width in seconds, estimated peak size. | |
PeakPickerMRM:use_gauss | string | true | false, true | Use Gaussian filter for smoothing (alternative is Savitzky-Golay filter) |
PeakPickerMRM:peak_width | float | -1 | Force a certain minimal peak_width on the data (e.g. extend the peak at least by this amount on both sides) in seconds. -1 turns this feature off. | |
PeakPickerMRM:signal_to_noise | float | 1 | min: 0 | Signal-to-noise threshold at which a peak will not be extended any more. Note that setting this too high (e.g. 1.0) can lead to peaks whose flanks are not fully captured. |
PeakPickerMRM:sn_win_len | float | 1000 | Signal to noise window length. | |
PeakPickerMRM:sn_bin_count | int | 30 | Signal to noise bin count. | |
PeakPickerMRM:write_sn_log_messages | string | true | true, false | Write out log messages of the signal-to-noise estimator in case of sparse windows or median in rightmost histogram bin |
PeakPickerMRM:remove_overlapping_peaks | string | false | false, true | Try to remove overlapping peaks during peak picking |
PeakPickerMRM:method | string | corrected | legacy, corrected, crawdad | Which method to choose for chromatographic peak-picking (OpenSWATH legacy on raw data, corrected picking on smoothed chromatogram or Crawdad on smoothed chromatogram). |
It is called through pickTransitionGroup which will accept an MRMTransitionGroup filled with n chromatograms and perform the following steps:
Step 1 is performed by smoothing the individual chromatogram and applying the PeakPickerHiRes.
Step 2 is performed by finding the largest peak overall and use this to create a feature, propagating this through all chromatograms.
Constructor.
Destructor.
|
protected |
Will use the chromatogram to estimate the background noise and then subtract it.
The background is estimated by averaging the noise on either side of the peak and then subtracting that from the total intensity.
|
inlineprotected |
Compute transition group quality (higher score is better)
This is only based on the co-elution of the chromatograms and internal consistency without any library information.
For the final score (larger is better), consider these scores:
These scores are similar to the ones computed by MRMFeatureFinderScoring and a simple sum of these scores is returned.
left_borders / right_borders might not have the same length since we might have peaks missing!!
References OpenMS::Constants::k, LOG_DEBUG, mean_and_stddev::mean(), OpenSwath::Scoring::normalizedCrossCorrelation(), and OpenSwath::Scoring::xcorrArrayGetMaxPeak().
|
inline |
Create feature from a vector of chromatograms and a specified peak.
References MRMTransitionGroup< ChromatogramType, TransitionType >::chromatogramIdsMatch(), Feature::getConvexHulls(), MRMTransitionGroup< ChromatogramType, TransitionType >::getPrecursorChromatograms(), MRMTransitionGroup< ChromatogramType, TransitionType >::getTransitionGroupID(), MRMTransitionGroup< ChromatogramType, TransitionType >::getTransitions(), MRMTransitionGroup< ChromatogramType, TransitionType >::isInternallyConsistent(), OpenMS::Constants::k, LOG_DEBUG, LOG_WARN, OPENMS_PRECONDITION, ConvexHull2D::setHullPoints(), Peak2D::setIntensity(), MetaInfoInterface::setMetaValue(), Peak2D::setMZ(), Feature::setOverallQuality(), Feature::setQuality(), and Peak2D::setRT().
void findLargestPeak | ( | std::vector< MSChromatogram > & | picked_chroms, |
int & | chr_idx, | ||
int & | peak_idx | ||
) |
Find largest peak in a vector of chromatograms.
|
protected |
Assignment operator is protected for algorithm.
|
inline |
Pick a group of chromatograms belonging to the same peptide.
Will identify peaks in a set of chromatograms that belong to the same peptide. The chromatograms are given in the MRMTransitionGroup container which also contains the mapping of the chromatograms to their metadata. Only chromatograms from detecting transitions are used for peak picking. Identifying transitions will be processed alongside but do not contribute to the meta-data, e.g. total_xic or peak_apices_sum.
The resulting features are added to the MRMTransitionGroup. Each feature contains the following meta-data:
References MRMTransitionGroup< ChromatogramType, TransitionType >::addFeature(), MRMTransitionGroup< ChromatogramType, TransitionType >::chromatogramIdsMatch(), MRMTransitionGroup< ChromatogramType, TransitionType >::getChromatograms(), Peak2D::getIntensity(), MetaInfoInterface::getMetaValue(), ChromatogramSettings::getNativeID(), MRMTransitionGroup< ChromatogramType, TransitionType >::getPrecursorChromatograms(), MRMTransitionGroup< ChromatogramType, TransitionType >::getTransition(), MRMTransitionGroup< ChromatogramType, TransitionType >::getTransitions(), MRMTransitionGroup< ChromatogramType, TransitionType >::hasTransition(), MRMTransitionGroup< ChromatogramType, TransitionType >::isInternallyConsistent(), MSChromatogram::isSorted(), OpenMS::Constants::k, OPENMS_PRECONDITION, DefaultParamHandler::setParameters(), MSChromatogram::sortByIntensity(), and MSChromatogram::sortByPosition().
|
inlineprotected |
Create an empty master peak container that has the correct mz / RT values set.
The empty master peak container fill be filled with mz / RT values at the positions where the reference chromatogram has values. The container will only be populated between the boundaries given. The output container will contain peaks with mz / RT values but all intensity values will be zero.
ref_chromatogram | Reference chromatogram containing mz / RT values (possibly beyond the desired range) |
master_peak_container | Output container to be populated |
left_boundary | Left boundary of values the container should be populated with |
right_boundary | Right boundary of values the container should be populated with |
References OPENMS_PRECONDITION.
|
inlineprotected |
Recalculate the borders of the peak.
By collecting all left and right borders of contained peaks, a consensus peak is computed. By looking at the means and standard deviations of all the peak borders it is estimated whether the proposed peak border deviates too much from the consensus one. If the deviation is too high (in this case), then we fall back to the "consensus" (a median here).
References OpenMS::Constants::k, LOG_DEBUG, and OpenMS::Math::mean().
|
inline |
Remove overlapping features.
Remove features that are within the current seed (between best_left and best_right) or overlap with it. An overlapping feature is defined as a feature that has either of its borders within the border of the current peak
Directly adjacent features are allowed, e.g. they can share one border.
References OpenMS::Constants::k.
|
inlineprotected |
Resample a container at the positions indicated by the master peak container.
chromatogram | Container with the input data |
master_peak_container | Container with the mz / RT values at which to resample |
left_boundary | Left boundary of values the container should be resampled |
right_boundary | Right boundary of values the container should be resampled |
References LinearResamplerAlign::raster().
|
inlineprotected |
Select matching precursor or fragment ion chromatogram.
References MRMTransitionGroup< ChromatogramType, TransitionType >::getChromatogram(), MRMTransitionGroup< ChromatogramType, TransitionType >::getPrecursorChromatogram(), MRMTransitionGroup< ChromatogramType, TransitionType >::hasChromatogram(), and MRMTransitionGroup< ChromatogramType, TransitionType >::hasPrecursorChromatogram().
|
protectedvirtual |
Synchronize members with param class.
Reimplemented from DefaultParamHandler.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
OpenMS / TOPP release 2.3.0 | Documentation generated on Tue Jan 9 2018 18:22:10 using doxygen 1.8.13 |