---
name: "IsoSpec_IsoGenerator"
section: "3"
platform: "linux"
package: "libisospec++-dev"
version: "2.2.1-4.1+b3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/IsoSpec_IsoGenerator"
---

# IsoSpec\_IsoGenerator(3)

The generator of isotopologues.

## NAME

IsoSpec::IsoGenerator - The generator of isotopologues.

## SYNOPSIS

`#include <isoSpec++.h>`

Inherits **IsoSpec::Iso**.

Inherited by **IsoSpec::IsoLayeredGenerator**, **IsoSpec::IsoOrderedGenerator**, **IsoSpec::IsoStochasticGenerator**, and **IsoSpec::IsoThresholdGenerator**.

### Public Member Functions

virtual bool **advanceToNextConfiguration** ()=0\
 Advance to the next, not yet visited, most probable isotopologue.  virtual double **lprob** () const\
 Get the log-probability of the current isotopologue.  virtual double **mass** () const\
 Get the mass of the current isotopologue.  virtual double **prob** () const\
 Get the probability of the current isotopologue.  virtual void **get\_conf\_signature** (int \*space) const =0\
 Write the signature of configuration into target memory location. It must be large enough to accomodate it.  **IsoGenerator** (**Iso** &&iso, bool alloc\_partials=true)\
 Move constructor.  virtual **~IsoGenerator** ()\
 Destructor.

Public Member Functions inherited from **IsoSpec::Iso** **Iso** (int \_dimNumber, const int \*\_isotopeNumbers, const int \*\_atomCounts, const double \*\_isotopeMasses, const double \*\_isotopeProbabilities)\
 General constructror.  **Iso** (int \_dimNumber, const int \*\_isotopeNumbers, const int \*\_atomCounts, const double \*const \*\_isotopeMasses, const double \*const \*\_isotopeProbabilities)\
 **Iso** (const char \*formula, bool use\_nominal\_masses=false)\
 Constructor from the formula object.  **Iso** (const std::string &formula, bool use\_nominal\_masses=false)\
 Constructor from C++ std::string chemical formula.  **Iso** (**Iso** &&other)\
 The move constructor.  **Iso** & **operator=** (const **Iso** &other)=delete\
 **Iso** (const **Iso** &other, bool fullcopy)\
 The copy constructor.  virtual **~Iso** ()\
 Destructor.  double **getLightestPeakMass** () const\
 Get the mass of the lightest peak in the isotopic distribution.  double **getHeaviestPeakMass** () const\
 Get the mass of the heaviest peak in the isotopic distribution.  double **getMonoisotopicPeakMass** () const\
 double **getModeLProb** () const\
 Get the log-probability of the mode-configuration (if there are many modes, they share this value).  double **getUnlikeliestPeakLProb** () const\
 Get the logprobability of the least probable subisotopologue.  double **getModeMass** () const\
 Get the mass of the mode-configuration (if there are many modes, it is undefined which one will be selected).  double **getTheoreticalAverageMass** () const\
 Get the theoretical average mass of the molecule.  double **variance** () const\
 Get the theoretical variance of the distribution.  double **stddev** () const\
 Get the standard deviation of the theoretical distribution.  int **getDimNumber** () const\
 Get the number of elements in the chemical formula of the molecule.  int **getAllDim** () const\
 Get the total number of isotopes of elements present in a chemical formula.  void **addElement** (int atomCount, int noIsotopes, const double \*isotopeMasses, const double \*isotopeProbabilities)\
 Add an element to the molecule. Note: this method can only be used BEFORE **Iso** is used to construct an **IsoGenerator** instance.  void **saveMarginalLogSizeEstimates** (double \*priorities, double target\_total\_prob) const\
 Save estimates of logarithms of target sizes of marginals using Gaussian approximation into argument array. Array priorities must have length equal to dimNumber.

### Public Attributes

const double **mode\_lprob**\

### Protected Attributes

double \* **partialLProbs**\
 double \* **partialMasses**\
 double \* **partialProbs**\

Protected Attributes inherited from **IsoSpec::Iso** int **dimNumber**\
 int \* **isotopeNumbers**\
 int \* **atomCounts**\
 unsigned int **confSize**\
 int **allDim**\
 **Marginal** \*\* **marginals**\

