OpenMS  3.0.0
PeakGroup Class Reference

Class describing a deconvolved mass. A mass contains multiple (LogMz) peaks of different charges and isotope indices. PeakGroup is the set of such peaks representing a single monoisotopic mass. PeakGroup also contains features that define the quality of it. It is used by QScore calculation. DeconvolvedSpectrum consists of PeakGroups. More...

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

Public Types

enum  DecoyFlag { target = 0, charge_decoy, noise_decoy, isotope_decoy }
 decoy flag. This flag specifies if a PeakGroup is a target, charge decoy, noise decoy, or isotope decoy. More...
 

Public Member Functions

 PeakGroup ()=default
 default constructor More...
 
 PeakGroup (int min_abs_charge, int max_abs_charge, bool is_positive)
 Constructor specifying charge range. More...
 
 ~PeakGroup ()=default
 default destructor More...
 
 PeakGroup (const PeakGroup &)=default
 copy constructor More...
 
 PeakGroup (PeakGroup &&other)=default
 move constructor More...
 
bool operator< (const PeakGroup &a) const
 comparison operators More...
 
bool operator> (const PeakGroup &a) const
 
bool operator== (const PeakGroup &a) const
 
PeakGroupoperator= (const PeakGroup &t)=default
 assignment operator More...
 
void updateMonomassAndIsotopeIntensities ()
 add monoisotopic indices of peaks by offset and discard negative isotope peaks. Total intensity is also updated More...
 
void updateIsotopeCosineSNRAvgErrorAndQScore (const FLASHDeconvHelperStructs::PrecalculatedAveragine &avg, double min_cos)
 Update isotope cosine sore and qscore. Mono mass is also updated one last time. SNR, per charge SNR, and avg errors are updated here. More...
 
std::vector< LogMzPeakrecruitAllPeaksInSpectrum (const MSSpectrum &spec, double tol, const FLASHDeconvHelperStructs::PrecalculatedAveragine &avg, double mono_mass, const std::unordered_set< int > &excluded_integer_mzs_, int charge_offset=0, double charge_multiple=1.0, double mz_off=.0)
 given a monoisotopic mass, recruit raw peaks from the raw input spectrum and add to this peakGroup. This is a bit time-consuming and is done for only a small number of selected high-quality peakgroups. More...
 
bool isSignalMZ (double mz, double tol) const
 determine is an mz is a signal of this peakgroup. Input tol is ppm tolerance (e.g., 10.0 for 10ppm tolerance). Assume logMzPeaks are sorted. More...
 
void setScanNumber (int scan_number)
 set scan number More...
 
void setChargeIsotopeCosine (int abs_charge, float cos)
 set per abs_charge isotope cosine More...
 
void setAbsChargeRange (int min_abs_charge, int max_abs_charge)
 set min_abs_charge and max_abs_charge charge range More...
 
void setIsotopeCosine (float cos)
 set isotope cosine score More...
 
void setRepAbsCharge (int max_qscore_charge)
 set representative max_qscore_charge More...
 
void setQScore (float qscore)
 set Q score - for FLASHIda log file parsing More...
 
void setChargeScore (float charge_score)
 set charge score - for FLASHIda log file parsing More...
 
void setAvgPPMError (float error)
 set average mass ppm error More...
 
void setSNR (float snr)
 set SNR manually - for FLASHIda log file parsing More...
 
void setChargeSNR (int abs_charge, float c_snr)
 set charge SNR manually - for FLASHIda log file parsing More...
 
void setTargeted ()
 set if it is targeted More...
 
int getScanNumber () const
 get scan number More...
 
double getMonoMass () const
 get monoisotopic mass More...
 
float getIntensity () const
 get intensity More...
 
float getChargeSNR (int abs_charge) const
 get per abs_charge SNR More...
 
float getChargeIsotopeCosine (int abs_charge) const
 get per abs_charge isotope cosine More...
 
float getChargeIntensity (int abs_charge) const
 get per abs_charge intenstiy More...
 
std::tuple< double, doublegetRepMzRange () const
 get mz range that results in max QScore More...
 
std::tuple< double, doublegetMzRange (int abs_charge) const
 get mz range of the charge More...
 
std::tuple< int, int > getAbsChargeRange () const
 get charge range - the actual charge values More...
 
const std::vector< float > & getIsotopeIntensities () const
 get per isotope intensities More...
 
