Define the Metabolite class. Module Contents Classes


Metabolite is a class for holding information regarding

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

Bases: cobra.core.species.Species

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.

_set_id_with_model(self, value)[source]
property constraint(self)[source]

Get the constraints associated with this metabolite from the solve


the optlang constraint for this metabolite

Return type


property elements(self)[source]

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

property formula_weight(self)[source]

Calculate the formula weight

property y(self)[source]

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.

property shadow_price(self)[source]

The shadow price in the most recent solution.

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


  • 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’.


>>> import cobra
>>> import cobra.test
>>> model = cobra.test.create_test_model("textbook")
>>> solution = model.optimize()
>>> model.metabolites.glc__D_e.shadow_price
>>> solution.shadow_prices.glc__D_e
remove_from_model(self, destructive=False)[source]

Removes the association from self.model

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


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

summary(self, solution=None, fva=None)[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()