IsoSpec(3)

NAME
IsoSpec

SYNOPSIS

  Classes

class Allocator
struct ProbAndConfPtr
class DirtyAllocator
class FixedEnvelope
class Iso
The Iso class for the calculation of the isotopic distribution.
class IsoGenerator
The generator of isotopologues.
class IsoOrderedGeneratorTemplate
The generator of isotopologues sorted by their probability of occurrence.
class IsoThresholdGenerator
The generator of isotopologues above a given threshold value.
class IsoLayeredGeneratorTemplate
class IsoStochasticGeneratorTemplate
class Marginal
The marginal distribution class (a subisotopologue).
class MarginalTrek
The marginal distribution class (a subisotopologue).
class PrecalculatedMarginal
Precalculated Marginal class.
class LayeredMarginal
LayeredMarginal class.
class SingleAtomMarginal
class LoggingMarginal
class KeyHasher
class ConfEqual
class ConfOrder
class ConfOrderMarginal
class ConfOrderMarginalDescending
class ReverseOrder
class TableOrder
class OrderMarginalsBySizeDecresing
class SSummator
class Summator
class TSummator

  Typedefs

typedef double RealType
typedef int64_t IntType
typedef int * Conf
using IsoOrderedGenerator = IsoOrderedGeneratorTemplate<MarginalTrek>
using IsoLayeredGenerator = IsoLayeredGeneratorTemplate<LayeredMarginal>
using IsoStochasticGenerator = IsoStochasticGeneratorTemplate<IsoLayeredGenerator>

  Functions

template<typename T> void copyConf (const T *source, T *destination, int dim)
IntType btrd (IntType _t, RealType p, IntType m, std::mt19937 &urng=random_gen)
IntType invert (IntType t, RealType p, std::mt19937 &urng=random_gen)
IntType boost_binomial_distribution_variate (IntType t_arg, RealType p_arg, std::mt19937 &urng=random_gen)
void parse_fasta (const char *fasta, int atomCounts[6])
Count elemental composition of an unmodificed sequence of amino acids, resulting in CHNOSSe counts.
void parse_fasta_full (const char *fasta, int atomCounts[6])
Turn an input FASTA aminoacid sequence into atom counts, in CHNOSSe order.
template<typename T> void reorder_array (T *arr, size_t *order, size_t size, bool can_destroy=false)
double AbyssalWassersteinDistanceGrad (FixedEnvelope *const *envelopes, const double *scales, double *ret_gradient, size_t N, double abyss_depth_exp, double abyss_depth_the)
void release_g_lfact_table ()
double * alloc_lfact_table ()
double RationalApproximation (double t)
double NormalCDFInverse (double p)
double NormalCDFInverse (double p, double mean, double stdev)
double NormalCDF (double x, double mean, double stdev)
double NormalPDF (double x, double mean, double stdev)
double LowerIncompleteGamma2 (int a, double x)
double InverseLowerIncompleteGamma2 (int a, double x)
std::mt19937 random_gen (std::random_device{}())
std::uniform_real_distribution< double > stdunif (0.0, 1.0)
size_t rdvariate_binom (size_t tries, double succ_prob, std::mt19937 &rgen)
double InverseChiSquareCDF2 (int k, double x)
double rdvariate_beta_1_b (double b, std::mt19937 &rgen=random_gen)
unsigned int parse_formula (const char *formula, std::vector< double > &isotope_masses, std::vector< double > &isotope_probabilities, int **isotopeNumbers, int **atomCounts, unsigned int *confSize, bool use_nominal_masses)
void writeInitialConfiguration (const int atomCnt, const int isotopeNo, const double *lprobs, int *res)
Find one of the most probable subisotopologues.
double * getMLogProbs (const double *probs, int isoNo)
double get_loggamma_nominator (int x)
int verify_atom_cnt (int atomCnt)
void * quickselect (void **array, size_t n, size_t start, size_t end)
double combinedSum (const int *conf, const std::vector< double > **valuesContainer, int dimNumber)
double combinedSum (const int *conf, const pod_vector< double > **valuesContainer, int dimNumber)
int * getConf (void *conf)
double getLProb (void *conf)
double unnormalized_logProb (const int *conf, const double *logProbs, int dim)
double calc_mass (const int *conf, const double *masses, int dim)
template<typename T> void printArray (const T *array, size_t size, const char *prefix='')
template<typename T> void printVector (const std::vector< T > &vec)
template<typename T> void printVector (const pod_vector< T > &vec)
template<typename T> void printOffsets (const T **array, size_t size, const T *offset, const char *prefix='')
template<typename T> void printNestedArray (const T **array, const int *shape, size_t size)
void * quickselect (const void **array, size_t n, size_t start, size_t end)
Quickly select the n'th positional statistic, including the weights.
template<typename T> void dealloc_table (T *tbl, int dim)
template<typename T> void realloc_append (T **array, T what, size_t old_array_size)
template<typename T> size_t * get_order (T *order_array, size_t N)
template<typename T> size_t * get_inverse_order (T *order_array, size_t N)
template<typename TA, typename TB> void impose_order (size_t *O, size_t N, TA *A, TB *B)

  Variables

