OpenMS
FLASHDeconvAlgorithm Class Reference

FLASHDeconv algorithm: ultrafast mass deconvolution algorithm for top down mass spectrometry dataset From MSSpectrum, this class outputs DeconvolvedSpectrum. Deconvolution takes three steps: i) decharging and select candidate masses - speed up via binning ii) collecting isotopes from the candidate masses and deisotoping - peak groups are defined here iii) scoring and filter out low scoring masses (i.e., peak groups) More...

#include <OpenMS/ANALYSIS/TOPDOWN/FLASHDeconvAlgorithm.h>

Inheritance diagram for FLASHDeconvAlgorithm:
[legend]
Collaboration diagram for FLASHDeconvAlgorithm:
[legend]

Public Member Functions

 FLASHDeconvAlgorithm ()
 default constructor More...
 
 FLASHDeconvAlgorithm (const FLASHDeconvAlgorithm &)=default
 copy constructor More...
 
 FLASHDeconvAlgorithm (FLASHDeconvAlgorithm &&other) noexcept=default
 move constructor More...
 
FLASHDeconvAlgorithmoperator= (const FLASHDeconvAlgorithm &fd)=default
 assignment operator More...
 
FLASHDeconvAlgorithmoperator= (FLASHDeconvAlgorithm &&fd)=default
 move assignment operator More...
 
 ~FLASHDeconvAlgorithm () override=default
 destructor More...
 
std::vector< double > getTolerances () const
 
void run (MSExperiment &map, std::vector< DeconvolvedSpectrum > &deconvolved_spectra, std::vector< FLASHHelperClasses::MassFeature > &deconvolved_feature)
 Run FLASHDeconv algorithm for map and store deconvolved_spectra and deconvolved_feature. More...
 
const FLASHHelperClasses::PrecalculatedAveraginegetAveragine ()
 get calculated averagine. Call after calculateAveragine is called. More...
 
const FLASHHelperClasses::PrecalculatedAveraginegetDecoyAveragine ()
 get calculated decoy averagine. Call after calculateAveragine is called. More...
 
double getNoiseDecoyWeight () const
 get noise decoy weight 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...
 
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...
 
- Public Member Functions inherited from ProgressLogger
 ProgressLogger ()
 Constructor. More...
 
virtual ~ProgressLogger ()
 Destructor. More...
 
 ProgressLogger (const ProgressLogger &other)
 Copy constructor. More...
 
ProgressLoggeroperator= (const ProgressLogger &other)
 Assignment Operator. More...
 
void setLogType (LogType type) const
 Sets the progress log that should be used. The default type is NONE! More...
 
LogType getLogType () const
 Returns the type of progress log being used. More...
 
void setLogger (ProgressLoggerImpl *logger)
 Sets the logger to be used for progress logging. More...
 
void startProgress (SignedSize begin, SignedSize end, const String &label) const
 Initializes the progress display. More...
 
void setProgress (SignedSize value) const
 Sets the current progress. More...
 
void endProgress (UInt64 bytes_processed=0) const
 
void nextProgress () const
 increment progress by 1 (according to range begin-end) More...
 

Static Public Member Functions

static int getScanNumber (const MSExperiment &map, Size index)
 get scan number of the spectrum in index -th in map More...
 
- Static Public Member Functions inherited from DefaultParamHandler
static void writeParametersToMetaValues (const Param &write_this, MetaInfoInterface &write_here, const String &key_prefix="")
 Writes all parameters to meta values. More...
 

Protected Member Functions

void updateMembers_ () override
 This method is used to update extra member variables at the end of the setParameters() method. More...
 
- Protected Member Functions inherited from DefaultParamHandler
void defaultsToParam_ ()
 Updates the parameters after the defaults have been set in the constructor. More...
 

Private Member Functions

void updateMSLevels_ (MSExperiment &map)
 read dataset to update ms level information More...
 
void mergeSpectra_ (MSExperiment &map, uint ms_level)
 merge spectra More...
 
void runSpectralDeconvolution_ (MSExperiment &map, std::vector< DeconvolvedSpectrum > &deconvolved_spectra)
 run spectral deconvolution More...
 
int findPrecursorScanNumber_ (const MSExperiment &map, Size index, uint ms_level) const
 find precursor scan number when peak group is not found More...
 
