logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

IsoSpec::Marginal - The marginal distribution class (a subisotopologue).

Author

       Generated automatically by Doxygen for IsoSpec from the source code.

IsoSpec                                           Version 2.2.1                             IsoSpec::Marginal(3)

Constructor & Destructor Documentation

IsoSpec::Marginal::Marginal(constdouble*_masses,constdouble*_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.

   IsoSpec::Marginal::Marginal(constMarginal&other)
       Copy constructor.

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

   IsoSpec::Marginal::Marginal(Marginal&&other)
       Move constructor.

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

   IsoSpec::Marginal::~Marginal()[virtual]
       Destructor.

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

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

Member Data Documentation

constdouble*constIsoSpec::Marginal::atom_lProbs[protected]
       Table of log-probabilities of all the isotopeNo isotopes.

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

   constdouble*constIsoSpec::Marginal::atom_masses[protected]
       Table of atomic masses of all the isotopeNo isotopes.

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

   constunsignedintIsoSpec::Marginal::atomCnt[protected]
       The number of atoms of the given element.

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

   constunsignedintIsoSpec::Marginal::isotopeNo[protected]
       The number of isotopes of the given element.

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

   constdoubleIsoSpec::Marginal::loggamma_nominator[protected]
       The constant nominator that appears in the expressions for the multinomial probabilities.

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

   ConfIsoSpec::Marginal::mode_conf[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.

   doubleIsoSpec::Marginal::mode_lprob[protected]
       The log-probability of the mode subisotopologue.

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

Member Function Documentation

ConfIsoSpec::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.

   voidIsoSpec::Marginal::ensureModeConf()[inline]
       Definition at line 168 of file marginalTrek++.h.

   doubleIsoSpec::Marginal::fastGetModeLProb()[inline]
       Get the log-probability of the mode subisotopologue. Results undefined if ensureModeConf() wasn't called
       before.

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

   intIsoSpec::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 88 of file marginalTrek++.h.

   constdouble*IsoSpec::Marginal::get_lProbs()const[inline]
       Definition at line 90 of file marginalTrek++.h.

   doubleIsoSpec::Marginal::getAtomAverageMass()const
       The average mass of a single atom.

       Returns
           The average mass of a single atom.

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

   doubleIsoSpec::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.

   doubleIsoSpec::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.

   doubleIsoSpec::Marginal::getLogSizeEstimate(doublelogEllipsoidRadius)const
       Return estimated logarithm of size of the marginal at a given ellipsoid radius.

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

   doubleIsoSpec::Marginal::getModeLProb()[inline]
       Get the log-probability of the mode subisotopologue.

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

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

   doubleIsoSpec::Marginal::getModeMass()[inline]
       The the mass of the mode subisotopologue.

       Returns
           The mass of one of the most probable subisotopologues.

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

   doubleIsoSpec::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.

   doubleIsoSpec::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 139 of file marginalTrek++.h.

   doubleIsoSpec::Marginal::getTheoreticalAverageMass()const[inline]
       The theoretical average mass of the molecule.

       Returns
           The theoretical average mass of the molecule.

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

   ISOSPEC_FORCE_INLINEdoubleIsoSpec::Marginal::logProb(Confconf)const[inline],[protected]
       Definition at line 160 of file marginalTrek++.h.

   ISOSPEC_FORCE_INLINEdoubleIsoSpec::Marginal::unnormalized_logProb(Confconf)const[inline],[protected]
       Calculate the log-probability of a given subisotopologue.

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

       Returns
           The log-probability of the input subisotopologue.

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

   doubleIsoSpec::Marginal::variance()const
       Calculate the variance of the theoretical distribution describing the subisotopologue.

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

Name

       IsoSpec::Marginal - The marginal distribution class (a subisotopologue).

Synopsis

       #include <marginalTrek++.h>

       Inherited by IsoSpec::LayeredMarginal, IsoSpec::MarginalTrek, and IsoSpec::PrecalculatedMarginal.

   PublicMemberFunctionsMarginal (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.
       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 ()

   ProtectedMemberFunctions
       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

   ProtectedAttributes
       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

See Also