Loading...
Searching...
No Matches
IsoSpec::Marginal Class Reference

The marginal distribution class (a subisotopologue). More...

`#include <marginalTrek++.h>`

Inheritance diagram for IsoSpec::Marginal:

## Public Member Functions

| Marginal (const double *_masses, const double *_probs, int _isotopeNo, int _atomCnt)
| Class constructor.
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.
const double * | get_lProbs () const
double | getLightestConfMass () const
| Get the mass of the lightest subisotopologue.
double | getHeaviestConfMass () const
| Get the mass of the heaviest subisotopologue.
double | getMonoisotopicConfMass () const
| Get the mass of the monoisotopic subisotopologue.
size_t | getMonoisotopicAtomIndex () const
| Get the index of the monoisotopic (most probable) atom.
double | getModeMass ()
| The the mass of the mode subisotopologue.
double | getModeLProb ()
| Get the log-probability of the mode subisotopologue.
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.
double | getSmallestLProb () const
| The the log-probability of the lightest subisotopologue.
double | getAtomAverageMass () const
| The average mass of a single atom.
double | getTheoreticalAverageMass () const
| The theoretical average mass of the molecule.
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.
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

## Detailed Description

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 43 of file marginalTrek++.h.

## Constructor & Destructor Documentation

## Marginal() [1/3]

IsoSpec::Marginal::Marginal | ( | const double * | _masses,
|  | const double * | _probs,
|  | int | _isotopeNo,
|  | int | _atomCnt )

Class constructor.

Parameters

  _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.

Returns
  An instance of the Marginal class.

Definition at line 165 of file marginalTrek++.cpp.

## Marginal() [2/3]

IsoSpec::Marginal::Marginal | ( | const Marginal & | other | ) |

Copy constructor.

Definition at line 181 of file marginalTrek++.cpp.

## Marginal() [3/3]

IsoSpec::Marginal::Marginal | ( | Marginal && | other | ) |

Move constructor.

Definition at line 203 of file marginalTrek++.cpp.

## ~Marginal()

IsoSpec::Marginal::~Marginal | ( |  | ) |

virtual

Destructor.

Definition at line 224 of file marginalTrek++.cpp.

## Member Function Documentation

## computeModeConf()

Conf IsoSpec::Marginal::computeModeConf | ( |  | ) | const

The the probability of the mode subisotopologue.

Returns
  The probability of a/the most probable subisotopologue. Computes and returns the mode configuration, a isotopeNo-large array that the caller is responsible for delete[]-ing.

Definition at line 235 of file marginalTrek++.cpp.

## ensureModeConf()

void IsoSpec::Marginal::ensureModeConf | ( |  | ) |

inline

Definition at line 176 of file marginalTrek++.h.

## fastGetModeLProb()

double IsoSpec::Marginal::fastGetModeLProb | ( |  | ) |

inline

Get the log-probability of the mode subisotopologue. Results undefined if ensureModeConf() wasn't called before.

Definition at line 132 of file marginalTrek++.h.

## get_isotopeNo()

int IsoSpec::Marginal::get_isotopeNo | ( |  | ) | const

inline

Get the number of isotopes of the investigated element.

Returns
  The integer number of isotopes of the investigated element.

Definition at line 89 of file marginalTrek++.h.

## get_lProbs()

const double * IsoSpec::Marginal::get_lProbs | ( |  | ) | const

inline

Definition at line 91 of file marginalTrek++.h.

## getAtomAverageMass()

double IsoSpec::Marginal::getAtomAverageMass | ( |  | ) | const

The average mass of a single atom.

Returns
  The average mass of a single atom.

Definition at line 287 of file marginalTrek++.cpp.

## getHeaviestConfMass()

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.

Returns
  The mass of the heaviest subisotopologue.

Definition at line 259 of file marginalTrek++.cpp.

## getLightestConfMass()

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.

Returns
  The mass of the lightiest subisotopologue.

Definition at line 250 of file marginalTrek++.cpp.

## getLogSizeEstimate()

double IsoSpec::Marginal::getLogSizeEstimate | ( | double | logEllipsoidRadius | ) | const

