OpenMS  3.0.0
FLASHIda Class Reference

FLASHIda class for real time deconvolution This class contains functions to perform deconvolution (by FLASHDeconvAlgorithm) for the spectrum received from Thermo iAPI. Also precursor selection is done in this class. The functions in this class are invoked in C# Thermo iAPI side through the functions in FLASHIdaBridgeFunctions class. More...

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

Collaboration diagram for FLASHIda:
[legend]

Public Types

typedef FLASHDeconvHelperStructs::PrecalculatedAveragine PrecalculatedAveragine
 
typedef FLASHDeconvHelperStructs::LogMzPeak LogMzPeak
 

Public Member Functions

 FLASHIda (char *arg)
 constructor that takes string input argument More...
 
 ~FLASHIda ()=default
 destructor More...
 
 FLASHIda (const FLASHIda &)=default
 copy constructor More...
 
 FLASHIda (FLASHIda &&other)=default
 move constructor More...
 
FLASHIdaoperator= (const FLASHIda &fd)=default
 assignment operator More...
 
int getPeakGroups (const double *mzs, const double *intensities, const int length, const double rt, const int ms_level, const char *name)
 get peak groups (deconvolved masses) from input spectrum, specified by mzs and intensities (due to C# interface it is necessary) More...
 
void getIsolationWindows (double *window_start, double *window_end, double *qscores, int *charges, int *min_charges, int *max_charges, double *mono_masses, double *charge_cos, double *charge_snrs, double *iso_cos, double *snrs, double *charge_scores, double *ppm_errors, double *precursor_intensities, double *peakgroup_intensities)
 get isolation windows using FLASHDeconv algorithm. Many parameters are in primitive types so they can be passed to C# FLASHIda side. All parameters are for isolation windows. More...
 

Private Member Functions

void filterPeakGroupsUsingMassExclusion_ (const int ms_level, const double rt)
 mass value vs. retention time for all acquired precursors More...
 

Static Private Member Functions

static MSSpectrum makeMSSpectrum_ (const double *mzs, const double *ints, const int length, const double rt, const int ms_level, const char *name)
 generate MSSpectrum class using mzs and intensities. mzs and intensities and other information are provided by Thermo iAPI More...
 

Private Attributes

struct {
QscoreComparator_
 PeakGroup comparator for soring by QScore. More...
 
std::unordered_map< int, double > tqscore_exceeding_mz_rt_map_
 Maps that are necessary for mass exclusion. More...
 
std::unordered_map< int, double > tqscore_exceeding_mass_rt_map_
 integer mz value vs. retention time with tqscore exceeding total qscore threshold More...
 
std::unordered_map< int, double > all_mass_rt_map_
 integer mass value vs. retention time with tqscore exceeding total qscore threshold More...
 
std::unordered_map< int, double > mass_qscore_map_
 mz value vs. retention time for all acquired precursors More...
 
DeconvolvedSpectrum deconvolved_spectrum_
 deconvolved spectrum that contains the peak group More...
 
std::vector< int > trigger_charges
 peakGroup charges to be triggered More...
 
std::vector< double > trigger_left_isolation_mzs_
 peakGroup isolation window ranges More...
 
std::vector< double > trigger_right_isolation_mzs_
 
FLASHDeconvAlgorithm fd_
 FLASHDeconvAlgorithm class for deconvolution. More...
 
double tqscore_threshold = .9
 total QScore threshold More...
 
double qscore_threshold_
 q score threshold - determined from C# side More...
 
double rt_window_
 retention time window - determined from C# side More...
 
IntList mass_count_
 how many masses will be selected per ms level? - determined from C# side More...
 
const double min_isolation_window_half_ = .6
 minimum isolation window width divided by two More...
 
const double max_isolation_window_half_ = 3.0
 maximum isolation window width divided by two More...
 
bool inclusive_mode_ = true
 
std::map< double, std::vector< double > > target_mass_rt_map_
 maps for global inclusion targeting More...
 
std::map< double, std::vector< double > > target_mz_rt_map_
 
std::vector< double > target_masses_
 
std::map< double, std::vector< double > > excluded_mass_rt_map_
 current target masses More...
 
std::map< double, std::vector< double > > excluded_mz_rt_map_
 
std::vector< double > excluded_masses_
 
double snr_threshold_ = 1.0
 current target masses More...
 
DoubleList tol_
 mass tolerance More...
 

Detailed Description

FLASHIda class for real time deconvolution This class contains functions to perform deconvolution (by FLASHDeconvAlgorithm) for the spectrum received from Thermo iAPI. Also precursor selection is done in this class. The functions in this class are invoked in C# Thermo iAPI side through the functions in FLASHIdaBridgeFunctions class.

See also
FLASHIdaBridgeFunctions @reference: https://stackoverflow.com/questions/31417688/passing-a-vector-array-from-unmanaged-c-to-c-sharp

Member Typedef Documentation

◆ LogMzPeak

◆ PrecalculatedAveragine

Constructor & Destructor Documentation

◆ FLASHIda() [1/3]

FLASHIda ( char *  arg)
explicit

constructor that takes string input argument

◆ ~FLASHIda()

~FLASHIda ( )
default

destructor

◆ FLASHIda() [2/3]

FLASHIda ( const FLASHIda )
default

copy constructor

◆ FLASHIda() [3/3]

FLASHIda ( FLASHIda &&  other)
default

move constructor

Member Function Documentation

◆ filterPeakGroupsUsingMassExclusion_()

void filterPeakGroupsUsingMassExclusion_ ( const int  ms_level,
const double  rt 
)
private

mass value vs. retention time for all acquired precursors

discard peak groups using mass exclusion

Parameters
ms_levelMS level
rtRetention time

◆ getIsolationWindows()

void getIsolationWindows ( double *  window_start,
double *  window_end,
double *  qscores,
int *  charges,
int *  min_charges,
int *  max_charges,
double *  mono_masses,
double *  charge_cos,
double *  charge_snrs,
double *  iso_cos,
double *  snrs,
double *  charge_scores,
double *  ppm_errors,
double *  precursor_intensities,
double *  peakgroup_intensities 
)

get isolation windows using FLASHDeconv algorithm. Many parameters are in primitive types so they can be passed to C# FLASHIda side. All parameters are for isolation windows.

Parameters
window_startwindow start mzs
window_endwindow end mzs
qscoresQScores of windows
chargescharges of windows
min_chargesminimum charges
max_chargesmaximum charges
mono_massesmonoisotopic masses
charge_coscharge cosine scores
charge_snrscharge SNRs or precursor SNRs
iso_cosmass cosine scores
snrsmass SNRs
charge_scorescharge distribution scores
ppm_errorsaverage PPM errors
precursor_intensitiesprecursor peak intensities
peakgroup_intensitiesprecursor mass intensities

◆ getPeakGroups()

int getPeakGroups ( const double *  mzs,
const double *  intensities,
const int  length,
const double  rt,
const int  ms_level,
const char *  name 
)

get peak groups (deconvolved masses) from input spectrum, specified by mzs and intensities (due to C# interface it is necessary)

Parameters
mzsmz values of the input spectrum
intensitiesintensities of the input spectrum
lengthlength of mzs and ints
rtRetention time in seconds
ms_levelms level
namespectrum name
Returns
number of peak groups

◆ makeMSSpectrum_()

static MSSpectrum makeMSSpectrum_ ( const double *  mzs,
const double *  ints,
const int  length,
const double  rt,
const int  ms_level,
const char *  name 
)
staticprivate

generate MSSpectrum class using mzs and intensities. mzs and intensities and other information are provided by Thermo iAPI

Parameters
mzsm/z values
intsintensities
lengthnumber of peaks
rtRetention time
ms_levelMS level
namespectrum name

◆ operator=()

FLASHIda& operator= ( const FLASHIda fd)
default

assignment operator

Member Data Documentation

◆ all_mass_rt_map_

std::unordered_map<int, double> all_mass_rt_map_
private

integer mass value vs. retention time with tqscore exceeding total qscore threshold

◆ deconvolved_spectrum_

DeconvolvedSpectrum deconvolved_spectrum_
private

deconvolved spectrum that contains the peak group

◆ excluded_mass_rt_map_

std::map<double, std::vector<double> > excluded_mass_rt_map_
private

current target masses

maps for global exclusion targeting

◆ excluded_masses_

std::vector<double> excluded_masses_
private

◆ excluded_mz_rt_map_

std::map<double, std::vector<double> > excluded_mz_rt_map_
private

◆ fd_

FLASHDeconvAlgorithm fd_
private

FLASHDeconvAlgorithm class for deconvolution.

◆ inclusive_mode_

bool inclusive_mode_ = true
private

◆ mass_count_

IntList mass_count_
private

how many masses will be selected per ms level? - determined from C# side

◆ mass_qscore_map_

std::unordered_map<int, double> mass_qscore_map_
private

mz value vs. retention time for all acquired precursors

◆ max_isolation_window_half_

const double max_isolation_window_half_ = 3.0
private

maximum isolation window width divided by two

◆ min_isolation_window_half_

const double min_isolation_window_half_ = .6
private

minimum isolation window width divided by two

◆ qscore_threshold_

double qscore_threshold_
private

q score threshold - determined from C# side

◆ 

struct { ... } QscoreComparator_

PeakGroup comparator for soring by QScore.

◆ rt_window_

double rt_window_
private

retention time window - determined from C# side

◆ snr_threshold_

double snr_threshold_ = 1.0
private

current target masses

precursor SNR threshold

◆ target_mass_rt_map_

std::map<double, std::vector<double> > target_mass_rt_map_
private

maps for global inclusion targeting

◆ target_masses_

std::vector<double> target_masses_
private

◆ target_mz_rt_map_

std::map<double, std::vector<double> > target_mz_rt_map_
private

◆ tol_

DoubleList tol_
private

mass tolerance

◆ tqscore_exceeding_mass_rt_map_

std::unordered_map<int, double> tqscore_exceeding_mass_rt_map_
private

integer mz value vs. retention time with tqscore exceeding total qscore threshold

◆ tqscore_exceeding_mz_rt_map_

std::unordered_map<int, double> tqscore_exceeding_mz_rt_map_
private

Maps that are necessary for mass exclusion.

◆ tqscore_threshold

double tqscore_threshold = .9
private

total QScore threshold

◆ trigger_charges

std::vector<int> trigger_charges
private

peakGroup charges to be triggered

◆ trigger_left_isolation_mzs_

std::vector<double> trigger_left_isolation_mzs_
private

peakGroup isolation window ranges

◆ trigger_right_isolation_mzs_

std::vector<double> trigger_right_isolation_mzs_
private