float getIsotopeCosine () const
 get isotopic cosine score More...
 
int getRepAbsCharge () const
 get representative charge More...
 
float getQScore () const
 get Q score More...
 
float getSNR () const
 get total SNR More...
 
float getChargeScore () const
 get charge score More...
 
float getAvgPPMError () const
 get average mass ppm error; More...
 
float getAvgDaError () const
 get average mass ppm error; More...
 
bool isPositive () const
 get if it is positive mode More...
 
bool isTargeted () const
 get if it is targeted More...
 
PeakGroup::DecoyFlag getDecoyFlag () const
 get the decoy flag of this More...
 
void setDecoyFlag (PeakGroup::DecoyFlag index)
 for this PeakGroup, specify the decoy flag. More...
 
float getQvalue (PeakGroup::DecoyFlag flag=PeakGroup::DecoyFlag::target) const
 get calculated qvalue More...
 
void setQvalue (float q, PeakGroup::DecoyFlag flag)
 set qvalue. More...
 
void setIsotopeDaDistance (double d)
 set distance between consecutive isotopes More...
 
double getIsotopeDaDistance () const
 get distance between consecutive isotopes More...
 
void setIndex (uint i)
 set index of this peak group More...
 
uint getIndex () const
 get index of this peak group More...
 
std::vector< FLASHDeconvHelperStructs::LogMzPeak >::const_iterator begin () const noexcept
 iterators for the signal LogMz peaks in this PeakGroup More...
 
std::vector< FLASHDeconvHelperStructs::LogMzPeak >::const_iterator end () const noexcept
 
std::vector< FLASHDeconvHelperStructs::LogMzPeak >::iterator begin () noexcept
 
std::vector< FLASHDeconvHelperStructs::LogMzPeak >::iterator end () noexcept
 
const FLASHDeconvHelperStructs::LogMzPeakoperator[] (Size i) const
 
void push_back (const FLASHDeconvHelperStructs::LogMzPeak &pg)
 vector operators for the LogMzPeaks in this PeakGroup More...
 
Size size () const noexcept
 
void clear ()
 
void reserve (Size n)
 
bool empty () const
 
void swap (std::vector< FLASHDeconvHelperStructs::LogMzPeak > &x)
 
void shrink_to_fit ()
 
void sort ()
 

Private Types

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

Private Member Functions

void setChargePowers_ (int abs_charge, float signal_pwr, float noise_pwr, float intensity)
 set per abs_charge signal power More...
 
void updateChargeFitScoreAndChargeIntensities_ ()
 update chargefit score and also update per charge intensities here. More...
 
void updateAvgPPMError_ ()
 update avg ppm error More...
 
void updateAvgDaError_ ()
 update avg Da error More...
 
float getAbsPPMError_ (const LogMzPeak &p) const
 get ppm error of a logMzPeak More...
 
float getAbsDaError_ (LogMzPeak &p) const
 get Da error of a logMzPeak from the closest isotope More...
 
void updateSNR_ ()
 using signal and total (signal + noise) power, update SNR value More...
 

Private Attributes

std::vector< Matrix< float > > dl_matrices_
 Encoded matrix for DL scoring. More...
 
std::vector< FLASHDeconvHelperStructs::LogMzPeaklogMzpeaks_
 log Mz peaks More...
 
std::vector< floatper_charge_signal_pwr_
 per charge SNR, isotope cosine, and intensity vectors More...
 
std::vector< floatper_charge_noise_pwr_
 
std::vector< floatper_charge_cos_
 
std::vector< floatper_charge_int_
 
std::vector< floatper_charge_snr_
 
std::vector< floatper_isotope_int_
 per isotope intensity. More...
 
int min_abs_charge_ = 0
 charge range More...
 
int max_abs_charge_ = -1
 
uint index_ = 0
 peak group index More...
 
int scan_number_
 scan number More...
 
bool is_positive_
 is positive or not More...
 
bool is_targeted_ = false
 if this peak group has been targeted More...
 
double monoisotopic_mass_ = -1.0
 information on the deconvolved mass More...
 
float intensity_
 
PeakGroup::DecoyFlag decoy_flag_ = target
 index to specify if this peak_group is a target (0), an isotope decoy (1), a noise (2), or a charge decoy (3) More...
 
