Metadata-Version: 2.4
Name: coralME
Version: 1.2.3.1
Summary: Comprehensive Reconstruction Algorithm for ME-models (coralME)
Home-page: https://github.com/jdtibochab/coralme
Author: Juan D. Tibocha-Bonilla and Rodrigo Santibanez-Palominos
Author-email: "Juan D. Tibocha-Bonilla" <jdtibochab@users.noreply.github.com>, Rodrigo Santibáñez-Palominos <glucksfall@users.noreply.github.com>
License: MIT
Project-URL: Homepage, https://github.com/jdtibochab/coralme
Project-URL: Manual, https://coralme.readthedocs.io
Project-URL: Bug Reports, https://github.com/jdtibochab/coralme/issues
Project-URL: Source, https://github.com/jdtibochab/coralme
Keywords: metabolism,biology,constraint-based,linear programming,mixed-integer,optimization,flux-balance analysis,reconstruction
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: ~=3.0
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: anyconfig
Requires-Dist: anyconfig<0.14.0; python_version <= "3.7"
Requires-Dist: Biopython
Requires-Dist: cobra<=0.28.0; python_version <= "3.7"
Requires-Dist: cobra<=0.30.0; python_version > "3.7"
Requires-Dist: docplex
Requires-Dist: jsonschema
Requires-Dist: numpy<=1.26.4; python_version <= "3.10"
Requires-Dist: numpy>=2.0.0; python_version > "3.10"
Requires-Dist: openpyxl
Requires-Dist: pandas
Requires-Dist: Pint
Requires-Dist: pyranges
Requires-Dist: pytest
Requires-Dist: scipy<=1.14.1; python_version <= "3.14"
Requires-Dist: sympy<=1.12.1
Requires-Dist: tqdm
Requires-Dist: versioneer
Requires-Dist: XlsxWriter
Dynamic: author
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: requires-python

.. image:: https://github.com/jdtibochab/coralme/blob/main/docs/logo.png

.. image:: https://img.shields.io/pypi/v/coralme.svg
   :target: https://pypi.org/project/coralme/
   :alt: Current PyPI Version

.. image:: https://img.shields.io/pypi/pyversions/coralme.svg
   :target: https://pypi.org/project/coralme/
   :alt: Supported Python Versions

.. image:: https://img.shields.io/badge/PMID-%2041270734-blue
   :target: https://pubmed.ncbi.nlm.nih.gov/41270734/
   :alt: NCBI PubMed

.. image:: https://img.shields.io/badge/DOI-10.1016%2Fj.cels.2025.101451-blue
   :target: https://doi.org/10.1016/j.cels.2025.101451
   :alt: DOI

The **COmprehensive Reconstruction ALgorithm for ME-models (coralME)** is an automatic pipeline for the reconstruction of ME-models. coralME integrates existing ME-modeling packages `COBRAme`_, `ECOLIme`_, and `solveME`_, generalizes their functions for implementation on any prokaryote, and processes readily available organism-specific inputs for the automatic generation of a working ME-model.

coralME has four main objectives:

1. **Synchronize** input files to remove contradictory entries.
2. **Complement** input files from homology with a template organism to complete the E-matrix.
3. **Reconstruct** a ME-model.
4. **Troubleshoot** the ME-model to make it functional.

If you use coralME in your research, please cite https://doi.org/10.1016/j.cels.2025.101451

Getting started
---------------
With an existing M-model file (JSON or XML) and a corresponding genome GenBank file, run  (only v1.2.0+)

``coralme --m-model-path PATH_TO_M_MODEL --genbank-path PATH_TO_GENBANK_FILE``

To get help:

``coralme --help``

For more usage information, go to `Tutorials`_.

Installation
------------

Install using pip
=================
1. ``pip install coralme``

Install locally
===============
1. Clone repository and navigate to it.
2. ``pip install --editable .``

Install using docker (tested on Ubuntu 22.04)
=============================================
1. Clone repository and navigate to it.
2. ``docker build --file "./Dockerfile-Python3.10" . -t "python3.10-coralme"``
3. ``docker run --detach -p 10000:8888 -v USER/PATH/TO/coralme/:/opt/notebooks/ python3.10-coralme``
4. In your browser, go to ``localhost:10000``

