IsoSpec(3) | Library Functions Manual | IsoSpec(3) |
NAME¶
IsoSpec
SYNOPSIS¶
Classes¶
class Allocator
class ConfEqual
class ConfOrder
class ConfOrderMarginal
class ConfOrderMarginalDescending
class DirtyAllocator
class FixedEnvelope
class Iso
The Iso class for the calculation of the isotopic distribution. class
IsoGenerator
The generator of isotopologues. class IsoLayeredGenerator
class IsoOrderedGenerator
The generator of isotopologues sorted by their probability of occurrence.
class IsoStochasticGenerator
class IsoThresholdGenerator
The generator of isotopologues above a given threshold value. class
KeyHasher
class LayeredMarginal
LayeredMarginal class. class Marginal
The marginal distribution class (a subisotopologue). class MarginalTrek
The marginal distribution class (a subisotopologue). class
OrderMarginalsBySizeDecresing
class PrecalculatedMarginal
Precalculated Marginal class. struct ProbAndConfPtr
class ReverseOrder
class SSummator
class Summator
class TableOrder
class TSummator
Typedefs¶
typedef double RealType
typedef int64_t IntType
typedef int * Conf
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])
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 (random_dev())
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, int n, int start, int 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, int size,
const char *prefix='')
template<typename T > void printVector (const std::vector< T
> &vec)
template<typename T > void printOffsets (const T **array, int
size, const T *offset, const char *prefix='')
template<typename T > void printNestedArray (const T **array,
const int *shape, int size)
void * quickselect (const void **array, int n, int start, int 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
std::random_device random_dev
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.
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 133 of file misc.h.
template<typename T > size_t * IsoSpec::get_inverse_order (T * order_array, size_t N)¶
Definition at line 162 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 151 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 173 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]¶
Definition at line 33 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, int size, const char * prefix = '')¶
Definition at line 85 of file misc.h.
template<typename T > void IsoSpec::printNestedArray (const T ** array, const int * shape, int size)¶
Definition at line 108 of file misc.h.
template<typename T > void IsoSpec::printOffsets (const T ** array, int size, const T * offset, const char * prefix = '')¶
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, int n, int start, int 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 153 of file isoMath.cpp.
template<typename T > void IsoSpec::realloc_append (T ** array, T what, size_t old_array_size)¶
Definition at line 142 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 134 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
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:.PP
= {
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:.PP
= {
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:.PP
= {
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.
std::random_device IsoSpec::random_dev¶
Definition at line 149 of file isoMath.cpp.
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.
Version 2.2.1 | IsoSpec |