OpenMS
2.8.0

Generate a pset of configurations for a given p (that is, a set of configurations such that their probabilities sum up to p). The p in normal usage will usually be close to 1 (e.g. 0.99). More...
#include <OpenMS/CHEMISTRY/ISOTOPEDISTRIBUTION/IsoSpecWrapper.h>
Public Member Functions  
IsoSpecTotalProbGeneratorWrapper (const std::vector< int > &isotopeNumbers, const std::vector< int > &atomCounts, const std::vector< std::vector< double > > &isotopeMasses, const std::vector< std::vector< double > > &isotopeProbabilities, double p)  
Constructor. More...  
IsoSpecTotalProbGeneratorWrapper (const IsoSpecTotalProbGeneratorWrapper &)=delete  
IsoSpecTotalProbGeneratorWrapper (const EmpiricalFormula &formula, double p)  
Setup the algorithm to run on an EmpiricalFormula. More...  
~IsoSpecTotalProbGeneratorWrapper ()  
bool  nextConf () final 
Move the generator to a next isotopologue. More...  
Peak1D  getConf () final 
Obtain the current isotopologue. More...  
double  getMass () final 
Obtain the mass of the current isotopologue. More...  
double  getIntensity () final 
Obtain the intensity (probability, relative peak height) of the current configuration. More...  
double  getLogIntensity () final 
Obtain the natural logarithm of the intensity (probability, relative peak height) of the current configuration. More...  
Public Member Functions inherited from IsoSpecGeneratorWrapper  
virtual  ~IsoSpecGeneratorWrapper ()=default 
Destructor. More...  
Protected Attributes  
std::unique_ptr< IsoSpec::IsoLayeredGenerator >  ILG 
Generate a pset of configurations for a given p (that is, a set of configurations such that their probabilities sum up to p). The p in normal usage will usually be close to 1 (e.g. 0.99).
An optimal pset of isotopologues is the smallest set of isotopologues that, taken together, cover at least p of the probability space (that is, their probabilities sum up to at least p). This means that the computed spectrum is accurate to at least degree p, and that the L1 distance between the computed spectrum and the true spectrum is less than 1p. The optimality of the pset means that it contains the most probable configurations  any isotopologues outside of the returned pset have lower intensity than the configurations in the pset.
This is the method most users will want: the p parameter directly controls the accuracy of results.
Advanced usage note: The algorithm works by computing an optimal p'set for a p' slightly larger than the requested p. By default these extra isotopologues are returned too (as they have to be computed anyway). It is possible to request them to be discarded, but not in the generator class  one should use IsoSpecTotalProbWrapper instead, at a greater computational and memory cost.
The p is used as a hint for the algorithm  configurations will be returned in such an order that once the total accumulated probability crosses p, the returned set will be close to optimal. If exactly the optimal set is required, one should use (again, at an increased cost) the IsoSpecTotalProbWrapper class. The generator will still go over the entire configuration space if the user keeps requesting more configurations after crossing p.
IsoSpecTotalProbGeneratorWrapper  (  const std::vector< int > &  isotopeNumbers, 
const std::vector< int > &  atomCounts,  
const std::vector< std::vector< double > > &  isotopeMasses,  
const std::vector< std::vector< double > > &  isotopeProbabilities,  
double  p  
) 
Constructor.
isotopeNumbers  A vector of how many isotopes each element has, e.g. [2, 2, 3]) 
atomCounts  How many atoms of each we have [e.g. 12, 6, 6 for Glucose] 
isotopeMasses  Array with the individual elements isotopic masses 
isotopeProbabilities  Array with the individual elements isotopic probabilities 
p  Total coverage of probability space desired, usually close to 1 (e.g. 0.99) 

delete 
IsoSpecTotalProbGeneratorWrapper  (  const EmpiricalFormula &  formula, 
double  p  
) 
Setup the algorithm to run on an EmpiricalFormula.

finalvirtual 
Obtain the current isotopologue.
Implements IsoSpecGeneratorWrapper.

finalvirtual 
Obtain the intensity (probability, relative peak height) of the current configuration.
Implements IsoSpecGeneratorWrapper.

finalvirtual 
Obtain the natural logarithm of the intensity (probability, relative peak height) of the current configuration.
This will be more precise (and faster) than just calling std::log(getIntensity())  it will produce correct results even for configurations so unlikely that the doubleprecision floating point number returned from getIntensity() underflows to zero.
Implements IsoSpecGeneratorWrapper.

finalvirtual 
Obtain the mass of the current isotopologue.
Implements IsoSpecGeneratorWrapper.

finalvirtual 
Move the generator to a next isotopologue.
Advance the internal generator to the next isotopologue. The value returned determines whether the generator has been exhausted (that is, all eligible configurations have already been visited). It is invalid to call any other generator methods before the first call to nextConf(), as well as after this method returns false.
Implements IsoSpecGeneratorWrapper.

protected 