Mackinac: A bridge between ModelSEED and COBRApy

metabolism, biology, optimization, flux, balance, analysis, fba
pip install mackinac==0.8.5


Mackinac: A bridge between ModelSEED and COBRApy

Mackinac combines the ability of ModelSEED to automatically reconstruct metabolic models with the advanced analysis capabilities in cobrapy to bridge the differences between the two frameworks. Mackinac provides support for using the ModelSEED web service to create draft genome-scale models from genomes available in the Pathosystems Resource Integration Center (PATRIC) and creates a COBRA model from a ModelSEED model. If you are not a registered PATRIC user, you must complete a new user registration to work with the ModelSEED web service.

If you already have models available in ModelSEED, you can simply import and create a COBRA model with the create_cobra_model_from_modelseed_model() function. You can then use all of the features in cobrapy to analyze, inspect, explore, and draw conclusions from the model.

You can also reconstruct and gap fill models using the ModelSEED service for any organism with a genome available in PATRIC. Additional functions are available for working with ModelSEED models, managing workspace objects, getting information about PATRIC genomes, and calculating reaction likelihoods.

Please use the cobrapy Google Group for help. Alternatively, you can use for quick questions and discussions (faster response times).

More information about opencobra is available at the website.


Use pip to install Mackinac from PyPI (we recommend doing this inside a virtual environment):

pip install mackinac

Web service URLs

Mackinac uses web services provided by other organizations which can be offline, the interface can change, or the URL can change. Mackinac uses these default URLs:

Alternate URLs include the following:

You can change the URL used to connect to a web service as shown below:

>>> import mackinac
>>> mackinac.modelseed.ms_client.url = ''
>>> mackinac.workspace.ws_client.url = ''
>>> mackinac.genome.patric_url = ''

Direct installation in virtual environment

  1. If virtualenvwrapper is not installed, follow the directions to install virtualenvwrapper. You should also update your shell startup file.

  2. Clone the git repository to your computer with this command:

    $ git clone
  3. Create a virtualenv for Mackinac with these commands:

    $ cd mackinac
    $ mkvirtualenv mackinac

    Use the --python option to select a specific version of Python for the virtualenv. For example, python=python3 to select the current python3 installed on the system.

    Note on macOS, matplotlib requires Python be installed as a framework but virtualenv creates a non-framework build of Python. See the matplotlib FAQ for details on a workaround.

  4. Upgrade pip and setuptools to the latest versions with these commands:

    (mackinac)$ pip install --upgrade pip setuptools
  5. Install all of the Mackinac dependencies with this command:

    (mackinac)$ pip install -r requirements.txt

    This command can take a few minutes while numpy, pandas, and libsbml are built in the virtualenv.

  6. Install the latest version of Mackinac with this command:

    (mackinac)$ python install
  7. Install the pytest package with this command:

    (mackinac)$ pip install pytest
  8. You need to provide a username and password for the tests to obtain an authentication token. Substitute your PATRIC username and password and run the tests with this command:

    (mackinac)$ TEST_USERNAME=<username> TEST_PASSWORD=<password> pytest mackinac/test -v

Run examples in a notebook

An example of how to use Mackinac is provided in a notebook. Here's how to start Jupyter and run the notebook from the virtualenv.

  1. Install Jupyter with this command:

    (mackinac)$ pip install jupyter
  2. Install a kernel that uses the virtualenv installation with this command:

    (mackinac)$ ipython kernel install --name "Mackinac_Python27" --user
  3. Start the Jupyter notebook server with this command:

    (mackinac)$ jupyter notebook

    Jupyter opens a web page in your default browser with a file browser.

  4. Navigate to the "documentation_builder" folder and click on the "modelseed.ipynb" notebook.

  5. After the notebook opens, from the "Kernel" menu, select "Change kernel" and click on "Mackinac_Python27".

  6. Now you can run the cells in the notebook.

Release Notes

Version 0.8.4 (May 18, 2017)

  • Fixed usages of deprecated cobra.core.Model.add_reaction() function
  • Added another way to parse error returned by ModelSEED server

Version 0.8.3 (May 8, 2017)

  • Fixed setting reaction objective coefficient with cobra 0.6

Version 0.8.2 (May 5, 2017)

  • Removed dependency on a specific version of six package
  • Updated directions for virtual environment installation
  • Switched default ModelSEED service URL to current active server

Version 0.8.1 (March 15, 2017)

  • Version corresponding to published paper

How to cite Mackinac

If you use Mackinac for an analysis, please cite this paper: Mackinac: a bridge between ModelSEED and COBRApy to generate and analyze genome-scale metabolic models


  1. COBRApy: COnstraints-Based Reconstruction and Analysis for Python
  2. High-throughput generation, optimization and analysis of genome-scale metabolic models (ModelSEED)
  3. PATRIC, the bacterial bioinformatics database and analysis resource

Mackinac Bridge

The Mackinac Bridge is one of the longest suspension bridges in the United States and spans the Straits of Mackinac to connect the Upper and Lower Peninsulas of Michigan.