double iso_da_distance_ = Constants::ISOTOPE_MASSDIFF_55K_U
 distance between consecutive isotopes. Can be different for decoys More...
 
int max_qscore_abs_charge_ = -1
 scoring variables More...
 
float isotope_cosine_score_ = 0
 
float charge_score_
 
float qscore_ = .0f
 
float avg_ppm_error_ = 0
 
float avg_da_error_ = 0
 
float snr_ = 0
 
std::map< PeakGroup::DecoyFlag, floatqvalue_
 qvalues with different decoy flags More...
 

Detailed Description

Class describing a deconvolved mass. A mass contains multiple (LogMz) peaks of different charges and isotope indices. PeakGroup is the set of such peaks representing a single monoisotopic mass. PeakGroup also contains features that define the quality of it. It is used by QScore calculation. DeconvolvedSpectrum consists of PeakGroups.

Member Typedef Documentation

◆ LogMzPeak

◆ PrecalculatedAveragine

Member Enumeration Documentation

◆ DecoyFlag

enum DecoyFlag

decoy flag. This flag specifies if a PeakGroup is a target, charge decoy, noise decoy, or isotope decoy.

Enumerator
target 
charge_decoy 
noise_decoy 
isotope_decoy 

Constructor & Destructor Documentation

◆ PeakGroup() [1/4]

PeakGroup ( )
default

default constructor

◆ PeakGroup() [2/4]

PeakGroup ( int  min_abs_charge,
int  max_abs_charge,
bool  is_positive 
)
explicit

Constructor specifying charge range.

Parameters
min_abs_chargemin Charge
max_abs_chargemax Charge
is_positivewhether MS is positive mode

◆ ~PeakGroup()

~PeakGroup ( )
default

default destructor

◆ PeakGroup() [3/4]

PeakGroup ( const PeakGroup )
default

copy constructor

◆ PeakGroup() [4/4]

PeakGroup ( PeakGroup &&  other)
default

move constructor

Member Function Documentation

◆ begin() [1/2]

std::vector<FLASHDeconvHelperStructs::LogMzPeak>::const_iterator begin ( ) const
noexcept

iterators for the signal LogMz peaks in this PeakGroup

◆ begin() [2/2]

std::vector<FLASHDeconvHelperStructs::LogMzPeak>::iterator begin ( )
noexcept

◆ clear()

void clear ( )

◆ empty()

bool empty ( ) const

◆ end() [1/2]

std::vector<FLASHDeconvHelperStructs::LogMzPeak>::const_iterator end ( ) const
noexcept

◆ end() [2/2]

std::vector<FLASHDeconvHelperStructs::LogMzPeak>::iterator end ( )
noexcept

◆ getAbsChargeRange()

std::tuple<int, int> getAbsChargeRange ( ) const

get charge range - the actual charge values

◆ getAbsDaError_()

float getAbsDaError_ ( LogMzPeak p) const
private

get Da error of a logMzPeak from the closest isotope

◆ getAbsPPMError_()

float getAbsPPMError_ ( const LogMzPeak p) const
private

get ppm error of a logMzPeak

◆ getAvgDaError()

float getAvgDaError ( ) const

get average mass ppm error;

◆ getAvgPPMError()

float getAvgPPMError ( ) const

get average mass ppm error;

◆ getChargeIntensity()

float getChargeIntensity ( int  abs_charge) const

get per abs_charge intenstiy

◆ getChargeIsotopeCosine()

float getChargeIsotopeCosine ( int  abs_charge) const

get per abs_charge isotope cosine

◆ getChargeScore()

float getChargeScore ( ) const

get charge score

◆ getChargeSNR()

float getChargeSNR ( int  abs_charge) const

get per abs_charge SNR

◆ getDecoyFlag()

PeakGroup::DecoyFlag getDecoyFlag ( ) const

get the decoy flag of this

◆ getIndex()

uint getIndex ( ) const

get index of this peak group

◆ getIntensity()

float getIntensity ( ) const

get intensity

◆ getIsotopeCosine()

float getIsotopeCosine ( ) const

get isotopic cosine score

◆ getIsotopeDaDistance()

double getIsotopeDaDistance ( ) const

get distance between consecutive isotopes

◆ getIsotopeIntensities()

const std::vector<float>& getIsotopeIntensities ( ) const

get per isotope intensities

◆ getMonoMass()

double getMonoMass ( ) const

