Define the Metabolite class.

Module Contents



Class for information about metabolite in cobra.Reaction.



class cobra.core.metabolite.Metabolite(id: Optional[str] = None, formula: Optional[str] = None, name: Optional[str] = '', charge: Optional[float] = None, compartment: Optional[str] = None)[source]

Bases: cobra.core.species.Species

Class for information about metabolite in cobra.Reaction.

Metabolite is a class for holding information regarding a metabolite in a cobra.Reaction object.

  • id (str) – the identifier to associate with the metabolite

  • formula (str) – Chemical formula (e.g. H2O)

  • name (str) – A human readable name.

  • charge (float) – The charge number of the metabolite

  • compartment (str or None) – Compartment of the metabolite.

property constraint: optlang.interface.Container[source]

Get the constraints associated with this metabolite from the solver.


the optlang constraint for this metabolite

Return type


property elements: Optional[Dict[str, Union[int, float]]][source]

Get dicitonary of elements and counts.

Dictionary of elements as keys and their count in the metabolite as integer. When set, the formula property is updated accordingly.


composition – A dictionary of elements and counts, where count is int unless it is needed to be a float. Returns None in case of error.

Return type

None or Dict

property formula_weight: Union[int, float][source]

Calculate the formula weight.


Weight of formula, based on the weight and count of elements. Can be int if the formula weight is a whole number, but unlikely.

Return type

float, int

property y: float[source]

Return the shadow price for the metabolite in the most recent solution.

Shadow prices are computed from the dual values of the bounds in the solution. .. deprecated :: Use metabolite.shadow_price instead.


Float representing the shadow price.

Return type


property shadow_price: float[source]

Return the shadow price for the metabolite in the most recent solution.

Shadow price is the dual value of the corresponding constraint in the model.



Return type



  • Accessing shadow prices through a Solution object is the safer, preferred, and only guaranteed to be correct way. You can see how to do so easily in the examples.

  • Shadow price is retrieved from the currently defined self._model.solver. The solver status is checked but there are no guarantees that the current solver state is the one you are looking for.

  • If you modify the underlying model after an optimization, you will retrieve the old optimization values.

  • RuntimeError – If the underlying model was never optimized beforehand or the metabolite is not part of a model.

  • OptimizationError – If the solver status is anything other than ‘optimal’.


>>> from import load_model
>>> model = load_model("textbook")
>>> solution = model.optimize()
>>> model.metabolites.glc__D_e.shadow_price
>>> solution.shadow_prices.glc__D_e
_set_id_with_model(value: str) None[source]

Set id with value.


value (str) –

remove_from_model(destructive: bool = False) None[source]

Remove the association from self.model.

The change is reverted upon exit when using the model as a context.


destructive (bool, default False) – If False then the metabolite is removed from all associated reactions. If True then all associated reactions are removed from the Model.

summary(solution: Optional[cobra.core.Solution] = None, fva: Optional[Union[float, pandas.DataFrame]] = None) cobra.summary.MetaboliteSummary[source]

Create a summary of the producing and consuming fluxes.

  • solution (cobra.Solution, optional) – A previous model solution to use for generating the summary. If None, the summary method will generate a parsimonious flux distribution (default None).

  • fva (pandas.DataFrame or float, optional) – Whether or not to include flux variability analysis in the output. If given, fva should either be a previous FVA solution matching the model or a float between 0 and 1 representing the fraction of the optimum objective to be searched (default None).

Return type


See also

Reaction.summary, Model.summary

_repr_html_() str[source]

Return the metabolite as an HTML string.