void appendDecoyPeakGroups_ (DeconvolvedSpectrum &deconvolved_spectrum, const MSSpectrum &spec, int scan_number, const PeakGroup &precursor_pg)
 append decoy peak groups to deconvolved spectrum More...
 
void runFeatureFinding_ (std::vector< DeconvolvedSpectrum > &deconvolved_spectra, std::vector< FLASHHelperClasses::MassFeature > &deconvolved_features)
 run feature finding to get deconvolved features More...
 
void findPrecursorPeakGroupsFormIdaLog_ (const MSExperiment &map, Size index, double start_mz, double end_mz)
 find precursor peak groups from FLASHIda log file More...
 
void findPrecursorPeakGroupsForMSnSpectra_ (const MSExperiment &map, const std::vector< DeconvolvedSpectrum > &deconvolved_spectra, uint ms_level)
 register the precursor peak group (or mass) if possible for MSn (n>1) spectrum. More...
 
std::pair< int, int > findScanNumberBounds_ (const MSExperiment &map, Size index, uint ms_level) const
 find scan number bounds for precursor search More...
 
std::vector< DeconvolvedSpectrumcollectSurveyScans_ (const std::vector< DeconvolvedSpectrum > &deconvolved_spectra, int b_scan_number, int a_scan_number, uint ms_level) const
 collect survey scans within the given scan number bounds More...
 
std::pair< double, double > getIsolationWindowMzRange_ (const MSSpectrum &spec) const
 get isolation window m/z range from precursors More...
 
PeakGroup findBestPrecursorPeakGroup_ (const std::vector< DeconvolvedSpectrum > &survey_scans, double start_mz, double end_mz) const
 find the best precursor peak group from survey scans within the isolation window More...
 
void determineTolerance_ (const MSExperiment &map, const Param &sd_param, const FLASHHelperClasses::PrecalculatedAveragine &avg, uint ms_level)
 determine tolerance More...
 

Static Private Member Functions

static void updatePrecursorQScores_ (std::vector< DeconvolvedSpectrum > &deconvolved_spectra, int ms_level)
 with found deconvolved features, update QScores for masses that are contained in features. More...
 
static std::vector< int > getHistogram_ (const std::vector< double > &data, double min_range, double max_range, double bin_size)
 get histogram More...
 
static void filterLowPeaks_ (MSExperiment &map)
 filter low intensity peaks More...
 

Private Attributes

SpectralDeconvolution sd_
 SpectralDeconvolution instances for spectral deconvolution for target and decoys. More...
 
SpectralDeconvolution sd_noise_decoy_
 
SpectralDeconvolution sd_signal_decoy_
 
int merge_spec_ = 0
 to merge spectra. More...
 
int forced_ms_level_ = 0
 forced MS level More...
 
UInt max_ms_level_ = 4
 maximum MS level, which is 4. More...
 
UInt current_max_ms_level_ = 0
 current maximum MS level - i.e., for MS2, this is the precursor charge More...
 
UInt current_min_ms_level_ = 0
 current minimum MS level. More...
 
int precursor_MS1_window_ = 0
 the number of preceding full scans from which MS2 precursor mass will be searched. More...
 
String ida_log_file_
 FLASHIda log file name. More...
 
DoubleList tols_
 mass tolerances, and minimum cosine scores per MS level More...
 
DoubleList min_cos_
 
bool use_RNA_averagine_ = false
 to use RNA averagine model More...
 
bool report_decoy_ = false
 should decoy deconvolution be done? More...
 
double isolation_window_size_ {3.0}
 default precursor isolation window size. More...
 
double noise_decoy_weight_ = 1
 noise decoy weight determined with qvalue calcualtion. More...
 
std::map< int, std::vector< std::vector< float > > > precursor_map_for_ida_
 FLASHIda parsing information is stored here: MS1 scan - information. More...
 
std::map< String, PeakGroupnative_id_precursor_peak_group_map_
 a map from native ID to precursor peak group More...
 

Additional Inherited Members

- Public Types inherited from ProgressLogger
enum  LogType { CMD , GUI , NONE }
 Possible log types. More...
 
- 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...
 
- Protected Attributes inherited from ProgressLogger
LogType type_
 
time_t last_invoke_
 
ProgressLoggerImplcurrent_logger_
 