Return estimated logarithm of size of the marginal at a given ellipsoid radius.

Definition at line 307 of file marginalTrek++.cpp.

## getModeLProb()

double IsoSpec::Marginal::getModeLProb | ( |  | ) |

inline

Get the log-probability of the mode subisotopologue.

Returns
  The log-probability of a/the most probable subisotopologue.

Definition at line 129 of file marginalTrek++.h.

## getModeMass()

double IsoSpec::Marginal::getModeMass | ( |  | ) |

inline

The the mass of the mode subisotopologue.

Returns
  The mass of one of the most probable subisotopologues.

Definition at line 123 of file marginalTrek++.h.

## getMonoisotopicAtomIndex()

size_t IsoSpec::Marginal::getMonoisotopicAtomIndex | ( |  | ) | const

Get the index of the monoisotopic (most probable) atom.

Returns
  The index of the most probable isotope of the element.

Definition at line 268 of file marginalTrek++.cpp.

## getMonoisotopicConfMass()

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 281 of file marginalTrek++.cpp.

## getSmallestLProb()

double IsoSpec::Marginal::getSmallestLProb | ( |  | ) | const

inline

The the log-probability of the lightest subisotopologue.

Returns
  The logarithm of the smallest non-zero probability of a subisotopologue.

Definition at line 147 of file marginalTrek++.h.

## getTheoreticalAverageMass()

double IsoSpec::Marginal::getTheoreticalAverageMass | ( |  | ) | const

inline

The theoretical average mass of the molecule.

Returns
  The theoretical average mass of the molecule.

Definition at line 159 of file marginalTrek++.h.

## logProb()

ISOSPEC_FORCE_INLINE double IsoSpec::Marginal::logProb | ( | Conf | conf | ) | const

inline protected

Definition at line 168 of file marginalTrek++.h.

## unnormalized_logProb()

ISOSPEC_FORCE_INLINE double IsoSpec::Marginal::unnormalized_logProb | ( | Conf | conf | ) | const

inline protected

Calculate the log-probability of a given subisotopologue.

Parameters

  conf | A subisotopologue (a table of integers describing subsequent isotope-counts).

Returns
  The log-probability of the input subisotopologue.

Definition at line 167 of file marginalTrek++.h.

## variance()

double IsoSpec::Marginal::variance | ( |  | ) | const

Calculate the variance of the theoretical distribution describing the subisotopologue.

Definition at line 295 of file marginalTrek++.cpp.

## Member Data Documentation

## atom_lProbs

const double* const IsoSpec::Marginal::atom_lProbs

protected

Table of log-probabilities of all the isotopeNo isotopes.

Definition at line 50 of file marginalTrek++.h.

## atom_masses

const double* const IsoSpec::Marginal::atom_masses

protected

Table of atomic masses of all the isotopeNo isotopes.

Definition at line 51 of file marginalTrek++.h.

## atomCnt

const unsigned int IsoSpec::Marginal::atomCnt

protected

The number of atoms of the given element.

Definition at line 49 of file marginalTrek++.h.

## isotopeNo

const unsigned int IsoSpec::Marginal::isotopeNo

protected

The number of isotopes of the given element.

Definition at line 48 of file marginalTrek++.h.

## loggamma_nominator

const double IsoSpec::Marginal::loggamma_nominator

protected

The constant nominator that appears in the expressions for the multinomial probabilities.

Definition at line 52 of file marginalTrek++.h.

## mode_conf

Conf IsoSpec::Marginal::mode_conf

protected

A subisotopologue with most probability. If not unique, one of the representatives of that class of subisotopologues.

Definition at line 53 of file marginalTrek++.h.

## mode_lprob

double IsoSpec::Marginal::mode_lprob

protected

The log-probability of the mode subisotopologue.

Definition at line 54 of file marginalTrek++.h.

The documentation for this class was generated from the following files:

- /build/isospec-8QB56o/isospec-2.3.2/src/IsoSpec++/marginalTrek++.h
- /build/isospec-8QB56o/isospec-2.3.2/src/IsoSpec++/marginalTrek++.cpp