get monoisotopic mass

◆ getMzRange()

std::tuple<double, double> getMzRange ( int  abs_charge) const

get mz range of the charge

◆ getQScore()

float getQScore ( ) const

get Q score

◆ getQvalue()

float getQvalue ( PeakGroup::DecoyFlag  flag = PeakGroup::DecoyFlag::target) const

get calculated qvalue

◆ getRepAbsCharge()

int getRepAbsCharge ( ) const

get representative charge

◆ getRepMzRange()

std::tuple<double, double> getRepMzRange ( ) const

get mz range that results in max QScore

◆ getScanNumber()

int getScanNumber ( ) const

get scan number

◆ getSNR()

float getSNR ( ) const

get total SNR

◆ isPositive()

bool isPositive ( ) const

get if it is positive mode

◆ isSignalMZ()

bool isSignalMZ ( double  mz,
double  tol 
) const

determine is an mz is a signal of this peakgroup. Input tol is ppm tolerance (e.g., 10.0 for 10ppm tolerance). Assume logMzPeaks are sorted.

◆ isTargeted()

bool isTargeted ( ) const

get if it is targeted

◆ operator<()

bool operator< ( const PeakGroup a) const

comparison operators

◆ operator=()

PeakGroup& operator= ( const PeakGroup t)
default

assignment operator

◆ operator==()

bool operator== ( const PeakGroup a) const

◆ operator>()

bool operator> ( const PeakGroup a) const

◆ operator[]()

const FLASHDeconvHelperStructs::LogMzPeak& operator[] ( Size  i) const

◆ push_back()

void push_back ( const FLASHDeconvHelperStructs::LogMzPeak pg)

vector operators for the LogMzPeaks in this PeakGroup

◆ recruitAllPeaksInSpectrum()

std::vector<LogMzPeak> recruitAllPeaksInSpectrum ( const MSSpectrum spec,
double  tol,
const FLASHDeconvHelperStructs::PrecalculatedAveragine avg,
double  mono_mass,
const std::unordered_set< int > &  excluded_integer_mzs_,
int  charge_offset = 0,
double  charge_multiple = 1.0,
double  mz_off = .0 
)

given a monoisotopic mass, recruit raw peaks from the raw input spectrum and add to this peakGroup. This is a bit time-consuming and is done for only a small number of selected high-quality peakgroups.

Parameters
specraw spectrum
tolmass tolerance
avgprecalculated averagine
mono_massmonoisotopic mass
excluded_integer_mzs_mzs that will be included - only for decoy generation
charge_offsetcharge offset from peaks to recruited peaks
charge_multiplecharge multiplication factor for recruited peaks
mz_offmz offset for recruited peaks
Returns
returns the noisy peaks for this peakgroup - i.e., the raw peaks within the range of this peakGroup that are not matched to any istope of this peakGroup mass.

◆ reserve()

void reserve ( Size  n)

◆ setAbsChargeRange()

void setAbsChargeRange ( int  min_abs_charge,
int  max_abs_charge 
)

set min_abs_charge and max_abs_charge charge range

◆ setAvgPPMError()

void setAvgPPMError ( float  error)

set average mass ppm error

◆ setChargeIsotopeCosine()

void setChargeIsotopeCosine ( int  abs_charge,
float  cos 
)

set per abs_charge isotope cosine

◆ setChargePowers_()

void setChargePowers_ ( int  abs_charge,
float  signal_pwr,
float  noise_pwr,
float  intensity 
)
private

set per abs_charge signal power

◆ setChargeScore()

void setChargeScore ( float  charge_score)

set charge score - for FLASHIda log file parsing

◆ setChargeSNR()

void setChargeSNR ( int  abs_charge,
float  c_snr 
)

set charge SNR manually - for FLASHIda log file parsing

◆ setDecoyFlag()

void setDecoyFlag ( PeakGroup::DecoyFlag  index)

for this PeakGroup, specify the decoy flag.

◆ setIndex()

void setIndex ( uint  i)

set index of this peak group

◆ setIsotopeCosine()

void setIsotopeCosine ( float  cos)

set isotope cosine score

◆ setIsotopeDaDistance()

void setIsotopeDaDistance ( double  d)

set distance between consecutive isotopes

◆ setQScore()

void setQScore ( float  qscore)

set Q score - for FLASHIda log file parsing

◆ setQvalue()

