mass.thermo.conc_sampling.conc_achr
Provides concentration sampling through an ACHR sampler.
Based on sampling implementations in cobra.sampling.achr
Module Contents
Classes
Artificial Centering Hit-and-Run sampler for concentration sampling. |
- class mass.thermo.conc_sampling.conc_achr.ConcACHRSampler(concentration_solver, thinning=100, nproj=None, seed=None)[source]
Bases:
mass.thermo.conc_sampling.conc_hr_sampler.ConcHRSamplerArtificial Centering Hit-and-Run sampler for concentration sampling.
A sampler with low memory footprint and good convergence [KS98].
Notes
ACHR generates samples by choosing new directions from the sampling space’s center and the warmup points. The implementation used here is the similar as in the Python
cobrapackage.This implementation uses only the initial warmup points to generate new directions and not any other previous iterates. This usually gives better mixing since the startup points are chosen to span the space in a wide manner. This also makes the generated sampling chain quasi-markovian since the center converges rapidly.
Memory usage is roughly in the order of:
(number included reactions + number included metabolites)^2
due to the required nullspace matrices and warmup points. So large models easily take up a few GB of RAM.
- Parameters
concentration_solver (ConcSolver) – The
ConcSolverto use in generating samples.thinning (int) – The thinning factor for the generated sampling chain as a positive
int> 0. A thinning factor of 10 means samples are returned every 10 steps.nproj (int or None) –
A positive
int> 0 indicating how often to reporject the sampling point into the feasibility space. Avoids numerical issues at the cost of lower sampling. IfNonethen the value is determined via the following:nproj = int(min(len(self.concentration_solver.variables)**3, 1e6))
Default is
Noneseed (int or None) –
A positive
int> 0 indiciating random number seed that should be used. IfNoneprovided, the current time stamp is used.Default is
None.
- concentration_solver
The
ConcSolverused to generate samples.- Type
- retries
The overall of sampling retries the sampler has observed. Larger values indicate numerical instabilities.
- Type
- problem
A
namedtuplewhose attributes define the entire sampling problem in matrix form. See docstring ofProblemfor more information.- Type
collections.namedtuple
- warmup
A matrix of with as many columns as variables in the model of the
ConcSolverand more than 3 rows containing a warmup sample in each row.Noneif no warmup points have been generated yet.- Type
- sample(n, concs=True)[source]
Generate a set of samples.
This is the basic sampling function for all hit-and-run samplers.
Notes
Performance of this function linearly depends on the number of variables in the model of the
ConcSolverand the thinning factor.- Parameters
n (int) – The number of samples that are generated at once.
concs (bool) – Whether to return concentrations or the internal solver variables. If
Falsewill return a variable for each metabolite and reaction equilibrium constant as well as all additional variables that may have been defined in the model of theConcSolver.
- Returns
A matrix with
nrows, each containing a concentration sample.- Return type