Install using docker (to run MINOS and quad MINOS for Apple Silicon)
====================================================================
1. Install OrbStack (Docker Desktop alternative - recommended because it automatically uses Rosetta for AMD images).
2. Clone repository and navigate to coralme/.
3. ``docker buildx create --name multiarch --use``
4. ``docker buildx build --platform linux/amd64 --file "./Dockerfile-Python3.10" . -t "python3.10-coralme:amd64" --load``
5. ``docker run --detach -p 10000:8888 -v USER/PATH/TO/coralme/:/opt/notebooks/ python3.10-coralme:amd64``
6. In your browser, go to ``localhost:10000``

CLI and GUI
===========
To perform a ME-model reconstruction, command-line and graphical-user interfaces are provided for quick setup:

- To execute the command-line interface, type ``coralme``. At least, the model and the genome files must be provided. For help, execute ``coralme --help``

- To execute the graphical-user interface, the user must have installed R and `shiny <shiny_>`_. Then, in a terminal, execute ``runApp('app.R')`` and a browser tab should open with the ShinyApp.

Requirements
------------

- Python3, version 3.9, 3.10, 3.11, 3.12, 3.13 or 3.14
- Ubuntu 22.04 is recommended (libgfortran.so.5 is required to execute MINOS and quad MINOS)
- GUROBI and gurobipy are optional. Instead, the user should install GLPK or any solver compatible with COBRApy.
- Windows and MacOS users need to install `Gurobi`_ or `IBM CPLEX Optimizer <cplex_>`_. Alternatively, Windows users can install `WSL <wsl_>`_ and Ubuntu. Windows and MacOS users can use as well Docker Desktop to install it. We recommend the installation of Jupyter in the guest and its access through a browser from the host.

The MINOS and quad MINOS solvers
--------------------------------

Compiled MINOS and quad MINOS Debian-based OSes are provided here as ``*.so`` files under ``coralme/solver/debian``, and have been compiled using:

- Python3, versions 3.7.17, 3.8.20, 3.9.21, and 3.10.16
   - wheel 0.38.4
   - cython 0.29.32
   - numpy 1.21.6

- Python3, versions 3.11.11, 3.12.9, 3.13.2, and 3.14.0
   - wheel 0.43.0
   - cython 3.0.10
   - numpy 2.0.0
   - meson 1.8.1
   - ninja 1.11.1.4

EXPERIMENTAL: Compiled MINOS and quad MINOS for RHEL-based OSes are provided here as ``*.so`` files under ``coralme/solver/rhel``, and have been compiled using:

   - wheel 0.43.0
   - cython 3.0.10
   - numpy 2.0.0
   - meson 1.8.1
   - ninja 1.11.1.4

Documentation
-------------

You can find the documentation as a combined PDF called coralME_Documentation.pdf

Development
-----------

Test environments using ``gh act --bind -j test --rm --rebuild | tee act.log``. Use the ``version.sh`` script to gather information about package versions.

The coralME package has been tested using the following package versions:

========== ============ ============ ============= ============= ============= ============= =============
Package     Python 3.8   Python 3.9   Python 3.10   Python 3.11   Python 3.12   Python 3.13   Python 3.14
========== ============ ============ ============= ============= ============= ============= =============
cobra       0.30.0       0.30.0       0.30.0        0.30.0        0.30.0        0.30.0        0.30.0
numpy       1.24.4       1.26.4       1.26.4        2.2.6         2.2.6         2.2.6         2.2.6
scipy       1.10.1       1.13.1       1.14.0        1.14.0        1.14.0        1.14.1        1.14.0
pandas      2.0.3        2.3.3        2.3.3         2.3.3         2.3.3         2.3.3         2.3.3
biopython   1.83         1.85         1.86          1.86          1.86          1.86          1.86
sympy       1.12.1       1.12.1       1.12.1        1.12.1        1.12.1        1.12.1        1.12.1
pint        0.21.1       0.24.4       0.24.4        0.25.2        0.25.2        0.25.2        0.25.2
anyconfig   0.14.0       0.14.0       0.14.0        0.14.0        0.14.0        0.14.0        0.14.0
========== ============ ============ ============= ============= ============= ============= =============

.. refs
.. _COBRAme: https://github.com/SBRG/cobrame
.. _ECOLIme: https://github.com/SBRG/ecolime
.. _solveME: https://github.com/SBRG/solvemepy
.. _readthedocs: https://coralme.readthedocs.io/
.. _Gurobi: https://www.gurobi.com/
.. _cplex: https://www.ibm.com/products/ilog-cplex-optimization-studio/cplex-optimizer
.. _wsl: https://learn.microsoft.com/en-us/windows/wsl/install
.. _Tutorials: https://github.com/jdtibochab/coralme/tree/main/tutorials
.. _shiny: https://cran.r-project.org/web/packages/shiny/index.html