const ::size_t isospec_number_of_isotopic_entries = ISOSPEC_NUMBER_OF_ISOTOPIC_ENTRIES
const int elem_table_ID [ISOSPEC_NUMBER_OF_ISOTOPIC_ENTRIES]
const int elem_table_atomicNo [ISOSPEC_NUMBER_OF_ISOTOPIC_ENTRIES]
const double elem_table_mass [ISOSPEC_NUMBER_OF_ISOTOPIC_ENTRIES]
const double elem_table_massNo [ISOSPEC_NUMBER_OF_ISOTOPIC_ENTRIES]
const int elem_table_extraNeutrons [ISOSPEC_NUMBER_OF_ISOTOPIC_ENTRIES]
const char * elem_table_element [ISOSPEC_NUMBER_OF_ISOTOPIC_ENTRIES]
const char * elem_table_symbol [ISOSPEC_NUMBER_OF_ISOTOPIC_ENTRIES]
const bool elem_table_Radioactive [ISOSPEC_NUMBER_OF_ISOTOPIC_ENTRIES]
const double elem_table_probability [ISOSPEC_NUMBER_OF_ISOTOPIC_ENTRIES]
const double elem_table_log_probability [ISOSPEC_NUMBER_OF_ISOTOPIC_ENTRIES]
const int aa_isotope_numbers [6] = {2, 2, 2, 3, 4, 6}
const double aa_elem_masses [19]
const double aa_elem_nominal_masses [19]
const double aa_elem_probabilities [19]
const int aa_symbol_to_elem_counts [256 *6]
double * g_lfact_table = alloc_lfact_table()
const double sqrt_pi = 1.772453850905516027298167483341145182798
const double pi = 3.14159265358979323846264338328
const double logpi = 1.144729885849400174143427351353058711647294812915311571513623071472137769884826079783623270275489708
std::mt19937 random_gen
std::uniform_real_distribution< double > stdunif

Detailed Description

Copyright (C) 2015-2020 Mateusz Łącki and Michał Startek.

This file is part of IsoSpec.

IsoSpec is free software: you can redistribute it and/or modify it under the terms of the Simplified ("2-clause") BSD licence.

IsoSpec is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

You should have received a copy of the Simplified BSD Licence along with IsoSpec. If not, see https://opensource.org/licenses/BSD-2-Clause.

Typedef Documentation

  typedef int* IsoSpec::Conf

Definition at line 22 of file conf.h.

  typedef int64_t IsoSpec::IntType

Definition at line 28 of file btrd.h.

  using IsoSpec::IsoLayeredGenerator = IsoLayeredGeneratorTemplate<LayeredMarginal>

Definition at line 583 of file isoSpec++.h.

  using IsoSpec::IsoOrderedGenerator = IsoOrderedGeneratorTemplate<MarginalTrek>

Definition at line 307 of file isoSpec++.h.

  using IsoSpec::IsoStochasticGenerator = IsoStochasticGeneratorTemplate<IsoLayeredGenerator>

Definition at line 691 of file isoSpec++.h.

  typedef double IsoSpec::RealType

Definition at line 27 of file btrd.h.

Function Documentation

  double * IsoSpec::alloc_lfact_table ()

Definition at line 32 of file isoMath.cpp.

  IntType IsoSpec::boost_binomial_distribution_variate (IntType t_arg, RealType p_arg, std::mt19937 & urng = random_gen)

Definition at line 189 of file btrd.h.

  IntType IsoSpec::btrd (IntType _t, RealType p, IntType m, std::mt19937 & urng = random_gen)

Definition at line 77 of file btrd.h.

  double IsoSpec::calc_mass (const int * conf, const double * masses, int dim) [inline]

Definition at line 71 of file misc.h.

  double IsoSpec::combinedSum (const int * conf, const pod_vector< double > ** valuesContainer, int dimNumber) [inline]

Definition at line 38 of file misc.h.

  double IsoSpec::combinedSum (const int * conf, const std::vector< double > ** valuesContainer, int dimNumber) [inline]

Definition at line 29 of file misc.h.

  template<typename T> void IsoSpec::copyConf (const T * source, T * destination, int dim) [inline]

Definition at line 26 of file allocator.h.

  template<typename T> void IsoSpec::dealloc_table (T * tbl, int dim)

Definition at line 138 of file misc.h.

  template<typename T> size_t * IsoSpec::get_inverse_order (T * order_array, size_t N)

