# 17.1.1.2.1.12. cobra.flux_analysis.variability¶

Provide variability based methods such as flux variability or gene essentiality.

## 17.1.1.2.1.12.1. Module Contents¶

### 17.1.1.2.1.12.1.1. Functions¶

 _init_worker(model: Model, loopless: bool, sense: str) → None Initialize a global model object for multiprocessing. _fva_step(reaction_id: str) → Tuple[str, float] Take a step for calculating FVA. flux_variability_analysis(model: Model, reaction_list: Optional[List[Union[‘Reaction’, str]]] = None, loopless: bool = False, fraction_of_optimum: float = 1.0, pfba_factor: Optional[float] = None, processes: Optional[int] = None) → pd.DataFrame Determine the minimum and maximum flux value for each reaction. find_blocked_reactions(model: Model, reaction_list: Optional[List[Union[‘Reaction’, str]]] = None, zero_cutoff: Optional[float] = None, open_exchanges: bool = False, processes: Optional[int] = None) → List[‘Reaction’] Find reactions that cannot carry any flux. find_essential_genes(model: Model, threshold: Optional[float] = None, processes: Optional[int] = None) → Set[‘Gene’] Return a set of essential genes. find_essential_reactions(model: Model, threshold: Optional[float] = None, processes: Optional[int] = None) → Set[‘Reaction’] Return a set of essential reactions.
cobra.flux_analysis.variability.logger[source]
cobra.flux_analysis.variability.configuration[source]
cobra.flux_analysis.variability._init_worker(model: Model, loopless: bool, sense: str) → None[source]

Initialize a global model object for multiprocessing.

Parameters
• model (cobra.Model) – The model to operate on.

• loopless (bool) – Whether to use loopless version.

• sense ({"max", "min"}) – Whether to maximise or minimise objective.

cobra.flux_analysis.variability._fva_step(reaction_id: str) → Tuple[str, float][source]

Take a step for calculating FVA.

Parameters

reaction_id (str) – The ID of the reaction.

Returns

The reaction ID with the flux value.

Return type

tuple of (str, float)

cobra.flux_analysis.variability.flux_variability_analysis(model: Model, reaction_list: Optional[List[Union['Reaction', str]]] = None, loopless: bool = False, fraction_of_optimum: float = 1.0, pfba_factor: Optional[float] = None, processes: Optional[int] = None) → pd.DataFrame[source]

Determine the minimum and maximum flux value for each reaction.

Parameters
• model (cobra.Model) – The model for which to run the analysis. It will not be modified.

• reaction_list (list of cobra.Reaction or str, optional) – The reactions for which to obtain min/max fluxes. If None will use all reactions in the model (default None).

• loopless (bool, optional) – Whether to return only loopless solutions. This is significantly slower. Please also refer to the notes (default False).

• fraction_of_optimum (float, optional) – Must be <= 1.0. Requires that the objective value is at least the fraction times maximum objective value. A value of 0.85 for instance means that the objective has to be at least at 85% percent of its maximum (default 1.0).

• pfba_factor (float, optional) – Add an additional constraint to the model that requires the total sum of absolute fluxes must not be larger than this value times the smallest possible sum of absolute fluxes, i.e., by setting the value to 1.1 the total sum of absolute fluxes must not be more than 10% larger than the pFBA solution. Since the pFBA solution is the one that optimally minimizes the total flux sum, the pfba_factor should, if set, be larger than one. Setting this value may lead to more realistic predictions of the effective flux bounds (default None).

• processes (int, optional) – The number of parallel processes to run. If not explicitly passed, will be set from the global configuration singleton (default None).

Returns

A data frame with reaction identifiers as the index and two columns: - maximum: indicating the highest possible flux - minimum: indicating the lowest possible flux

Return type

pandas.DataFrame

Notes

This implements the fast version as described in 1. Please note that the flux distribution containing all minimal/maximal fluxes does not have to be a feasible solution for the model. Fluxes are minimized/maximized individually and a single minimal flux might require all others to be sub-optimal.

Using the loopless option will lead to a significant increase in computation time (about a factor of 100 for large models). However, the algorithm used here (see 2) is still more than 1000x faster than the “naive” version using add_loopless(model). Also note that if you have included constraints that force a loop (for instance by setting all fluxes in a loop to be non-zero) this loop will be included in the solution.

References

1

Computationally efficient flux variability analysis. Gudmundsson S, Thiele I. BMC Bioinformatics. 2010 Sep 29;11:489. doi: 10.1186/1471-2105-11-489, PMID: 20920235

2

CycleFreeFlux: efficient removal of thermodynamically infeasible loops from flux distributions. Desouki AA, Jarre F, Gelius-Dietrich G, Lercher MJ. Bioinformatics. 2015 Jul 1;31(13):2159-65. doi: 10.1093/bioinformatics/btv096.

cobra.flux_analysis.variability.find_blocked_reactions(model: Model, reaction_list: Optional[List[Union['Reaction', str]]] = None, zero_cutoff: Optional[float] = None, open_exchanges: bool = False, processes: Optional[int] = None) → List['Reaction'][source]

Find reactions that cannot carry any flux.

The question whether or not a reaction is blocked is highly dependent on the current exchange reaction settings for a COBRA model. Hence an argument is provided to open all exchange reactions.

Parameters
• model (cobra.Model) – The model to analyze.

• reaction_list (list of cobra.Reaction or str, optional) – List of reactions to consider, the default includes all model reactions (default None).

• zero_cutoff (float, optional) – Flux value which is considered to effectively be zero. The default is set to use model.tolerance (default None).

• open_exchanges (bool, optional) – Whether or not to open all exchange reactions to very high flux ranges (default False).

• processes (int, optional) – The number of parallel processes to run. Can speed up the computations if the number of reactions is large. If not explicitly passed, it will be set from the global configuration singleton (default None).

Returns

List with the identifiers of blocked reactions.

Return type

list of cobra.Reaction

Notes

Sink and demand reactions are left untouched. Please modify them manually.

cobra.flux_analysis.variability.find_essential_genes(model: Model, threshold: Optional[float] = None, processes: Optional[int] = None) → Set['Gene'][source]

Return a set of essential genes.

A gene is considered essential if restricting the flux of all reactions that depend on it to zero causes the objective, e.g., the growth rate, to also be zero, below the threshold, or infeasible.

Parameters
• model (cobra.Model) – The model to find the essential genes for.

• threshold (float, optional) – Minimal objective flux to be considered viable. By default this is 1% of the maximal objective (default None).

• processes (int, optional) – The number of parallel processes to run. Can speed up the computations if the number of knockouts to perform is large. If not explicitly passed, it will be set from the global configuration singleton (default None).

Returns

Set of essential genes.

Return type

set of cobra.Gene

cobra.flux_analysis.variability.find_essential_reactions(model: Model, threshold: Optional[float] = None, processes: Optional[int] = None) → Set['Reaction'][source]

Return a set of essential reactions.

A reaction is considered essential if restricting its flux to zero causes the objective, e.g., the growth rate, to also be zero, below the threshold, or infeasible.

Parameters
• model (cobra.Model) – The model to find the essential reactions for.

• threshold (float, optional) – Minimal objective flux to be considered viable. By default this is 1% of the maximal objective (default None).

• processes (int, optional) – The number of parallel processes to run. Can speed up the computations if the number of knockouts to perform is large. If not explicitly passed, it will be set from the global configuration singleton (default None).

Returns

Set of essential reactions.

Return type

set of cobra.Reaction