- Static Protected Attributes inherited from ProgressLogger
static int recursion_depth_
 

Detailed Description

FLASHDeconv algorithm: ultrafast mass deconvolution algorithm for top down mass spectrometry dataset From MSSpectrum, this class outputs DeconvolvedSpectrum. Deconvolution takes three steps: i) decharging and select candidate masses - speed up via binning ii) collecting isotopes from the candidate masses and deisotoping - peak groups are defined here iii) scoring and filter out low scoring masses (i.e., peak groups)

Constructor & Destructor Documentation

◆ FLASHDeconvAlgorithm() [1/3]

default constructor

◆ FLASHDeconvAlgorithm() [2/3]

copy constructor

◆ FLASHDeconvAlgorithm() [3/3]

FLASHDeconvAlgorithm ( FLASHDeconvAlgorithm &&  other)
defaultnoexcept

move constructor

◆ ~FLASHDeconvAlgorithm()

~FLASHDeconvAlgorithm ( )
overridedefault

destructor

Member Function Documentation

◆ appendDecoyPeakGroups_()

void appendDecoyPeakGroups_ ( DeconvolvedSpectrum deconvolved_spectrum,
const MSSpectrum spec,
int  scan_number,
const PeakGroup precursor_pg 
)
private

append decoy peak groups to deconvolved spectrum

◆ collectSurveyScans_()

std::vector<DeconvolvedSpectrum> collectSurveyScans_ ( const std::vector< DeconvolvedSpectrum > &  deconvolved_spectra,
int  b_scan_number,
int  a_scan_number,
uint  ms_level 
) const
private

collect survey scans within the given scan number bounds

◆ determineTolerance_()

void determineTolerance_ ( const MSExperiment map,
const Param sd_param,
const FLASHHelperClasses::PrecalculatedAveragine avg,
uint  ms_level 
)
private

determine tolerance

◆ filterLowPeaks_()

static void filterLowPeaks_ ( MSExperiment map)
staticprivate

filter low intensity peaks

◆ findBestPrecursorPeakGroup_()

PeakGroup findBestPrecursorPeakGroup_ ( const std::vector< DeconvolvedSpectrum > &  survey_scans,
double  start_mz,
double  end_mz 
) const
private

find the best precursor peak group from survey scans within the isolation window

◆ findPrecursorPeakGroupsFormIdaLog_()

void findPrecursorPeakGroupsFormIdaLog_ ( const MSExperiment map,
Size  index,
double  start_mz,
double  end_mz 
)
private

find precursor peak groups from FLASHIda log file

◆ findPrecursorPeakGroupsForMSnSpectra_()

void findPrecursorPeakGroupsForMSnSpectra_ ( const MSExperiment map,
const std::vector< DeconvolvedSpectrum > &  deconvolved_spectra,
uint  ms_level 
)
private

register the precursor peak group (or mass) if possible for MSn (n>1) spectrum.

◆ findPrecursorScanNumber_()

int findPrecursorScanNumber_ ( const MSExperiment map,
Size  index,
uint  ms_level 
) const
private

find precursor scan number when peak group is not found

◆ findScanNumberBounds_()

std::pair<int, int> findScanNumberBounds_ ( const MSExperiment map,
Size  index,
uint  ms_level 
) const
private

find scan number bounds for precursor search

◆ getAveragine()

get calculated averagine. Call after calculateAveragine is called.

Referenced by TOPPFLASHDeconv::main_().

◆ getDecoyAveragine()

const FLASHHelperClasses::PrecalculatedAveragine& getDecoyAveragine ( )

get calculated decoy averagine. Call after calculateAveragine is called.

Referenced by TOPPFLASHDeconv::main_().

◆ getHistogram_()

static std::vector<int> getHistogram_ ( const std::vector< double > &  data,
double  min_range,
double  max_range,
double  bin_size 
)
staticprivate

get histogram

◆ getIsolationWindowMzRange_()

std::pair<double, double> getIsolationWindowMzRange_ ( const MSSpectrum spec) const
private

get isolation window m/z range from precursors

◆ getNoiseDecoyWeight()

double getNoiseDecoyWeight ( ) const
inline

get noise decoy weight

Referenced by TOPPFLASHDeconv::main_().

◆ getScanNumber()

static int getScanNumber ( const MSExperiment map,
Size  index 
)
static