Definition at line 167 of file misc.h.

  double IsoSpec::get_loggamma_nominator (int x)

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

  template<typename T> size_t * IsoSpec::get_order (T * order_array, size_t N)

Definition at line 156 of file misc.h.

  int * IsoSpec::getConf (void * conf) [inline]

Definition at line 47 of file misc.h.

  double IsoSpec::getLProb (void * conf) [inline]

Definition at line 54 of file misc.h.

  double * IsoSpec::getMLogProbs (const double * probs, int isoNo)
Here we order the processor to round the numbers up rather than down. Rounding down could result in the algorithm falling in an infinite loop because of the numerical instability of summing.

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

  template<typename TA, typename TB> void IsoSpec::impose_order (size_t * O, size_t N, TA * A, TB * B)

Definition at line 178 of file misc.h.

  double IsoSpec::InverseChiSquareCDF2 (int k, double x) [inline]

Definition at line 68 of file isoMath.h.

  double IsoSpec::InverseLowerIncompleteGamma2 (int a, double x)

Definition at line 131 of file isoMath.cpp.

  IntType IsoSpec::invert (IntType t, RealType p, std::mt19937 & urng = random_gen)

Definition at line 160 of file btrd.h.

  double IsoSpec::LowerIncompleteGamma2 (int a, double x)

Definition at line 104 of file isoMath.cpp.

  double IsoSpec::NormalCDF (double x, double mean, double stdev)

Definition at line 70 of file isoMath.cpp.

  double IsoSpec::NormalCDFInverse (double p)

Definition at line 57 of file isoMath.cpp.

  double IsoSpec::NormalCDFInverse (double p, double mean, double stdev)

Definition at line 65 of file isoMath.cpp.

  double IsoSpec::NormalPDF (double x, double mean, double stdev)

Definition at line 95 of file isoMath.cpp.

  void IsoSpec::parse_fasta (const char * fasta, int atomCounts[6]) [inline]

Count elemental composition of an unmodificed sequence of amino acids, resulting in CHNOSSe counts. WARNING!!! This function does not add the terminating H and OH groups, resulting in a residue backbone skeleton formula. If you don't know what that means, you should probably be using parse_fasta_full function.

Definition at line 38 of file fasta.h.

  void IsoSpec::parse_fasta_full (const char * fasta, int atomCounts[6]) [inline]

Turn an input FASTA aminoacid sequence into atom counts, in CHNOSSe order. Unlike parse_fasta, this function includes the H and OH groups at the N- and C- termini of the skeleton, resulting in a formula of a full (inert) molecule.

Definition at line 54 of file fasta.h.

  unsigned int IsoSpec::parse_formula (const char * formula, std::vector< double > & isotope_masses, std::vector< double > & isotope_probabilities, int ** isotopeNumbers, int ** atomCounts, unsigned int * confSize, bool use_nominal_masses)

Definition at line 355 of file isoSpec++.cpp.

  template<typename T> void IsoSpec::printArray (const T * array, size_t size, const char * prefix = '')

Definition at line 85 of file misc.h.

  template<typename T> void IsoSpec::printNestedArray (const T ** array, const int * shape, size_t size)

Definition at line 113 of file misc.h.

  template<typename T> void IsoSpec::printOffsets (const T ** array, size_t size, const T * offset, const char * prefix = '')

Definition at line 104 of file misc.h.

  template<typename T> void IsoSpec::printVector (const pod_vector< T > & vec)

Definition at line 99 of file misc.h.

  template<typename T> void IsoSpec::printVector (const std::vector< T > & vec)

Definition at line 94 of file misc.h.

  void * IsoSpec::quickselect (void ** array, size_t n, size_t start, size_t end)

Definition at line 28 of file misc.cpp.

  double IsoSpec::RationalApproximation (double t)

Definition at line 47 of file isoMath.cpp.

  double IsoSpec::rdvariate_beta_1_b (double b, std::mt19937 & rgen = random_gen) [inline]

Definition at line 76 of file isoMath.h.

  size_t IsoSpec::rdvariate_binom (size_t tries, double succ_prob, std::mt19937 & rgen)

Definition at line 152 of file isoMath.cpp.

  template<typename T> void IsoSpec::realloc_append (T ** array, T what, size_t old_array_size)

Definition at line 147 of file misc.h.

  void IsoSpec::release_g_lfact_table ()

Definition at line 23 of file isoMath.cpp.

  template<typename T> void IsoSpec::reorder_array (T * arr, size_t * order, size_t size, bool can_destroy = false)

Definition at line 135 of file fixedEnvelopes.cpp.

  double IsoSpec::unnormalized_logProb (const int * conf, const double * logProbs, int dim) [inline]

Definition at line 61 of file misc.h.

  int IsoSpec::verify_atom_cnt (int atomCnt)

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

  void IsoSpec::writeInitialConfiguration (const int atomCnt, const int isotopeNo, const double * lprobs, int * res)

