Submodules¶
COBRA Toolbox Submodules Ecosystem¶
This tutorial explains how the COBRA Toolbox ecosystem of repositories is organised and how you should contribute new material. It is intended for contributors who want to add binaries, models, paper specific code or tutorials that will appear on the COBRA Toolbox website.
A key point¶
In order to add a file to any of these repositories, you must add it directly to the corresponding main repository on GitHub (for example COBRA.tutorials, COBRA.models and so on), not to the opencobra/cobratoolbox repository.
The cobratoolbox repository only contains submodule pointers. The actual content lives in the external repositories listed below.
Overall repository layout¶
Main toolbox repository¶
The central codebase is hosted at:
This repository contains the core code and the submodule references to external repositories responsible for storing binaries, tutorials, models and paper specific content.
Submodules:
COBRA.binary¶
Repository: https://github.com/opencobra/COBRA.binary
Purpose: This repository stores large binary files required by the COBRA Toolbox. Keeping these files here prevents the main repositories from becoming too large.
Contribution guidelines
Add all binary assets to COBRA.binary.
Do not store binary files directly in opencobra/cobratoolbox.
COBRA.papers¶
Repository: https://github.com/opencobra/COBRA.papers
Purpose: This repository contains folders for published papers in genome-scale modelling. Each folder holds reproduction scripts, workflows and visualisation resources.
Contribution guidelines
Add paper specific content to COBRA.papers.
Do not commit paper folders or code into opencobra/cobratoolbox.
COBRA.tutorials¶
Repository: https://github.com/opencobra/COBRA.tutorials
Purpose: This repository stores MATLAB live script tutorials (.mlx). A continuous integration pipeline automatically publishes new tutorials to the website:
Contribution guidelines
Add MLX tutorials directly to COBRA.tutorials.
Do not add tutorial files to the main toolbox.
COBRA.models¶
Repository: https://github.com/opencobra/COBRA.models
Purpose: This repository stores genome scale metabolic models. Using this repository prevents unnecessary growth of the main toolbox.
Contribution guidelines
Add models to COBRA.models.
Do not add model files to opencobra/cobratoolbox.
How to contribute in practice¶
Select the correct repository
Binaries: COBRA.binary
Paper specific content: COBRA.papers
Tutorials (MLX): COBRA.tutorials
Models: COBRA.models
Work directly in that repository
Fork the correct repository (for example COBRA.tutorials).
Clone it locally, create a branch and add your files.
Open a pull request
Submit your pull request to the correct repository, not to opencobra/cobratoolbox.
Submodule pointer updates
After your contribution is merged, maintainers will update the submodule pointer in the main toolbox.
Key reminders¶
The main toolbox lives at opencobra/cobratoolbox.
All binaries, models, tutorials and paper specific content must be added to their dedicated repositories.
Add files directly to the appropriate main repository, not to the toolbox.
Using the correct repository keeps the ecosystem clean, modular and maintainable.
Following these guidelines ensures your work is properly integrated and supports the COBRA community effectively.