get scan number of the spectrum in index -th in map

◆ getTolerances()

std::vector<double> getTolerances ( ) const

Referenced by TOPPFLASHDeconv::main_().

◆ mergeSpectra_()

void mergeSpectra_ ( MSExperiment map,
uint  ms_level 
)
private

merge spectra

◆ operator=() [1/2]

FLASHDeconvAlgorithm& operator= ( const FLASHDeconvAlgorithm fd)
default

assignment operator

◆ operator=() [2/2]

FLASHDeconvAlgorithm& operator= ( FLASHDeconvAlgorithm &&  fd)
default

move assignment operator

◆ run()

void run ( MSExperiment map,
std::vector< DeconvolvedSpectrum > &  deconvolved_spectra,
std::vector< FLASHHelperClasses::MassFeature > &  deconvolved_feature 
)

Run FLASHDeconv algorithm for map and store deconvolved_spectra and deconvolved_feature.

Parameters
mapthe dataset
deconvolved_spectrathe deconvolved spectra will be stored in here
deconvolved_featurethe deconvolved features wll be strored in here

Referenced by TOPPFLASHDeconv::main_().

◆ runFeatureFinding_()

void runFeatureFinding_ ( std::vector< DeconvolvedSpectrum > &  deconvolved_spectra,
std::vector< FLASHHelperClasses::MassFeature > &  deconvolved_features 
)
private

run feature finding to get deconvolved features

◆ runSpectralDeconvolution_()

void runSpectralDeconvolution_ ( MSExperiment map,
std::vector< DeconvolvedSpectrum > &  deconvolved_spectra 
)
private

run spectral deconvolution

◆ updateMembers_()

void updateMembers_ ( )
overrideprotectedvirtual

This method is used to update extra member variables at the end of the setParameters() method.

Also call it at the end of the derived classes' copy constructor and assignment operator.

The default implementation is empty.

Reimplemented from DefaultParamHandler.

◆ updateMSLevels_()

void updateMSLevels_ ( MSExperiment map)
private

read dataset to update ms level information

◆ updatePrecursorQScores_()

static void updatePrecursorQScores_ ( std::vector< DeconvolvedSpectrum > &  deconvolved_spectra,
int  ms_level 
)
staticprivate

with found deconvolved features, update QScores for masses that are contained in features.

Member Data Documentation

◆ current_max_ms_level_

UInt current_max_ms_level_ = 0
private

current maximum MS level - i.e., for MS2, this is the precursor charge

◆ current_min_ms_level_

UInt current_min_ms_level_ = 0
private

current minimum MS level.

◆ forced_ms_level_

int forced_ms_level_ = 0
private

forced MS level

◆ ida_log_file_

String ida_log_file_
private

FLASHIda log file name.

◆ isolation_window_size_

double isolation_window_size_ {3.0}
private

default precursor isolation window size.

◆ max_ms_level_

UInt max_ms_level_ = 4
private

maximum MS level, which is 4.

◆ merge_spec_

int merge_spec_ = 0
private

to merge spectra.

◆ min_cos_

DoubleList min_cos_
private

◆ native_id_precursor_peak_group_map_

std::map<String, PeakGroup> native_id_precursor_peak_group_map_
private

a map from native ID to precursor peak group

◆ noise_decoy_weight_

double noise_decoy_weight_ = 1
private

noise decoy weight determined with qvalue calcualtion.

◆ precursor_map_for_ida_

std::map<int, std::vector<std::vector<float> > > precursor_map_for_ida_
private

FLASHIda parsing information is stored here: MS1 scan - information.

◆ precursor_MS1_window_

int precursor_MS1_window_ = 0
private

the number of preceding full scans from which MS2 precursor mass will be searched.

◆ report_decoy_

bool report_decoy_ = false
private

should decoy deconvolution be done?

◆ sd_

SpectralDeconvolution sd_
private

SpectralDeconvolution instances for spectral deconvolution for target and decoys.

◆ sd_noise_decoy_

SpectralDeconvolution sd_noise_decoy_
private

◆ sd_signal_decoy_

SpectralDeconvolution sd_signal_decoy_
private

◆ tols_

DoubleList tols_
private

mass tolerances, and minimum cosine scores per MS level

◆ use_RNA_averagine_

bool use_RNA_averagine_ = false
private

to use RNA averagine model