pip install gba gbapy is a Python package that provides tools for building and analyzing self-replicating cell (SRC) models based on the growth balance analysis (GBA) mathematical formalism (Dourado et al. 2023).
The module offers two core components:
- π§ A builder class, to construct SRC models of any size from first principles,
- π A model class, to manipulate and optimize models once they are built.
from gba import Builder, Model, Protein, Metabolite, Reaction from gba import SpeciesLocation, ReactionType, ReactionDirection builder = Builder(name="toy") ### Add model information (ODS sheet 'Info') builder.add_info(category="General", key="Name", content="toy") builder.add_info(category="General", key="Description", content="Toy model") ### Create and add proteins (one protein per enzyme per reaction) ### - Masses in Da. p1 = Protein(id="p1", mass=1000000.0) p2 = Protein(id="p2", mass=1000000.0) builder.add_proteins([p1, p2]) ### Create and add metabolites: ### - External and internal glucose ### - One generic Protein product ### - Masses in Da. x_G = Metabolite(id="x_G", species_location=SpeciesLocation.EXTERNAL, mass=180.0) G = Metabolite(id="G", species_location=SpeciesLocation.INTERNAL, mass=180.0) Protein = Metabolite(id="Protein", species_location=SpeciesLocation.INTERNAL,mass=180.0) builder.add_metabolites([x_G, G, Protein]) ### Create and add transporter to import glucose: ### - Enzyme is composed of one protein p1 ### - Reaction is irreversible ### - kcat values in 1/h ### - KM values in g/L rxn1 = Reaction(id="rxn1", lb=0.0, ub=1000.0, reaction_type=ReactionType.TRANSPORT, metabolites={"x_G":-1.0, "G": 1.0}, proteins={"p1": 1.0}) rxn1.add_kcat_value(direction=ReactionDirection.FORWARD, kcat_value=45000.0) rxn1.add_km_value(metabolite_id="x_G", km_value=0.00013) rxn1.complete(kcat_value=0.0, km_value=0.0) builder.add_reaction(rxn1) ### Create and add ribosome reaction to produce proteins: ### - Enzyme is composed of one protein p2 ### - Reaction is irreversible ribosome = Reaction(id="Ribosome", lb=0.0, ub=1000.0, reaction_type=ReactionType.METABOLIC, metabolites={"G":-1.0, "Protein": 1.0}, proteins={"p2": 1.0}) ribosome.add_kcat_value(direction=ReactionDirection.FORWARD, kcat_value=45000.0) ribosome.add_km_value(metabolite_id="G", km_value=0.00013) ribosome.complete(kcat_value=0.0, km_value=0.0) builder.add_reaction(ribosome) ### Convert the model to GBA formalism (cf. Dourado et al. 2023) builder.convert(ribosome_mass_kcat=4.55, ribosome_mass_km=8.3) builder.build_GBA_model() ### Set cell's total density (g/L) builder.set_rho(340.0) ### Create external conditions (in g/L) x_G_conc = 1.0 for i in range(25): builder.add_condition(condition_id=str(i+1), metabolites={"x_G": x_G_conc}) x_G_conc *= 2/3 ### Save the model to an ODS file builder.export_to_ods()from gba import read_ods_model ### Load the ODS model model = read_ods_model(name="toy") ### Find a valid initial solution model.find_initial_solution() ### Optimize the model for all conditions model.find_optimum_by_condition() ### Make a plot model.plot(x="x_G", y="mu", title="Growth rate", logx=True) ### Export optimization data in CSV model.export_optimization_data()- π Toy model tutorial,
- π ODS file,
- π CSV optimization data.
Caution
Module not deployed on PyPI yet
The easiest way to install gbapy is from PyPI:
pip install gba Important
gbacpp software is required to run optimization tasks.
gbapy has been primilary developed for Unix/Linux and macOS systems.
- gbacpp is required to run optimization tasks.
- The Python API of GUROBI optimizer must be installed and requires a user license (free for academics).
If you want to install gbapy manually, download the latest release, and save it to a directory of your choice. Open a terminal and use the cd command to navigate to this directory. Then follow the steps below to compile and build the executables.
sh install.sh Tip
You can later uninstall the module using sh uninstall.sh.
Tutorials coming soon ...
Documentation coming soon ...
If you wish to contribute, do not hesitate to reach the developer.
Copyright Β© 2024-2025 Charles Rocabert, Furkan Mert.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.