### Additional Inherited Members

Static Public Member Functions inherited from **IsoSpec::Iso** static **Iso** **FromFASTA** (const char \*fasta, bool use\_nominal\_masses=false, bool add\_water=true)\
 Constructor (named) from aminoacid FASTA sequence as C string.  static **Iso** **FromFASTA** (const std::string &fasta, bool use\_nominal\_masses=false, bool add\_water=true)\
 Constructor (named) from aminoacid FASTA sequence as C++ std::string. See above for details.

Protected Member Functions inherited from **IsoSpec::Iso** bool **doMarginalsNeedSorting** () const\

## Detailed Description

The generator of isotopologues.

This class provides the common interface for all isotopic generators.

Definition at line **183** of file **isoSpec++.h**.

## Constructor & Destructor Documentation

### IsoSpec::IsoGenerator::IsoGenerator (Iso && iso, bool alloc\_partials = `true`)

Move constructor.

Definition at line **442** of file **isoSpec++.cpp**.

### IsoSpec::IsoGenerator::~IsoGenerator ()` [virtual]`

Destructor.

Definition at line **460** of file **isoSpec++.cpp**.

## Member Function Documentation

### virtual bool IsoSpec::IsoGenerator::advanceToNextConfiguration ()` [pure virtual]`

Advance to the next, not yet visited, most probable isotopologue.

**Returns**

Return false if it is not possible to advance.

Implemented in **IsoSpec::IsoOrderedGenerator**, **IsoSpec::IsoThresholdGenerator**, **IsoSpec::IsoLayeredGenerator**, and **IsoSpec::IsoStochasticGenerator**.

### virtual void IsoSpec::IsoGenerator::get\_conf\_signature (int \* space) const` [pure virtual]`

Write the signature of configuration into target memory location. It must be large enough to accomodate it.

Implemented in **IsoSpec::IsoOrderedGenerator**, **IsoSpec::IsoThresholdGenerator**, **IsoSpec::IsoLayeredGenerator**, and **IsoSpec::IsoStochasticGenerator**.

### virtual double IsoSpec::IsoGenerator::lprob () const` [inline]`, ` [virtual]`

Get the log-probability of the current isotopologue.

**Returns**

The log-probability of the current isotopologue.

Reimplemented in **IsoSpec::IsoThresholdGenerator**, **IsoSpec::IsoLayeredGenerator**, and **IsoSpec::IsoStochasticGenerator**.

Definition at line **204** of file **isoSpec++.h**.

### virtual double IsoSpec::IsoGenerator::mass () const` [inline]`, ` [virtual]`

Get the mass of the current isotopologue.

**Returns**

The mass of the current isotopologue.

Reimplemented in **IsoSpec::IsoThresholdGenerator**, **IsoSpec::IsoLayeredGenerator**, and **IsoSpec::IsoStochasticGenerator**.

Definition at line **210** of file **isoSpec++.h**.

### virtual double IsoSpec::IsoGenerator::prob () const` [inline]`, ` [virtual]`

Get the probability of the current isotopologue.

**Returns**

The probability of the current isotopologue.

Reimplemented in **IsoSpec::IsoThresholdGenerator**, **IsoSpec::IsoLayeredGenerator**, and **IsoSpec::IsoStochasticGenerator**.

Definition at line **216** of file **isoSpec++.h**.

## Member Data Documentation

### const double IsoSpec::IsoGenerator::mode\_lprob

Definition at line **186** of file **isoSpec++.h**.

### double\* IsoSpec::IsoGenerator::partialLProbs` [protected]`

The prefix sum of the log-probabilities of the current isotopologue.

Definition at line **189** of file **isoSpec++.h**.

### double\* IsoSpec::IsoGenerator::partialMasses` [protected]`

The prefix sum of the masses of the current isotopologue.

Definition at line **190** of file **isoSpec++.h**.

### double\* IsoSpec::IsoGenerator::partialProbs` [protected]`

The prefix product of the probabilities of the current isotopologue.

Definition at line **191** of file **isoSpec++.h**.

## Author

Generated automatically by Doxygen for IsoSpec from the source code.
