![]() |
OpenMS
|
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 | TargetDummyType { target = 0 , charge_dummy , noise_dummy , isotope_dummy } |
| target dummy type of PeakGroup. This specifies if a PeakGroup is a target (0), charge dummy (1), noise dummy (2), or isotope dummy (3). 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 |
| PeakGroup & | operator= (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... | |
| int | updateQscore (std::vector< LogMzPeak > &noisy_peaks, const FLASHDeconvHelperStructs::PrecalculatedAveragine &avg, double min_cos, int allowed_iso_error=1) |
| Update Qscore. Cosine and SNRs are also updated. More... | |
| std::vector< LogMzPeak > | recruitAllPeaksInSpectrum (const MSSpectrum &spec, double tol, const FLASHDeconvHelperStructs::PrecalculatedAveragine &avg, double mono_mass, const std::unordered_set< double > &excluded_peak_mzs) |
| 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_snr_abs_charge) |
| set representative max_snr_abs_charge More... | |
| void | setMonoisotopicMass (double mono_mass) |
| set monoisotopic mass More... | |
| void | Qscore (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, double > | getRepMzRange () const |
| get mz range that results in max Qscore More... | |
| std::tuple< double, double > | getMzRange (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::TargetDummyType | getTargetDummyType () const |
| get the target dummy type of this More... | |
| void | setTargetDummyType (PeakGroup::TargetDummyType index) |
| for this PeakGroup, specify the target dummy type. More... | |
| float | getQvalue (PeakGroup::TargetDummyType target_dummy_type=PeakGroup::TargetDummyType::target) const |
| void | setQvalue (float q, PeakGroup::TargetDummyType target_dummy_type) |
| void | setIsotopeDaDistance (double d) |
| set distance between consecutive isotopes More... | |
| double | getIsotopeDaDistance () const |
| get distance between consecutive isotopes More... | |
| int | getMinNegativeIsotopeIndex () const |
| get minimum neagative isotope index 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::LogMzPeak & | operator[] (Size i) const |
| std::vector< FLASHDeconvHelperStructs::LogMzPeak >::const_iterator | getNoisePeakBegin () const noexcept |
| iterators for the noisy LogMz peaks in this PeakGroup More... | |
| std::vector< FLASHDeconvHelperStructs::LogMzPeak >::const_iterator | getNoisePeakEnd () const noexcept |
| std::vector< FLASHDeconvHelperStructs::LogMzPeak >::iterator | getNoisePeakBegin () noexcept |
| std::vector< FLASHDeconvHelperStructs::LogMzPeak >::iterator | getNoisePeakEnd () noexcept |
| void | push_back (const FLASHDeconvHelperStructs::LogMzPeak &pg) |
| vector operators for the LogMzPeaks in this PeakGroup More... | |
| Size | size () const noexcept |
| void | reserve (Size n) |
| bool | empty () const |
| void | swap (std::vector< FLASHDeconvHelperStructs::LogMzPeak > &x) |
| void | sort () |
Private Types | |
| typedef FLASHDeconvHelperStructs::LogMzPeak | LogMzPeak |
| typedef FLASHDeconvHelperStructs::PrecalculatedAveragine | PrecalculatedAveragine |
Private Member Functions | |
| 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... | |
| void | clear_ () |
| clear peaks More... | |
| void | updatePerChargeInformation_ (const std::vector< LogMzPeak > &noisy_peaks) |
| update per charge intensities, noise power, and squared intensities. used for SNR estimation More... | |
| void | updateChargeRange_ (std::vector< LogMzPeak > &noisy_peaks) |
| update the charge range using the calculated per charge information More... | |
| void | updatePerChargeCos_ (const FLASHDeconvHelperStructs::PrecalculatedAveragine &avg) |
| update per charge cosine values More... | |
| float | getNoisePeakPower_ (const std::vector< LogMzPeak > &noisy_peaks, const std::vector< LogMzPeak > &signal_peaks) const |
Private Attributes | |
| std::vector< FLASHDeconvHelperStructs::LogMzPeak > | logMzpeaks_ |
| log Mz peaks More... | |
| std::vector< FLASHDeconvHelperStructs::LogMzPeak > | negative_iso_peaks_ |
| negative isotope index peaks More... | |
| std::vector< float > | per_charge_sum_signal_squared_ |
| per charge SNR, isotope cosine, and intensity vectors More... | |
| std::vector< float > | per_charge_noise_pwr_ |
| std::vector< float > | per_charge_cos_ |
| std::vector< float > | per_charge_int_ |
| std::vector< float > | per_charge_snr_ |
| std::vector< float > | per_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_ = 0 |
| scan number More... | |
| bool | is_positive_ = false |
| 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_ = 0 |
| PeakGroup::TargetDummyType | target_dummy_type_ = target |
| index to specify if this peak_group is a target (0), an isotope dummy (1), a noise (2), or a charge dummy (3) More... | |
| int | min_negative_isotope_index_ = -1 |
| up to which negative isotope index should be considered. By considereing negative istoopes, one can reduce isotope index error. More... | |
| double | iso_da_distance_ = Constants::ISOTOPE_MASSDIFF_55K_U |
| distance between consecutive isotopes. Can be different for dummys More... | |
| int | max_snr_abs_charge_ = -1 |
| scoring variables More... | |
| float | isotope_cosine_score_ = 0 |
| float | charge_score_ = 0 |
| float | qscore_ = .0f |
| float | avg_ppm_error_ = 0 |
| float | avg_da_error_ = 0 |
| float | snr_ = 0 |
| std::map< PeakGroup::TargetDummyType, float > | qvalue_ |
| q values with different dummy types More... | |
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.
|
private |
| enum TargetDummyType |
|
default |
default constructor
|
explicit |
Constructor specifying charge range.
| min_abs_charge | min Charge |
| max_abs_charge | max Charge |
| is_positive | whether MS is positive mode |
|
default |
default destructor
|
noexcept |
iterators for the signal LogMz peaks in this PeakGroup
|
noexcept |
|
private |
clear peaks
| bool empty | ( | ) | const |
|
noexcept |
|
noexcept |
| std::tuple<int, int> getAbsChargeRange | ( | ) | const |
get charge range - the actual charge values
|
private |
get Da error of a logMzPeak from the closest isotope
|
private |
get ppm error of a logMzPeak
| float getAvgDaError | ( | ) | const |
get average mass ppm error;
| float getAvgPPMError | ( | ) | const |
get average mass ppm error;
| float getChargeIntensity | ( | int | abs_charge | ) | const |
get per abs_charge intenstiy
| float getChargeIsotopeCosine | ( | int | abs_charge | ) | const |
get per abs_charge isotope cosine
| float getChargeScore | ( | ) | const |
get charge score
| float getChargeSNR | ( | int | abs_charge | ) | const |
get per abs_charge SNR
| uint getIndex | ( | ) | const |
get index of this peak group
| float getIntensity | ( | ) | const |
get intensity
| float getIsotopeCosine | ( | ) | const |
get isotopic cosine score
| double getIsotopeDaDistance | ( | ) | const |
get distance between consecutive isotopes
| const std::vector<float>& getIsotopeIntensities | ( | ) | const |
get per isotope intensities
| int getMinNegativeIsotopeIndex | ( | ) | const |
get minimum neagative isotope index
| double getMonoMass | ( | ) | const |
get monoisotopic mass
| std::tuple<double, double> getMzRange | ( | int | abs_charge | ) | const |
get mz range of the charge
|
noexcept |
iterators for the noisy LogMz peaks in this PeakGroup
|
noexcept |
|
noexcept |
|
noexcept |
|
private |
calculate noisy peak power. The goal of this function is to group noisy peaks that are possibly from the same molecule and sum their intensities before calculate power
| noisy_peaks | noisy peaks to calculate power |
| signal_peaks | signal peaks - they may make a part of noisy isotopes |
| float getQscore | ( | ) | const |
get Q score
| float getQvalue | ( | PeakGroup::TargetDummyType | target_dummy_type = PeakGroup::TargetDummyType::target | ) | const |
Get q values for different target_dummy_type. For charge, noise, isotope dummy types, q values corresponding to the type will be returned. For target (default), the final q value is calculated by summing the q values of all dummy types and returned.
| target_dummy_type | This target_dummy_type_ specifies if a PeakGroup is a target (0), charge dummy (1), noise dummy (2), or isotope dummy (3) |
| int getRepAbsCharge | ( | ) | const |
get representative charge
| std::tuple<double, double> getRepMzRange | ( | ) | const |
get mz range that results in max Qscore
| int getScanNumber | ( | ) | const |
get scan number
| float getSNR | ( | ) | const |
get total SNR
| PeakGroup::TargetDummyType getTargetDummyType | ( | ) | const |
get the target dummy type of this
| bool isPositive | ( | ) | const |
get if it is positive mode
| 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.
| bool isTargeted | ( | ) | const |
get if it is targeted
| bool operator< | ( | const PeakGroup & | a | ) | const |
comparison operators
| bool operator== | ( | const PeakGroup & | a | ) | const |
| bool operator> | ( | const PeakGroup & | a | ) | const |
| const FLASHDeconvHelperStructs::LogMzPeak& operator[] | ( | Size | i | ) | const |
| void push_back | ( | const FLASHDeconvHelperStructs::LogMzPeak & | pg | ) |
vector operators for the LogMzPeaks in this PeakGroup
Referenced by TOPPFLASHDeconv::main_().
| void Qscore | ( | float | qscore | ) |
set Q score - for FLASHIda log file parsing
Referenced by TOPPFLASHDeconv::main_().
| std::vector<LogMzPeak> recruitAllPeaksInSpectrum | ( | const MSSpectrum & | spec, |
| double | tol, | ||
| const FLASHDeconvHelperStructs::PrecalculatedAveragine & | avg, | ||
| double | mono_mass, | ||
| const std::unordered_set< double > & | excluded_peak_mzs | ||
| ) |
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.
| spec | raw spectrum |
| tol | mass tolerance |
| avg | precalculated averagine |
| mono_mass | monoisotopic mass |
| excluded_peak_mzs | mzs that will be included - only for dummy generation |
| void reserve | ( | Size | n | ) |
| void setAbsChargeRange | ( | int | min_abs_charge, |
| int | max_abs_charge | ||
| ) |
set min_abs_charge and max_abs_charge charge range
| void setAvgPPMError | ( | float | error | ) |
set average mass ppm error
| void setChargeIsotopeCosine | ( | int | abs_charge, |
| float | cos | ||
| ) |
set per abs_charge isotope cosine
| void setChargeScore | ( | float | charge_score | ) |
set charge score - for FLASHIda log file parsing
| void setChargeSNR | ( | int | abs_charge, |
| float | c_snr | ||
| ) |
set charge SNR manually - for FLASHIda log file parsing
Referenced by TOPPFLASHDeconv::main_().
| void setIndex | ( | uint | i | ) |
set index of this peak group
| void setIsotopeCosine | ( | float | cos | ) |
set isotope cosine score
| void setIsotopeDaDistance | ( | double | d | ) |
set distance between consecutive isotopes
| void setMonoisotopicMass | ( | double | mono_mass | ) |
set monoisotopic mass
Referenced by TOPPFLASHDeconv::main_().
| void setQvalue | ( | float | q, |
| PeakGroup::TargetDummyType | target_dummy_type | ||
| ) |
Set peakGroup q-value for different TargetDummyType. Q values are stored per TargetDummyType and later used for final q value calculation.
| q | The q-value |
| target_dummy_type | This target_dummy_type_ specifies if a PeakGroup is a target (0), charge dummy (1), noise dummy (2), or isotope dummy (3) |
| void setRepAbsCharge | ( | int | max_snr_abs_charge | ) |
set representative max_snr_abs_charge
| void setScanNumber | ( | int | scan_number | ) |
set scan number
| void setSNR | ( | float | snr | ) |
set SNR manually - for FLASHIda log file parsing
Referenced by TOPPFLASHDeconv::main_().
| void setTargetDummyType | ( | PeakGroup::TargetDummyType | index | ) |
for this PeakGroup, specify the target dummy type.
| void setTargeted | ( | ) |
set if it is targeted
|
noexcept |
| void sort | ( | ) |
| void swap | ( | std::vector< FLASHDeconvHelperStructs::LogMzPeak > & | x | ) |
|
private |
update avg Da error
|
private |
update avg ppm error
|
private |
update chargefit score and also update per charge intensities here.
|
private |
update the charge range using the calculated per charge information
| void updateMonoMassAndIsotopeIntensities | ( | ) |
add monoisotopic indices of peaks by offset and discard negative isotope peaks. Total intensity is also updated
|
private |
update per charge cosine values
|
private |
update per charge intensities, noise power, and squared intensities. used for SNR estimation
| int updateQscore | ( | std::vector< LogMzPeak > & | noisy_peaks, |
| const FLASHDeconvHelperStructs::PrecalculatedAveragine & | avg, | ||
| double | min_cos, | ||
| int | allowed_iso_error = 1 |
||
| ) |
Update Qscore. Cosine and SNRs are also updated.
| noisy_peaks | noisy peaks to calculate Qscore |
| avg | precalculated averagine |
| min_cos | the peak groups with cosine score less than this will have Qscore 0. |
| allowed_iso_error | this set the allowed isotope error in dummy mass generation. |
|
private |
using signal and total (signal + noise) power, update SNR value
|
private |
|
private |
|
private |
|
private |
peak group index
|
private |
|
private |
is positive or not
|
private |
if this peak group has been targeted
|
private |
distance between consecutive isotopes. Can be different for dummys
|
private |
|
private |
log Mz peaks
|
private |
|
private |
scoring variables
|
private |
charge range
|
private |
up to which negative isotope index should be considered. By considereing negative istoopes, one can reduce isotope index error.
|
private |
information on the deconvolved mass
|
private |
negative isotope index peaks
|
private |
|
private |
|
private |
|
private |
|
private |
per charge SNR, isotope cosine, and intensity vectors
|
private |
per isotope intensity.
|
private |
|
private |
q values with different dummy types
|
private |
scan number
|
private |
|
private |
index to specify if this peak_group is a target (0), an isotope dummy (1), a noise (2), or a charge dummy (3)