Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MRMTransitionGroupPicker Class Reference

The MRMTransitionGroupPicker finds peaks in chromatograms that belong to the same precursors. More...

#include <OpenMS/ANALYSIS/OPENSWATH/MRMTransitionGroupPicker.h>

Inheritance diagram for MRMTransitionGroupPicker:
DefaultParamHandler

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 DefaultParamHandleroperator= (const DefaultParamHandler &rhs)
 Assignment operator. More...
 
virtual bool operator== (const DefaultParamHandler &rhs) const
 Equality operator. More...
 
void setParameters (const Param &param)
 Sets the parameters. More...
 
const ParamgetParameters () const
 Non-mutable access to the parameters. More...
 
const ParamgetDefaults () const
 Non-mutable access to the default parameters. More...
 
const StringgetName () 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...
 
MRMTransitionGroupPickeroperator= (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< Stringsubsections_
 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...
 

Detailed Description

The MRMTransitionGroupPicker finds peaks in chromatograms that belong to the same precursors.

Parameters of this class are:

NameTypeDefaultRestrictionsDescription
stop_after_feature int-1  Stop finding after feature (ordered by intensity; -1 means do not stop).
stop_after_intensity_ratio float0.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 stringnone none, smoothed, originalTry 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 stringfalse true, falseTries 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 stringfalse true, falseUse precursor chromatogram for peak picking
recalculate_peaks_max_z float1  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 float15  For computing peak quality, how many extra seconds should be sample left and right of the actual peak
compute_peak_quality stringfalse true, falseTries 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 int15  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 int3  Order of the polynomial that is fitted.
PeakPickerMRM:gauss_width float50  Gaussian width in seconds, estimated peak size.
PeakPickerMRM:use_gauss stringtrue false, trueUse 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 float1 min: 0Signal-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 float1000  Signal to noise window length.
PeakPickerMRM:sn_bin_count int30  Signal to noise bin count.
PeakPickerMRM:write_sn_log_messages stringtrue true, falseWrite out log messages of the signal-to-noise estimator in case of sparse windows or median in rightmost histogram bin
PeakPickerMRM:remove_overlapping_peaks stringfalse false, trueTry to remove overlapping peaks during peak picking
PeakPickerMRM:method stringcorrected legacy, corrected, crawdadWhich method to choose for chromatographic peak-picking (OpenSWATH legacy on raw data, corrected picking on smoothed chromatogram or Crawdad on smoothed chromatogram).

Note:

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 Documentation

◆ MRMTransitionGroupPicker()

Constructor.

◆ ~MRMTransitionGroupPicker()

Destructor.

Member Function Documentation

◆ calculateBgEstimation_()

void calculateBgEstimation_ ( const MSChromatogram chromatogram,
double  best_left,
double  best_right,
double background,
double avg_noise_level 
)
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.

◆ computeQuality_()

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 
)
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:

  • missing_peaks (the more peaks are missing, the worse)
  • multiple_peaks
  • mean of the shapes (1 is very good, 0 is bad)
  • mean of the coelutions (0 is good, 1 is ok, above 1 is pretty bad)

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().

◆ createMRMFeature()

MRMFeature createMRMFeature ( MRMTransitionGroup< SpectrumT, TransitionT > &  transition_group,
std::vector< SpectrumT > &  picked_chroms,
const int  chr_idx,
const int  peak_idx 
)
inline

◆ findLargestPeak()

void findLargestPeak ( std::vector< MSChromatogram > &  picked_chroms,
int &  chr_idx,
int &  peak_idx 
)

Find largest peak in a vector of chromatograms.

◆ operator=()

MRMTransitionGroupPicker& operator= ( const MRMTransitionGroupPicker rhs)
protected

Assignment operator is protected for algorithm.

◆ pickTransitionGroup()

void pickTransitionGroup ( MRMTransitionGroup< SpectrumT, TransitionT > &  transition_group)
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:

  • PeptideRef
  • leftWidth
  • rightWidth
  • total_xic (fragment trace XIC sum)
  • peak_apices_sum

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().

◆ prepareMasterContainer_()

void prepareMasterContainer_ ( const SpectrumT &  ref_chromatogram,
SpectrumT &  master_peak_container,
double  left_boundary,
double  right_boundary 
)
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.

Parameters
ref_chromatogramReference chromatogram containing mz / RT values (possibly beyond the desired range)
master_peak_containerOutput container to be populated
left_boundaryLeft boundary of values the container should be populated with
right_boundaryRight boundary of values the container should be populated with

References OPENMS_PRECONDITION.

◆ recalculatePeakBorders_()

void recalculatePeakBorders_ ( std::vector< SpectrumT > &  picked_chroms,
double best_left,
double best_right,
double  max_z 
)
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().

◆ remove_overlapping_features()

void remove_overlapping_features ( std::vector< SpectrumT > &  picked_chroms,
double  best_left,
double  best_right 
)
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.

◆ resampleChromatogram_()

SpectrumT resampleChromatogram_ ( const SpectrumT &  chromatogram,
const SpectrumT &  master_peak_container,
double  left_boundary,
double  right_boundary 
)
inlineprotected

Resample a container at the positions indicated by the master peak container.

Parameters
chromatogramContainer with the input data
master_peak_containerContainer with the mz / RT values at which to resample
left_boundaryLeft boundary of values the container should be resampled
right_boundaryRight boundary of values the container should be resampled
Returns
A container which contains the data from the input chromatogram resampled at the positions of the master container

References LinearResamplerAlign::raster().

◆ selectChromHelper_()

const SpectrumT& selectChromHelper_ ( MRMTransitionGroup< SpectrumT, TransitionT > &  transition_group,
String  native_id 
)
inlineprotected

◆ updateMembers_()

void updateMembers_ ( )
protectedvirtual

Synchronize members with param class.

Reimplemented from DefaultParamHandler.

Member Data Documentation

◆ background_subtraction_

String background_subtraction_
protected

◆ compute_peak_quality_

bool compute_peak_quality_
protected

◆ min_peak_width_

double min_peak_width_
protected

◆ min_qual_

double min_qual_
protected

◆ recalculate_peaks_

bool recalculate_peaks_
protected

◆ recalculate_peaks_max_z_

double recalculate_peaks_max_z_
protected

◆ resample_boundary_

double resample_boundary_
protected

◆ stop_after_feature_

int stop_after_feature_
protected

◆ stop_after_intensity_ratio_

double stop_after_intensity_ratio_
protected

◆ use_precursors_

bool use_precursors_
protected

OpenMS / TOPP release 2.3.0 Documentation generated on Tue Jan 9 2018 18:22:10 using doxygen 1.8.13