Skip to main content

Calculation of standard thermodynamic potentials of biochemical reactions.

Project description

eQuilibrator-API

pipeline status

coverage report

Join the chat at https://gitter.im/equilibrator-devs/equilibrator-api

A command-line API with minimal dependencies for calculation of standard thermodynamic potentials of biochemical reactions using the data found on eQuilibrator. Does not require any network connections.

Current Features

  • Example scripts for singleton and bulk calculations.
  • Calculation of standard Gibbs potentials of reactions (together with confidence intervals).
  • Calculation of standard reduction potentials of half-cells.

To access more advanced features, such as adding new compounds that are not among the 500,000 currently in the MetaNetX database, try using our Component Contribution package.

Cite us

If you plan to use results from equilibrator-api in a scientific publication, please cite our paper:

Noor E, Haraldsdóttir HS, Milo R, Fleming RMT (2013) Consistent Estimation of Gibbs Energy Using Component Contributions, PLoS Comput Biol 9:e1003098, DOI: 10.1371/journal.pcbi.1003098

Installation

The easiest way to get eQuilibrator-API up and running is using virtualenv, PyPI, and Jupyter notebooks:

virtualenv -p python3 equilibrator
source equilibrator/bin/activate
pip install equilibrator-api jupyter
curl https://gitlab.com/elad.noor/equilibrator-api/raw/develop/scripts/equilibrator_cmd.ipynb > equilibrator_cmd.ipynb
jupyter notebook

Then select the notebook called equilibrator_cmd.ipynb and follow the examples in it.

If you are using a Windows environment, we recommend using conda instead of pip:

conda install -c conda-forge equilibrator-api

Example Usage

Import the API and create an instance. Creating the EquilibratorAPI class instance reads all the data that is used to calculate thermodynamic potentials of reactions.

from equilibrator_api import ComponentContribution, Q_
cc = ComponentContribution()
  • IMPORTANT NOTE - versions 0.3.2+ on PyPI introduces support for Magnesium ion concentration (pMg). Almost all Gibbs energy estimates are affected, and therefore current estimates are not backward-compatible. To revert to the previous estimates, initialize using: cc = ComponentContribution.legacy() instead of the default constructor.

You can parse a reaction formula that uses compound accessions from different databases (KEGG, ChEBI, MetaNetX, BiGG, and a few others). The following example is ATP hydrolysis to ADP and inorganic phosphate, using KEGG compound IDs:

rxn = cc.parse_reaction_formula("kegg:C00002 + kegg:C00001 = kegg:C00008 + kegg:C00009")

We highly recommend that you check that the reaction is atomically balanced (conserves atoms) and charge balanced (redox neutral). We've found that it's easy to accidentally write unbalanced reactions in this format (e.g. forgetting to balance water is a common mistake) and so we always check ourselves.

if not rxn.is_balanced():
    print('%s is not balanced' % rxn)

Now we know that the reaction is "kosher" and we can safely proceed to calculate the standard change in Gibbs potential due to this reaction.

cc.p_h = Q_(6.5)  # set pH
cc.ionic_strength = Q_("200 mM")  # set I

print(f"ΔG0 = {cc.standard_dg(rxn)}")
print(f"ΔG'0 = {cc.standard_dg_prime(rxn)}")
print(f"ΔG'm = {cc.physiological_dg_prime(rxn)}")

You can also calculate the reversibility index (Noor et al. 2012) for this reaction.

print(f"ln(Reversibility Index) = {cc.ln_reversibility_index(rxn)}")

The reversibility index is a measure of the degree of the reversibility of the reaction that is normalized for stoichiometry. If you are interested in assigning reversibility to reactions we recommend this measure because 1:2 reactions are much "easier" to reverse than reactions with 1:1 or 2:2 reactions. You can see the paper linked above for more information.

Pathway analysis tools have been ported to a new project

Running Max-min Driving Force (MDF) or Enzyme Cost Minimization (ECM) anslyses is no longer part of equilibrator-api and has been ported to a separate project names equilibrator-pathway. Note, that the pathway configuration file format used in previous versions of equilibrator-api (prior to 0.2.7) is not longer supported. You can find code and configuration file examples in the new repository.

Further examples for reaction parsing

We support several compound databases, not just KEGG. One can mix between several sources in the same reaction, e.g.:

rxn = cc.parse_reaction_formula("kegg:C00002 + CHEBI:15377 = metanetx.chemical:MNXM7 + bigg.metabolite:pi")

Or, you can use compound names instead of identifiers. However, it is discouraged to use in batch, since we only pick the closest hit in our database, and that can often be the wrong compound. Always verify that the reaction is balanced, and preferably also that the InChIKeys are correct:

rxn = cc.search_reaction("beta-D-glucose = glucose")
print(rxn)

In this case, the matcher arbitrarily chooses alpha-D-glucose as the first hit for the name glucose. Therefore, it is always better to use the most specific synonym to avoid mis-annotations.

Dependencies

  • python >= 3.6
  • equilibrator-cache
  • component-contribution
  • numpy
  • scipy
  • pandas
  • python-Levenshtein-wheels
  • pint
  • path
  • appdirs
  • diskcache
  • httpx
  • tenacity
  • periodictable
  • uncertainties
  • pyzenodo3
  • python-slugify
  • cobra (optional)

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

equilibrator-api-0.4.0b7.tar.gz (50.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

equilibrator_api-0.4.0b7-py3-none-any.whl (39.4 kB view details)

Uploaded Python 3

File details

Details for the file equilibrator-api-0.4.0b7.tar.gz.

File metadata

  • Download URL: equilibrator-api-0.4.0b7.tar.gz
  • Upload date:
  • Size: 50.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.8.6

File hashes

Hashes for equilibrator-api-0.4.0b7.tar.gz
Algorithm Hash digest
SHA256 2499c0ab8a122490eb63c5a39c9e8fa0d51997647844a186e2b7e3a3c91cb1a4
MD5 b535ddc18e8433eef836ea5c284f7c5c
BLAKE2b-256 cee9d43ef0c80fac27dbd54b1a00c48dbbd9d0f04db02871ff19122ed30b2bc6

See more details on using hashes here.

File details

Details for the file equilibrator_api-0.4.0b7-py3-none-any.whl.

File metadata

  • Download URL: equilibrator_api-0.4.0b7-py3-none-any.whl
  • Upload date:
  • Size: 39.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.8.6

File hashes

Hashes for equilibrator_api-0.4.0b7-py3-none-any.whl
Algorithm Hash digest
SHA256 1ee2a8cad64f3bdb27f0a645a7e650abe20d163fbbe125f3b8736b3a44037205
MD5 09fd588960d013b7987086ee7cfc8d59
BLAKE2b-256 294037ca5b15d84739d2ff3704315f8f1d1d92a123a75952a5146c74fb167641

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page