void setQvalue ( float  q,
PeakGroup::DecoyFlag  flag 
)

set qvalue.

◆ setRepAbsCharge()

void setRepAbsCharge ( int  max_qscore_charge)

set representative max_qscore_charge

◆ setScanNumber()

void setScanNumber ( int  scan_number)

set scan number

◆ setSNR()

void setSNR ( float  snr)

set SNR manually - for FLASHIda log file parsing

◆ setTargeted()

void setTargeted ( )

set if it is targeted

◆ shrink_to_fit()

void shrink_to_fit ( )

◆ size()

Size size ( ) const
noexcept

◆ sort()

void sort ( )

◆ swap()

void swap ( std::vector< FLASHDeconvHelperStructs::LogMzPeak > &  x)

◆ updateAvgDaError_()

void updateAvgDaError_ ( )
private

update avg Da error

◆ updateAvgPPMError_()

void updateAvgPPMError_ ( )
private

update avg ppm error

◆ updateChargeFitScoreAndChargeIntensities_()

void updateChargeFitScoreAndChargeIntensities_ ( )
private

update chargefit score and also update per charge intensities here.

◆ updateIsotopeCosineSNRAvgErrorAndQScore()

void updateIsotopeCosineSNRAvgErrorAndQScore ( const FLASHDeconvHelperStructs::PrecalculatedAveragine avg,
double  min_cos 
)

Update isotope cosine sore and qscore. Mono mass is also updated one last time. SNR, per charge SNR, and avg errors are updated here.

Parameters
avgprecalculated averagine
min_costhe peak groups with cosine score less than this will have QScore 0.

◆ updateMonomassAndIsotopeIntensities()

void updateMonomassAndIsotopeIntensities ( )

add monoisotopic indices of peaks by offset and discard negative isotope peaks. Total intensity is also updated

◆ updateSNR_()

void updateSNR_ ( )
private

using signal and total (signal + noise) power, update SNR value

Member Data Documentation

◆ avg_da_error_

float avg_da_error_ = 0
private

◆ avg_ppm_error_

float avg_ppm_error_ = 0
private

◆ charge_score_

float charge_score_
private

◆ decoy_flag_

PeakGroup::DecoyFlag decoy_flag_ = target
private

index to specify if this peak_group is a target (0), an isotope decoy (1), a noise (2), or a charge decoy (3)

◆ dl_matrices_

std::vector<Matrix<float> > dl_matrices_
private

Encoded matrix for DL scoring.

◆ index_

uint index_ = 0
private

peak group index

◆ intensity_

float intensity_
private

◆ is_positive_

bool is_positive_
private

is positive or not

◆ is_targeted_

bool is_targeted_ = false
private

if this peak group has been targeted

◆ iso_da_distance_

double iso_da_distance_ = Constants::ISOTOPE_MASSDIFF_55K_U
private

distance between consecutive isotopes. Can be different for decoys

◆ isotope_cosine_score_

float isotope_cosine_score_ = 0
private

◆ logMzpeaks_

std::vector<FLASHDeconvHelperStructs::LogMzPeak> logMzpeaks_
private

log Mz peaks

◆ max_abs_charge_

int max_abs_charge_ = -1
private

◆ max_qscore_abs_charge_

int max_qscore_abs_charge_ = -1
private

scoring variables

◆ min_abs_charge_

int min_abs_charge_ = 0
private

charge range

◆ monoisotopic_mass_

double monoisotopic_mass_ = -1.0
private

information on the deconvolved mass

◆ per_charge_cos_

std::vector<float> per_charge_cos_
private

◆ per_charge_int_

std::vector<float> per_charge_int_
private

◆ per_charge_noise_pwr_

std::vector<float> per_charge_noise_pwr_
private

◆ per_charge_signal_pwr_

std::vector<float> per_charge_signal_pwr_
private

per charge SNR, isotope cosine, and intensity vectors

◆ per_charge_snr_

std::vector<float> per_charge_snr_
private

◆ per_isotope_int_

std::vector<float> per_isotope_int_
private

per isotope intensity.

◆ qscore_

float qscore_ = .0f
private

◆ qvalue_

std::map<PeakGroup::DecoyFlag, float> qvalue_
private

qvalues with different decoy flags

◆ scan_number_

int scan_number_
private

scan number

◆ snr_

float snr_ = 0
private