Skip to main content

A package for building time- and space-resolved metabolic models.

Reason this release was yanked:

beta

Project description

Generic badge Tests GitHub last commit GitHub pull requests

Cobra2D is a Python package that extends COBRApy to automatically reconstruct time-resolved and/or multi-subsystem metabolic models. It generates context-specific submodels, adds linker and/or transfer reactions to connect them, and scales reactions to account for the lengths of the respective time intervals and the sizes of the subsystems. Cobra2D also provides a time interval- and subsystem size-aware weighted pFBA function.

General process:

  • Define time intervals (phases) and subsystems (e.g. cell types, tissues or organs)
  • Contextualizing sub-models
    • Adjusting compartment sizes
    • Adjusting time intervals
    • Defining linker reactions (auxiliary reactions that connect phases and allow storage metabolites to be transferred across consecutive phases)
    • Defining transfer reactions (auxiliary reactions that connect subsystems and allow exchange metabolites to be transferred across subsystems)
    • Adding context-specific constraints to submodels
  • Construction of a new model containing all context-specific submodels and their respective constraints

For this process, this package provides functionalities to not only simplify this process, but also to easily save and share the defined settings with other people.

Use cases for this package

There are two ways to use this package: functions implemented in Python can be used to define phases and constraints directly, or an XML file can be created and read in to generate a new model.

Examples

Examples of package usage can be found in the examples folder, including scripts that demonstrate the core functions and a sample XML file showing how parameters are stored.

Visualization

The package also provides the possibility to obtain an overview of the created settings via an animated or static graphic.

ConInteractive.gif

Installation

After cloning the repository, the package can be installed in the current Python environment using pip. In a terminal, this can be done with the following commands:

git clone https://github.com/Toepfer-Lab/model_duplication

cd model_duplication

pip install .

The static GraphViz visualization (Constraints.create_graph) additionally requires the Graphviz system package. It is separate from the graphviz Python package and cannot be installed via pip, please refer to the documentation of graphviz.

Development

Tests, linting, formatting and type checks all run through tox. The test matrix covers Python 3.9 to 3.13, but you do not need to build those interpreters yourself: we use the tox-uv plugin, which builds every environment with uv and can supply the required CPython versions.

Setting up the same environment we use takes one command. With uv installed:

uv tool install tox --with tox-uv

Alternatively, if you prefer to keep tox in an existing environment, pip install tox tox-uv works as well.

Depending on how uv was installed, the interpreters may have to be fetched once manually:

uv python install 3.9 3.10 3.11 3.12 3.13

From the repository root you can then run:

tox                  # the full matrix: format, lint, types, and tests on 3.9-3.13
tox -e py312         # tests on a single version
tox -e format,lint   # black (check only) and flake8
tox -e types         # mypy
tox -e py310-req     # tests against the pinned requirements.txt
tox -e py312 -- -k linker    # arguments after -- are passed through to pytest

A few notes on the setup:

  • tox -e format only reports diffs, it does not rewrite files. Run black src/cobra2d/ tests/ --line-length=79 to actually apply the formatting.
  • py310-req is the reproducibility check. It installs the pinned requirements.txt rather than resolving dependencies fresh, which is why it is tied to Python 3.10 — the pins were generated with pip-compile under that version. The remaining environments install from setup.cfg and therefore test against current releases of cobra and its dependencies.
  • Without tox-uv, tox falls back to virtualenv and expects to find python3.9, python3.10, … on your PATH; environments for versions it cannot find will fail. Add --skip-missing-interpreters=true if you deliberately want to run only the subset you have installed.

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

cobra2d-0.7.0.tar.gz (36.9 kB view details)

Uploaded Source

Built Distribution

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

cobra2d-0.7.0-py3-none-any.whl (44.3 kB view details)

Uploaded Python 3

File details

Details for the file cobra2d-0.7.0.tar.gz.

File metadata

  • Download URL: cobra2d-0.7.0.tar.gz
  • Upload date:
  • Size: 36.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for cobra2d-0.7.0.tar.gz
Algorithm Hash digest
SHA256 5210f49c2f4037b47160ec62669c5bc9b0514d9a2b70bf14a77842d64d017856
MD5 9629bff1e3147255f3f2c7e21d450773
BLAKE2b-256 184337cf3689acb796eb28a51554eecb0434903608bfd9f68e267e51261ed8a4

See more details on using hashes here.

File details

Details for the file cobra2d-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: cobra2d-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 44.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for cobra2d-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a8bb19f0e958750ac44ed28201c6c955ed23eebe996c15ab9616b9d9a307f7d8
MD5 f6a766f57e78da31c16a50b68ce5d29b
BLAKE2b-256 d52bf553bc07614ad6a9038724cc83711f73dbd2df066980dc7e2db22310b427

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