


ES_SAMPLE_MULTIPLE - Create model ensemble and collect values for an output function
[output, output_list] = es_sample_multiple(N, W, ind_ext, es_constraints, es_options, output_function, select_function, score_function, function_args)
Run elasticity sampling repeatedly, compute every time an output function
(any kind of matlab variable), and return a list of the output values.
This function also allows for posterior sampling (Metropolis-Monte Carlo algorithm)
There is no direct way to run the sampling in parallel for two scenarios
with the same random values used for saturation constants in both ensembles
Inputs (nm: # metabolites; nr: # reactions)
N - Stoichiometric matrix (nm x nr)
W - Allosteric regulation matrix (nr x nm)
ind_ext - indices of external metabolites
For the inputs es_constraints and es_options, see es_default_options
output_function - Output function for which response coefficients are sampled (*1)
select_function - Function for filtering the sampled models (*2)
score_function - Function for posterior probability sampling (*3)
function_args - Arguments for output_function, select_function, score_function
Outputs
output_list - Results as a list of matrices
output - Same results as a tensor
Comments:
(1) If the output function is numeric, output contains all values as a row vector
(for scalars), matrix (for row or column vectors), or tensor (for matrices).
(2) If a 'select_function' is provided, only samples that yield a non-zero value
of this function will be considered.
(3) If a score function (e.g., a log likelihood) is provided, it is evaluated
every time for each sample and the values are used for Metropolis sampling
instead of simple repeated sampling.