Find one of the most probable subisotopologues. The algorithm uses the hill-climbing algorithm. It starts from a subisotopologue close to the mean of the underlying multinomial distribution. There might be more than one modes, in case of which this function will return only one of them, close to the mean.

Parameters
    atomCnt

Here we perform hill climbing to the mode of the marginal distribution (the subisotopologue distribution). We start from the point close to the mean of the underlying multinomial distribution.

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

Variable Documentation

  const double IsoSpec::aa_elem_masses
Initial value:
= {
    elem_table_mass[9], elem_table_mass[10],
    elem_table_mass[0], elem_table_mass[1],
    elem_table_mass[11], elem_table_mass[12],
    elem_table_mass[13], elem_table_mass[14], elem_table_mass[15],
    elem_table_mass[29], elem_table_mass[30], elem_table_mass[31], elem_table_mass[32],
    elem_table_mass[85], elem_table_mass[86], elem_table_mass[87], elem_table_mass[88], elem_table_mass[89], elem_table_mass[90]
}

Definition at line 27 of file fasta.cpp.

  const double IsoSpec::aa_elem_nominal_masses
Initial value:
= {
    elem_table_massNo[9], elem_table_massNo[10],
    elem_table_massNo[0], elem_table_massNo[1],
    elem_table_massNo[11], elem_table_massNo[12],
    elem_table_massNo[13], elem_table_massNo[14], elem_table_massNo[15],
    elem_table_massNo[29], elem_table_massNo[30], elem_table_massNo[31], elem_table_massNo[32],
    elem_table_massNo[85], elem_table_massNo[86], elem_table_massNo[87], elem_table_massNo[88], elem_table_massNo[89], elem_table_massNo[90]
}

Definition at line 37 of file fasta.cpp.

  const double IsoSpec::aa_elem_probabilities
Initial value:
= {
    elem_table_probability[9], elem_table_probability[10],
    elem_table_probability[0], elem_table_probability[1],
    elem_table_probability[11], elem_table_probability[12],
    elem_table_probability[13], elem_table_probability[14], elem_table_probability[15],
    elem_table_probability[29], elem_table_probability[30], elem_table_probability[31], elem_table_probability[32],
    elem_table_probability[85], elem_table_probability[86], elem_table_probability[87], elem_table_probability[88], elem_table_probability[89], elem_table_probability[90]
}

Definition at line 47 of file fasta.cpp.

  const int IsoSpec::aa_isotope_numbers = {2, 2, 2, 3, 4, 6}

Definition at line 25 of file fasta.cpp.

  const int IsoSpec::aa_symbol_to_elem_counts

Definition at line 57 of file fasta.cpp.

  ISOSPEC_C_API const int IsoSpec::elem_table_atomicNo

Definition at line 325 of file element_tables.cpp.

  ISOSPEC_C_API const char * IsoSpec::elem_table_element

Definition at line 1509 of file element_tables.cpp.

  ISOSPEC_C_API const int IsoSpec::elem_table_extraNeutrons

Definition at line 1213 of file element_tables.cpp.

  ISOSPEC_C_API const int IsoSpec::elem_table_ID

Definition at line 28 of file element_tables.cpp.

  ISOSPEC_C_API const double IsoSpec::elem_table_log_probability

Definition at line 2693 of file element_tables.cpp.

  ISOSPEC_C_API const double IsoSpec::elem_table_mass

Definition at line 621 of file element_tables.cpp.

  ISOSPEC_C_API const double IsoSpec::elem_table_massNo

Definition at line 917 of file element_tables.cpp.

  ISOSPEC_C_API const double IsoSpec::elem_table_probability

Definition at line 2397 of file element_tables.cpp.

  ISOSPEC_C_API const bool IsoSpec::elem_table_Radioactive

Definition at line 2101 of file element_tables.cpp.

  ISOSPEC_C_API const char * IsoSpec::elem_table_symbol

Definition at line 1805 of file element_tables.cpp.

  double * IsoSpec::g_lfact_table = alloc_lfact_table()

Definition at line 44 of file isoMath.cpp.

  ISOSPEC_C_API const size_t IsoSpec::isospec_number_of_isotopic_entries = ISOSPEC_NUMBER_OF_ISOTOPIC_ENTRIES

Definition at line 26 of file element_tables.cpp.

  const double IsoSpec::logpi = 1.144729885849400174143427351353058711647294812915311571513623071472137769884826079783623270275489708

Definition at line 54 of file isoMath.h.

  const double IsoSpec::pi = 3.14159265358979323846264338328

Definition at line 53 of file isoMath.h.

  const double IsoSpec::sqrt_pi = 1.772453850905516027298167483341145182798

Definition at line 102 of file isoMath.cpp.

Author

Generated automatically by Doxygen for IsoSpec from the source code.