![]() |
IsoSpec
2.1.2
|
The marginal distribution class (a subisotopologue). More...
#include <marginalTrek++.h>
Public Member Functions | |
Marginal (const double *_masses, const double *_probs, int _isotopeNo, int _atomCnt) | |
Class constructor. More... | |
Marginal & | operator= (const Marginal &other)=delete |
Marginal (const Marginal &other) | |
Copy constructor. | |
Marginal (Marginal &&other) | |
Move constructor. | |
virtual | ~Marginal () |
Destructor. | |
int | get_isotopeNo () const |
Get the number of isotopes of the investigated element. More... | |
const double * | get_lProbs () const |
double | getLightestConfMass () const |
Get the mass of the lightest subisotopologue. More... | |
double | getHeaviestConfMass () const |
Get the mass of the heaviest subisotopologue. More... | |
double | getMonoisotopicConfMass () const |
Get the mass of the monoisotopic subisotopologue. More... | |
double | getModeMass () |
The the mass of the mode subisotopologue. More... | |
double | getModeLProb () |
Get the log-probability of the mode subisotopologue. More... | |
double | fastGetModeLProb () |
Get the log-probability of the mode subisotopologue. Results undefined if ensureModeConf() wasn't called before. | |
Conf | computeModeConf () const |
The the probability of the mode subisotopologue. More... | |
double | getSmallestLProb () const |
The the log-probability of the lightest subisotopologue. More... | |
double | getAtomAverageMass () const |
The average mass of a single atom. More... | |
double | getTheoreticalAverageMass () const |
The theoretical average mass of the molecule. More... | |
double | variance () const |
Calculate the variance of the theoretical distribution describing the subisotopologue. | |
double | getLogSizeEstimate (double logEllipsoidRadius) const |
Return estimated logarithm of size of the marginal at a given ellipsoid radius. | |
void | ensureModeConf () |
Protected Member Functions | |
ISOSPEC_FORCE_INLINE double | unnormalized_logProb (Conf conf) const |
Calculate the log-probability of a given subisotopologue. More... | |
ISOSPEC_FORCE_INLINE double | logProb (Conf conf) const |
Protected Attributes | |
const unsigned int | isotopeNo |
const unsigned int | atomCnt |
const double *const | atom_lProbs |
const double *const | atom_masses |
const double | loggamma_nominator |
Conf | mode_conf |
double | mode_lprob |
The marginal distribution class (a subisotopologue).
This class mostly provides some basic common API for subclasses, but itself is not abstract. This class represents the probability distribution generated by one element only – a subisotopologue. For instance, it might be the distribution of C200, that might be part of, say, C200H402. It corresponds to the multinomial distribution, where each configuration can also be attributed a precise mass. The constructor method perform initial hill-climbing to find the most probable sub-isotopologue (the mode).
Definition at line 42 of file marginalTrek++.h.
IsoSpec::Marginal::Marginal | ( | const double * | _masses, |
const double * | _probs, | ||
int | _isotopeNo, | ||
int | _atomCnt | ||
) |
Class constructor.
_masses | A table of masses of the stable isotopes of the investigated element, e.g. for C10 it is 2: C12 and C13. |
_probs | A table of natural frequencies of the stable isotopes of the investigated element, see IUPAC at https://iupac.org/isotopesmatter/ |
_isotopeNo | Number of isotopes of a given element. |
_atomCnt | The number of atoms of the given element, e.g. 10 for C10. |
Definition at line 165 of file marginalTrek++.cpp.
Conf IsoSpec::Marginal::computeModeConf | ( | ) | const |
The the probability of the mode subisotopologue.
Definition at line 235 of file marginalTrek++.cpp.
|
inline |
Get the number of isotopes of the investigated element.
Definition at line 88 of file marginalTrek++.h.
double IsoSpec::Marginal::getAtomAverageMass | ( | ) | const |
The average mass of a single atom.
Definition at line 281 of file marginalTrek++.cpp.
double IsoSpec::Marginal::getHeaviestConfMass | ( | ) | const |
Get the mass of the heaviest subisotopologue.
This is trivially obtained by considering all atomNo atoms to be the heaviest isotope possible.
Definition at line 259 of file marginalTrek++.cpp.
double IsoSpec::Marginal::getLightestConfMass | ( | ) | const |
Get the mass of the lightest subisotopologue.
This is trivially obtained by considering all atomNo atoms to be the lightest isotope possible.
Definition at line 250 of file marginalTrek++.cpp.
|
inline |
Get the log-probability of the mode subisotopologue.
Definition at line 121 of file marginalTrek++.h.
|
inline |
The the mass of the mode subisotopologue.
Definition at line 115 of file marginalTrek++.h.
double IsoSpec::Marginal::getMonoisotopicConfMass | ( | ) | const |
Get the mass of the monoisotopic subisotopologue.
The monoisotopic subisotopologue is defined as the molecule consiting only of the most likely isotope. This is frequently the lightest subisotopologue, making this frequently (but not always) equal to getLightestConfMass()
Definition at line 268 of file marginalTrek++.cpp.
|
inline |
The the log-probability of the lightest subisotopologue.
Definition at line 139 of file marginalTrek++.h.
|
inline |
The theoretical average mass of the molecule.
Definition at line 151 of file marginalTrek++.h.
|
inlineprotected |
Calculate the log-probability of a given subisotopologue.
conf | A subisotopologue (a table of integers describing subsequent isotope-counts). |
Definition at line 159 of file marginalTrek++.h.
|
protected |
Table of log-probabilities of all the isotopeNo isotopes.
Definition at line 49 of file marginalTrek++.h.
|
protected |
Table of atomic masses of all the isotopeNo isotopes.
Definition at line 50 of file marginalTrek++.h.
|
protected |
The number of atoms of the given element.
Definition at line 48 of file marginalTrek++.h.
|
protected |
The number of isotopes of the given element.
Definition at line 47 of file marginalTrek++.h.
|
protected |
The constant nominator that appears in the expressions for the multinomial probabilities.
Definition at line 51 of file marginalTrek++.h.
|
protected |
A subisotopologue with most probability. If not unique, one of the representatives of that class of subisotopologues.
Definition at line 52 of file marginalTrek++.h.
|
protected |
The log-probability of the mode subisotopologue.
Definition at line 53 of file marginalTrek++.h.