Skip to main content

A Python library for EnzymeML

Project description

PyEnzyme
PyPI - Version Build Badge

PyEnzyme is the interface to the data model EnzymeML and offers a convenient way to document and model research data. Lightweight syntax for rapid development of data management solution in enzymology and biocatalysis.

🧬 Features

  • Reproducible documentation of enzymatic and biocatalytic experiments.
  • Import from and export to the SBML-based markup language EnzymeML and more.
  • Fetch entities from CheBI, UniProt, PubChem, RHEA and PDB databases.
  • Visualize experimental results for inspection and publication.

⚡️ Quick start

Get started with PyEnzyme by running the following command

# Using PyPI
python -m pip install pyenzyme

Or build by source

git clone https://github.com/EnzymeML/PyEnzyme.git
cd PyEnzyme
python3 setup.py install

🚀 Try PyEnzyme in Google Colab

Get hands-on experience with PyEnzyme without any local installation! Try our interactive Google Colab notebook by clicking the badge below:

Open In Colab

⚙️ Package Options

PyEnzyme comes with many flavors, choose whether you want only the base installation, the modeling package or all of it using the following options.

# PySCeS - modeling
python -m pip install "pyenzyme[pysces]"

📖 Documentation

For further documentation on how to use PyEnzyme, please refer to the documentation. Here you will find detailed guides on how to use PyEnzyme effectively and efficiently.

⚙️ Example code

This example will demonstrate how to create a simple EnzymeML document using PyEnzyme and how to use initializers from official databases Chebi and UniProt to gather metadata.

Create a simple EnzymeML document

import pyenzyme as pe

# Create a simple EnzymeML document
enzmldoc = pe.EnzymeMLDocument(name="Test")

vessel = enzmldoc.add_to_vessels(
    id="vessel_1",
    name="Vessel 1",
    volume=1.0,
    unit="l",  # Units are automatically converted to a UnitDefinition
)

# Add a protein from UniProt
protein = pe.fetch_uniprot("P07327", vessel_id=vessel.id)
enzmldoc.proteins.append(protein)

# Add a reaction from RHEA DB
reaction, participants = pe.fetch_rhea("RHEA:22864", vessel_id=vessel.id)
enzmldoc.small_molecules += participants
enzmldoc.reactions.append(reaction)

# Parse a tabular file to a measurement
measurements = pe.from_excel(
    path="measurements.xlsx",
    data_unit="mmol / l",
    time_unit="h",
)

enzmldoc.measurements += measurements

# Serialize to EnzymeML
pe.write_enzymeml(enzmldoc, "enzmldoc.json")

# Deserialize from EnzymeML
enzmldoc = pe.read_enzymeml("enzmldoc.json")

# Convert to SBML
sbml_doc = pe.to_sbml(enzmldoc, "enzmldoc.omex")

(Code should run as it is)

Compose an EnzymeML document

As an alternative to the manual creation of an EnzymeML document, you can use the compose function to create an EnzymeML document from a list of identifiers. This function will fetch the corresponding entities from the official databases and compose an EnzymeML document. Duplicate entities are removed to avoid redundancy.

import pyenzyme as pe

doc = pe.compose(
    name="test",
    proteins=["PDB:1A23"],
    small_molecules=["CHEBI:32551"],
    reactions=["RHEA:22864"],
)

pe.write_enzymeml(doc, "enzmldoc.json")

(Code should run as it is)

Please note, that by providing RHEA identifiers, the function will automatically fetch all associated CheBI molecules that are part of the reaction.

📖 Documentation and more examples

Explore all the features of PyEnzyme in our documentation and take part in Discussions and/or Issues.

🔙 Backwards compatibility

For backward compatibility with previous versions of PyEnzyme, this release includes the original v1.1.5 version of the package under the v1 subpackage. Users may continue to utilize the legacy API by importing from pyenzyme.v1 instead of pyenzyme. Please be aware that the dependencies for the current v2 implementation differ from those of v1 and must be installed separately using poetry install --with v1.

For new projects, we recommend utilizing the updated API available in the package root. Existing users of the legacy API are encouraged to migrate to the current version to benefit from the latest features and improvements.

🧪 Testing

In order to run tests there are two different ways. First you can utilize pytest directly by running the following:

python -m pytest -vv

Or you can the provided Dockerfile to run the tests in a containerized environment.

docker build -t pyenzyme .
docker run pyenzyme

⚠️ License

PyEnzyme is free and open-source software licensed under the BSD 2-Clause License.


Made with ❤️ by the EnzymeML Team

Project details


Download files

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

Source Distribution

pyenzyme-2.2.1.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

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

pyenzyme-2.2.1-py3-none-any.whl (205.3 kB view details)

Uploaded Python 3

File details

Details for the file pyenzyme-2.2.1.tar.gz.

File metadata

  • Download URL: pyenzyme-2.2.1.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.25 {"installer":{"name":"uv","version":"0.9.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pyenzyme-2.2.1.tar.gz
Algorithm Hash digest
SHA256 951b2bd7bc8c538b22bce50fc9bc84d6aed9e5636a3f29764e50170883ac3b9b
MD5 f4725cfba4046e7439f92c8e150eb03a
BLAKE2b-256 b4cca954e875cc0eb8888cfaa757ebc99cd0fa726ae67537dcddca290f4bdc30

See more details on using hashes here.

File details

Details for the file pyenzyme-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: pyenzyme-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 205.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.25 {"installer":{"name":"uv","version":"0.9.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pyenzyme-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e03e880030cd13b842f0618bb99a79174e3581187d21d852d72d1ff2ed78eac6
MD5 6a2272546cae27510ea3d27b9195350c
BLAKE2b-256 08d08f7b2d1fa5800ff286d854b453b47b22ef6475498351fbafd9647787ce46

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