{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. Tutorial: Create iML1515 GECKO\n", "\n", "## Prerequisites\n", "A fundamental understanding of genome-scale metabolic models (GEM) (Orth et al., 2010a) and flux balance analysis (FBA) (Orth et al., 2010b) is imperative for a comprehensive grasp of this subject matter. Individuals lacking this prerequisite are advised to employ the cobrapy (Ebrahim et al., 2013) software and adhere to the provided tutorial to acquire the requisite skills (https://cobrapy.readthedocs.io). Optimization of models necessitates the installation of a solver on the user's system; for less complex models, the open-source GNU GLPK solver is adequate, but for more complex models, the utilization of commercial solvers such as Gurobi or IBM CPLEX is essential. These commercial solvers are available for free trial purposes and offer complimentary academic licenses, facilitating the analysis of complex models. The f2xba extended modeling package must be installed from PyPI, e.g., via `pip --install f2xba`. This also installs sbmlxdf, a powerful converter between SBML and table formats, and libSBML (Bornstein et al., 2008).\n", "\n", "## Background\n", "Flux balance analysis (FBA) is a robust methodology for simulating metabolic networks under various environmental and genetic conditions and has been used for many years (Watson, 1986). Genome-scale metabolic models (GEMs) delineate species (metabolites) within metabolic networks and their connectivity via reactions. Through gene product association, reactions can be linked to genes on the genome, coding for gene products (proteins) that comprise the enzymes catalyzing the reaction. Metabolic reactions can be spontaneous, i.e., not requiring any enzyme for catalysis, or be enzyme catalyzed. Enzyme catalyzed reactions in a GEM can be catalyzed by a single enzyme or by different isoenzymes (isozymes).\n", "\n", "FBA can be formulated as a linear programming (LP) problem, with optimization variables representing reaction fluxes that are bounded. The constraints are mass balance constraints for metabolites, ensuring that the production of a metabolite via metabolic reactions is balanced with its consumption by other reactions. The matrix coefficients correspond to the stoichiometric coefficients of the biochemical reaction. A frequently used objective function is the maximization of the growth rate, represented by a biomass reaction. The solutions to the FBA optimization problem correspond to non-unique reaction flux distributions that satisfy the constraints and variable bounds for a given optimization objective. While FBA has been demonstrated to make reasonable predictions regarding the phenotypic behavior, such as growth and excretion rates, it falls short in predicting which of the reactions or pathways in a highly meshed metabolic network carry the fluxes and to what extent.\n", "\n", "Extended genome-scale metabolic networks add constraints to the optimization problem relating to protein investment and/or thermodynamics, thereby allowing them to provide insight into the detailed functioning of the metabolic network. In essence, FBA can be regarded as a predictor of the macroscopic behavior of metabolic networks, while extended models offer insights into the intricate functioning of these networks.\n", "\n", "## General \n", "The most recent genome-scale metabolic network reconstruction of *Escherichia coli* is iML1515 (Monk et al., 2017). Those versed in FBA may already be acquainted with this model, and it will serve as the baseline GEM for all extended models created in this set of tutorials. The tutorials will cover a range of extended model types, including the enzyme constraint GECKO (Sánchez et al., 2017), the resource balance constraint RBA (Bulović et al., 2019; Goelzer et al., 2011), and the thermodynamics constraint TFA (Henry et al., 2007; Salvy et al., 2019) model. Growth balance analysis (GBA) models (Dourado & Lercher, 2020), which include detailed kinetic functions, could be integrated in a future tutorial once implemented in f2xba.\n", "\n", "The implementation of these models has been adapted to enhance model configuration, optimization, and combination. For instance, the TFA model can be integrated with the GECKO model to form a composite model, referred to as TGECKO. This comprehensive endeavor will be facilitated by the Python package f2xba, which serves as an extended modeling framework.\n", "\n", "All extended models will be stand-alone models and coded in SBML (Systems Biology Markup Language), see (Hucka et al., 2019), a standardized format utilized in the domain of systems biology. This format facilitates the sharing of models and is supported by numerous modeling and optimization tools, including cobrapy.\n", "\n", "Cobrapy is capable of importing all models created in this study, and it can optimize GECKO models in a manner analogous to its optimization of FBA models. TFA and TGECKO models, which are constrained by thermodynamics, necessitate a few additional lines of code to configure binary variables employed in MILP (Mixed Integer Linear Programming) and to configure inequality constraints. RBA and TRBA models require support from features in the f2xba package to reconfigure parameters of the RBA feasibility problem and implement the bisection algorithm.\n", "\n", "Extended models introduce new types of optimization variables, e.g., protein concentrations. The f2xba package implements features that support the separation of different types of variables extracted from the optimization solution, and it also adds postprocessing to improve the presentation of results. This includes the generation of plots that show the correlation between predicted and measured growth rates and protein concentrations. Optimization results can be exported in a format that can be loaded into Escher (King, Dräger, et al., 2015) for graphical presentation of predicted flux or protein concentrations. Consequently, we employ the f2xba package consistently for model optimization and results analysis.\n", "\n", "Our models will be optimized to maximize growth rate under different minimal media conditions. The predicted growth rates (1/h) and predicted protein concentrations (mg/gP – mg protein per gram total protein) will be compared to experimental data for growth rates (Adadi et al., 2012) and proteomics (Schmidt et al., 2016). The primary objective is to enhance the correlation between predicted and measured protein concentrations.\n", "\n", "In order to ensure backwards compatibility, f2xba provides support for optimization through the utilization of the well-known cobrapy interface. Additionally, f2xba offers an alternative direct interface via gurobipy, a measure that can lead to a substantial reduction in the time required for model loading and optimization, particularly for more extensive and intricate models. To demonstrate this enhancement, an experiment was conducted using a MacBook Pro 2019, which is equipped with a 2.4 GHz 8-Core Intel i9 processor. The thermodynamics enabled RBA model of iML1515 (iML1515_TRBA.xml) was utilized, and the resultant loading time was recorded as 37 seconds. In contrast, the cobrapy interface requires 172 seconds for the same process. Additionally, the growth rate optimization across six distinct nutrient conditions is achieved in 195 seconds using gurobipy, whereas cobrapy requires 1226 seconds, indicating a factor of 6.3.\n", "\n", "The tutorials should be executed in the sequence dictated by their numbering, thereby enabling an incremental enhancement in the predictive quality and complexity of the models. The process commences with the utilization of rudimentary default parametrizations, which are subsequently refined through workflows designed for the manual identification and adjustment of critical model parameters. The integration of AI-predicted turnover numbers (kcat values) and the automated tuning of turnover numbers to proteomics data will also be addressed.\n", "\n", "## Other organisms\n", "The workflows delineated herein can be applied to generate extended models of other organisms, provided that a SBML-coded GEM exists that can be analyzed by FBA. Ideally, this GEM is well curated and annotated, on the level of the iML1515 GEM, thereby facilitating the automated creation of extended models with limited manual configuration. Gene identifiers employed in the model must align with locus tags from the genome annotation to facilitate the automatic retrieval of protein-related data from the NCBI genome and/or UniProt (The UniProt, 2023) protein database. Additionally, genes can be annotated with UniProt identifiers, thereby facilitating a UniProt lookup. Metabolites in the model should be linked to identifiers in external databases, such as KEGG (Kanehisa & Goto, 2000) compound identifiers, which are used to retrieve AI-predicted turnover numbers from the TurNuP web portal (Kroll et al., 2023) and SEED identifiers (Henry et al., 2010), which are used to retrieve thermodynamics-related data from a thermodynamics database, extracted from the pytfa (Salvy et al., 2019) repository (https://github.com/EPFL-LCSB/pytfa/raw/refs/heads/master/data/thermo_data.thermodb). It should be noted that not all published GEMs of organisms satisfy this high-quality level of annotation. In such cases, two options are suggested. The first option is to update the GEM with annotation data, potentially extracted from the supporting information of the respective publication. The Python package sbmlxdf provides support for such model updates. The second option is to add relevant annotation and mapping data to the extended model configuration data. The efficacy of these approaches has been demonstrated in generating extended models of **yeast9** (Zhang et al., 2024), a GEM for *Saccharomyces cerevisiae*, **iJN678** (Nogales et al., 2012), a GEM of *Synechocystis* sp. PCC 6803, and **MMSYN** (Breuer et al., 2019), a GEM for the synthetic cell JCVI-Syn3A, which is based on *Mycoplasma mycoides capri*.\n", "\n", "## This Tutorial\n", "In this initial tutorial, the process of creating an enzyme constraint GECKO model based on an existing genome-scale metabolic model (FBA model) will be demonstrated. The GECKO model will be implemented according to the GECKO formulation (Sánchez et al., 2017), with minor adjustments intended to enhance the model structure. This first model primarily utilizes default parametrization, thereby requiring minimal manual configuration. Manual configurations will be explicitly coded and converted into spreadsheet tables, stored as Microsoft Excel files. Alternatively, configuration files can be created and managed directly using a spreadsheet program, such as Microsoft Excel.\n", "\n", "A GECKO model couples enzyme-catalyzed reactions to protein requirements and places an upper limit on total protein (Sánchez et al., 2017). The f2xba program utilizes a GEM and several configuration files as input to create an enzyme constraint GECKO model by executing a sequence of steps. Enzyme-catalyzed reactions are split into forward and reverse directions when reversible in the GEM and per isoenzyme. For instance, the reversible reaction with the identifier 'R_FBA' in the GEM, catalyzed by two isoenzymes, is replaced by four reactions with identifiers 'R_FBA_iso1', 'R_FBA_iso2', 'R_FBA_iso1_REV' and 'R_FBA_iso2_REV'. Non-negative protein concentration variables are added, with identifiers 'V_PC_\\' and for total modeled protein ('V_PC_total'). These variables are incorporated into the SBML reaction components in units of milligrams per gram of dry weight (mg/gDW). An upper bound on the total modeled protein is configured, and reaction fluxes are coupled to protein requirements according to the following general formulation:\n", "\n", "\\begin{equation}\n", "flux ≤ kcat \\cdot n\\_AS \\cdot avg\\_enz\\_sat \\cdot \\frac{[P]}{stoic \\cdot MW}\n", "\\end{equation}\n", "\n", "The *flux* is expressed in mmol/gDW, *kcat* denotes the turnover number in 1/h, *stoic* signifies the number of protein copies in the catalyzing enzyme, *n_AS* indicates the number of active sites in the enzyme, *\\[P]* represents the protein concentration in mg/gDW, *MW* denotes the protein molecular weight in g/mol, and *avg_enz_sat* refers to the average enzyme saturation level. It is noteworthy that the average enzyme saturation can attain non-pysiological values greater than 1.0 to predict measured growth rates. In the context of the optimization problem, the inequality is replaced by an equality. Coupling factors $CC_{ij}$ for protein *i* and reaction *j* are introduced, according to the formula:\n", "\n", "\\begin{equation}\n", "CC_{ij} = \\frac{stoic_{ij} \\cdot MW_i } {(kcat_{ij} \\cdot n\\_AS_{ij} \\cdot avg\\_enz\\_sat)}\n", "\\end{equation}\n", "\n", "Consequently, protein mass balance constraints are incorporated, with ids 'C_prot_' and total modeled protein ('C_prot_pool'). These constraints are incorporated into the SBML species components. The individual and total protein mass balance constraints are configured using the formula: \n", "\n", "\\begin{equation}\n", "C\\_prot_i: \\sum_j{CC_{ij} \\cdot R_j} = V\\_PC_i\n", "\\end{equation}\n", "\n", "\\begin{equation}\n", "C\\_prot\\_pool: \\sum_i{V\\_PC_i} = V\\_PC\\_total\n", "\\end{equation}\n", "\n", "$R_j$ being the flux carried by reaction j. The coupling constraints are added to the SBML reaction components as products and reactants.\n", "\n", "The organization of this tutorial, as well as the subsequent tutorials, follows a consistent structure. However, the first tutorial does contain additional subsections that are intended to provide comprehensive explanations. The general structure of the tutorial is as follows:\n", "\n", "- Initial setup\n", "- Creation of configuration files\n", "- Creation of an extended model and its storage as a SBML file\n", "- Loading and optimization of the extended model using cobrapy\n", "- Analysis of the optimization results\n", "- Monitoring of the progress of the model's evolution\n", "- Demonstration of loading and optimization of the extended model using gurobipy as an alternative to cobrapy\n", "\n", "**Notes to reaction and species identifiers**: Cobrapy eliminates the leading `R_` and `M_` of reaction and metabolite/species identifiers from its user interface. However, when creating or modifying models, the original identifiers must be utilized.\n", "\n", "It should be noted that the text has been refined using the DeepL Pro Write (https://www.deepl.com) tool.\n", "\n", "Peter Schubert, Heinrich-Heine University Duesseldorf, Institute for Computational Cell Biology (Prof. Dr. M. Lercher), February, 2025" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 1: Initial Setup\n", "\n", "It is imperative that this tutorial and the subsequent tutorials be executed from a dedicated working directory. This initial setup will create a directory structure, download the proteomics dataset and the foundational GEM from the Internet, import required Python packages, and set initial variables. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1 create directory structure\n", "\n", "The following directories will be created: `./data` will contain data files required for model generation and optimization, and our models will be written and loaded from `./SBML_models`. We can convert our models to Microsoft Excel spreadsheet format, which may be more convenient for interrogating the model structure. Such models will be stored under `./xlsx_models`. Growth rate and protein concentration correlation plots will be stored under `./plots`. Optimization results can also be exported in a format compliant with Escher maps, which are stored under the directory named `./escher`. Finally, a directory named `./tmp` is required to store temporary data during model generation.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Create directory structure\n", "import os\n", "\n", "for directory in ['data', 'SBML_models', 'xlsx_models', 'escher', 'plots', 'tmp']:\n", " if not os.path.exists(directory):\n", " os.makedirs(directory)\n", " print(f'{directory} created')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2 download proteomics data\n", "\n", "The FBA model is employed to predict flux distributions in a metabolic network, while the GECKO model can additionally predict protein levels. The predictive quality of the GECKO models will be assessed by comparing predicted to measured protein concentrations across different nutrient conditions. A proteomics data table is retrieved from a GitHub repository. This table has been extracted from the literature (Schmidt et al., 2016) and has undergone minor corrections of protein and gene locus identifiers." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "E. coli proteomics (based on Schmidt et al., 2016): data/Ecoli_Schmidt_proteomics.xlsx\n" ] } ], "source": [ "# Download proteomics data\n", "try:\n", " import wget\n", "except ModuleNotFoundError:\n", " import sys\n", " !{sys.executable} -m pip install wget\n", " import wget\n", " \n", "base_url = 'https://github.com/SchubertP/f2xba/raw/refs/heads/main/docs/source/notebooks/'\n", "fname = 'Ecoli_Schmidt_proteomics.xlsx'\n", "\n", "full_fname = os.path.join('data', fname)\n", "if not os.path.exists(full_fname):\n", " url = base_url + fname\n", " print(f'\\ndownloading {fname} from {url}')\n", " wget.download(url, out=full_fname)\n", "print(f'E. coli proteomics (based on Schmidt et al., 2016): {full_fname}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.3 download iML1515.xml \n", "\n", "The iML1515 model serves as the foundational GEM, which can be obtained from the BiGG Models database through a straightforward procedure. To initiate the process, one must first access the BiGG Models database using a web browser (http://bigg.ucsd.edu). Within the database, the `iML1515` model, which is the metabolic model of *Escherichia coli* K-12 substr. MG1655, should be searched for. To initiate the download, navigate to the designated `Download COBRA model from the BiGG Database` section and select the `SMBL` file `iML1515.xml`. Thereafter, the model should be downloaded and copied to the `./SBML_models` directory." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.4 import packages and set model names\n", "\n", "The initial setup is concluded by importing the relevant classes and functions from the f2xba package. The core class for created extended models is `f2xba.XbaModel`. The class `f2xba.EcModel` contains methods targeted at enzyme constraint models, such as GECKO. Finally, `f2xba.utils.mapping_utils` contains some helper functions. The model names for the FBA model and our first GECKO model are also set." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Required imports and model names\n", "import os\n", "import pandas as pd\n", "\n", "from f2xba import XbaModel, EcModel\n", "from f2xba.utils.mapping_utils import write_parameter_file\n", "\n", "# Model names\n", "fba_model = 'iML1515'\n", "target_model = 'iML1515_default_GECKO'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 2: Create configuration files\n", "\n", "The generation of extended models necessitates the incorporation of additional parameters, such as enzyme turnover numbers or the number of protein copies in enzymes. The identification of reasonable values for these parameters represents a significant challenge in the development of extended models. A comprehensive GEM, accompanied by references to online databases, can be utilized by f2xba features to automatically assign parameter values, requiring minimal configuration. The initial GECKO model will be developed with minimal configuration. \n", "\n", "Two configuration files must be created and stored in Microsoft Excel format (.xlsx): one XBA configuration file to configure the XbaModel instance and one ECM configuration file used for the EcModel instance. These configuration files will be generated by Python code; alternatively, they could be created with a spreadsheet editor like Microsoft Excel." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.1 create XBA configuration file\n", "\n", "The creation of an extended model is initiated through the instantiation and configuration of an XbaModel instance, which reads in the foundational GEM and downloads online resources pertinent to the model. The downloaded data will be stored in the './data' directory.\n", "\n", "The initial XBA configuration file comprises two data tables. The first table, designated as `generals`, encompasses general configuration data, including default kcat values (turnover numbers) in units of per second for metabolic reactions, denoted as `default_metabolic_kcat`, and transporters, indicated as `default_transporter_kcat`. Within this context, a metabolic reaction is defined as a reaction where the participating metabolites (reactants and products) are located in a single compartment. Furthermore, organism-specific identifiers are established. These include the NCBI taxonomic identifier of the organism, designated as `organism_id`, which is employed to retrieve protein-specific data from UniProt. Additionally, the BioCyc (Karp et al., 2017) identifier, denoted as `biocyc_org_prefix`, is utilized to retrieve enzyme compositions. The BioCyc identifier is optional and should be employed only if BioCyc contains high-quality enzyme composition information for the organism. The directory location where organism-specific files are stored is defined by the variable `organism_dir`. The second table we created, `remove_gps`, is optional. It is used to selectively remove gene products configured in the GEM, such as dummy proteins or proteins where UniProt entries do not exist. This initial XBA configuration file will be extended in upcoming tutorials with more specific model configurations.\n", "\n", "#### GECKO models for other organisms: \n", "The `organism_id` can be queried from the NCBI taxonomy database (Schoch et al., 2020) accessible via https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi. It is imperative that gene products (proteins) link to their corresponding UniProt entries. f2xba extracts the UniProt annotation from the SBML \"annotation\" element in the foundational GEM if available; otherwise, it attempts to locate the corresponding UniProt record based on the configured gene locus (SBML \"label\" attribute). In instances where UniProt entries are not available for the organism, a pseudo-UniProt file can be generated, for example, based on a protein BLAST, and stored in the designated `./data` directory. As an alternative, f2xba can retrieve protein-related information from NCBI genome data. The configuration of NCBI genome data retrieval will be addressed in a subsequent tutorial, where an RBA model will be created." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2 table(s) with parameters written to data/iML1515_default_GECKO_xba_parameters.xlsx\n" ] } ], "source": [ "# Create XBA parameter file\n", "xba_params = {}\n", "data = [['default_metabolic_kcat', 12.5], \n", " ['default_transporter_kcat', 100.0], \n", " ['organism_dir', 'data'], \n", " ['organism_id', 83333], \n", " ['biocyc_org_prefix', 'ecoli']]\n", "xba_params['general'] = pd.DataFrame(data, columns=['parameter', 'value']).set_index('parameter')\n", "\n", "data = [['G_s0001', 'dummy gene product - spontaneous reactions']]\n", "xba_params['remove_gps'] = pd.DataFrame(data, columns=['gp_id', 'notes']).set_index('gp_id')\n", "write_parameter_file(os.path.join('data', f'{target_model}_xba_parameters.xlsx'), xba_params)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.2 create ECM configuration file\n", "\n", "The ECM configuration file comprises a single table, designated `generals`. The parameter `ecm_type` specifies the enzyme constraint model. f2xba can create 'GECKO' but also 'ccFBA', 'MOMENT' (Adadi, 2012), or 'MOMENTmr' as per implementation in the R package 'sybilccFBA' (Desouki, 2015) and described in the thesis (Desouki, 2016). ccFBA is a pruned GECKO model in which only the 'cheapest' isoenzyme (lowest MW/kcat) is retained per reaction. MOMENTmr is based on MOMENT, but it considers promiscuous enzymes. MOMENT and MOMENTmr use a fixed protein copy number of 1 for enzyme compositions. The `arm_flag` is utilized to regulate the generation of 'arm' reactions, which can be introduced for reactions catalyzed by multiple enzymes to regulate the summary flux post-splitting. This also introduces pseudo species to link split reactions and 'arm' reaction. The parameter `avg_enz_sat` sets the average enzyme saturation level used for all enzymes. We choose a value where the predicted growth rate is equal to the measured growth rate for our reference condition. `p_total` specifies the protein mass fraction with respect to the dry cell mass. The value used here is derived from the literature (Bremer & Dennis, 2008) for a doubling time of 60 minutes. To enable f2xba to calculate the total modeled protein constraint, it is also necessary to define the mass fraction of modeled protein to total protein in parameter `pm2totpm_val_or_paxdb`. The value used here has been extracted from proteomics (Schmidt et al., 2016) for growth on glucose. Alternatively, the protein composition file, downloaded from PaxDB (Huang et al., 2023), can be provided, as this will be demonstrated in the subsequent tutorial.\n", "\n", "#### GECKO models for **other organisms**: \n", "A value for `p_total` can be retrieved from experimental data related to cell dry mass composition. Values for `pm2totpm_val_or_paxdb` can be determined from quantitative proteomics data by summing up protein masses of proteins used in the model." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 table(s) with parameters written to data/iML1515_default_GECKO_ecm_parameters.xlsx\n" ] } ], "source": [ "# Create ECM parameter file\n", "ecm_params = {}\n", "data = [['ecm_type', 'GECKO'], \n", " ['arm_flag', False], \n", " ['avg_enz_sat', 0.99], \n", " ['p_total', 0.57], \n", " ['pm2totpm_val_or_paxdb', 0.5557]]\n", "ecm_params['general'] = pd.DataFrame(data, columns=['parameter', 'value']).set_index('parameter')\n", "write_parameter_file(os.path.join('data', f'{target_model}_ecm_parameters.xlsx'), ecm_params)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 3: Create GECKO model\n", "\n", "Subsequent to the generation of the requisite configuration files, the creation of an extended genome-scale model adheres to a straightforward workflow. A `XbaModel` instance serves as an in-memory representation of the model during the extension process. The genome-scale metabolic model is initially loaded from a SBML file, and the in-memory model is prepared for the extension using the `xba_model.configure() `function. This preparatory step enables preliminary modifications at the level of GEM modeling. Subsequently, the in-memory model is provided as a reference to extended model type-specific classes, such as `EcModel`, which extend the in-memory model based on supplied configuration data. The configuration ca be validated against the SBML specifications, and any warnings or errors are written to the `.\\tmp` directory. Finally, the in-memory model is exported in SBML-compliant format. Optionally, the model can be stored in XLSX format, which may facilitate model inspection.\n", "\n", "This concludes the first part of this tutorial, the creation of a GECKO model." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "loading: SBML_models/iML1515.xml (last modified: Thu Dec 5 10:03:46 2024)\n", "2 table(s) with parameters loaded from data/iML1515_default_GECKO_xba_parameters.xlsx (Thu Feb 12 15:14:36 2026)\n", " 1 gene product(s) removed from reactions (1515 gene products remaining)\n", "3 reactions with atom imbalances, e.g. [R_PUACGAMS, R_BIOMASS_Ec_iML1515_core_75p37M, R_BIOMASS_Ec_iML1515_WT_75p37M, ...], check XbaModel.atom_imbalances.\n", "2 reactions with charge imbalances, e.g. [R_BIOMASS_Ec_iML1515_core_75p37M, R_BIOMASS_Ec_iML1515_WT_75p37M, ...], check XbaModel.charge_imbalances.\n", "extracting UniProt protein data from data/uniprot_organism_83333.tsv\n", "1515 proteins created\n", "1243 enzymes added with default stoichiometry\n", "3855 enzymes extracted from Biocyc\n", "1237 enzyme compositions updated from BioCyc enzyme data\n", "2229 reactions catalyzed by 1243 enzymes\n", "default kcat values configured for ['metabolic', 'transporter'] reactions\n", " 0 enzymes removed due to missing kcat values\n", "1877 constraints (+0); 2712 variables (+0); 1515 genes (-1); 5 parameters (+0)\n", ">>> BASELINE XBA model configured!\n", "\n", "1 table(s) with parameters loaded from data/iML1515_default_GECKO_ecm_parameters.xlsx (Thu Feb 12 15:14:40 2026)\n", "modelled protein fraction of total protein mass 0.5557 g/g\n", "1515 protein constraints to add\n", "1515 constraint ids added to the model (3392 total constraints)\n", "protein constraint: 316.75 mg/gDW - modelled protein\n", " 1 constraint ids added to the model (3393 total constraints)\n", "1516 protein variables to add\n", "1516 variable ids added to the model (7372 total variables)\n", "3393 constraints (+1516); 7372 variables (+4660); 1515 genes (-1); 11 parameters (+6)\n", "model exported to SBML format: SBML_models/iML1515_default_GECKO.xml\n", "model exported to Microsoft Excel Spreadsheet: xlsx_models/iML1515_default_GECKO.xlsx\n" ] } ], "source": [ "# Create and configure XbaModel instance\n", "xba_model = XbaModel(os.path.join('SBML_models', f'{fba_model}.xml'))\n", "xba_model.configure(os.path.join('data', f'{target_model}_xba_parameters.xlsx'))\n", "\n", "# Create and configure EcModel instance\n", "ec_model = EcModel(xba_model)\n", "ec_model.configure(os.path.join('data', f'{target_model}_ecm_parameters.xlsx'))\n", "\n", "# Validated compliance to SBML specifications and store models\n", "if ec_model.validate():\n", " ec_model.export(os.path.join('SBML_models', f'{target_model}.xml'))\n", " ec_model.export(os.path.join('xlsx_models', f'{target_model}.xlsx'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "---\n", "## Step 4: Load and optimize GECKO model (cobrapy)\n", "\n", "In the subsequent segment of this tutorial, we will proceed with the loading of the GECKO model, the optimization of said model across a range of nutrient conditions, and the utilization of f2xba features for the extraction of results from the optimization solutions in a range of suitable formats. We will employ the cobrapy interface, with which we are already well-acquainted; however, we will subsequently demonstrate the gurobipy interface as an alternative. In this tutorial, we will proceed in a stepwise fashion. The sequence of steps involves the importation of classes and functions from f2xba, the loading of the model using the cobrapy interface, the configuration of the media conditions, and the optimization of the model while collecting the optimization results." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.1 import packages\n", "\n", "The utilization of the cobrapy interface necessitates the importation of the `cobra` package, which should be installed within the Python environment. From \"f2xba,\" the classes `EcmOptimization` are imported, facilitating enzyme constraint model optimization, and `EcmResults`, supporting the extraction and presentation of optimization results for such type of models. Additionally, helper functions from `f2xba.utils.mapping_utils` are imported." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Required imports and model names\n", "import os\n", "import re\n", "import pandas as pd\n", "import cobra\n", "\n", "from f2xba import EcmOptimization, EcmResults\n", "from f2xba.utils.mapping_utils import load_parameter_file, write_parameter_file\n", "\n", "# Model name\n", "target_model = 'iML1515_default_GECKO'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.2 model loading\n", "\n", "The cobrapy function `cobra.io.read_sbml_model()` is employed to load the GECKO model. While cobrapy possesses the capability to optimize GECKO models independently, an instance of EcmOptimization is utilized to access parameters present within the SBML coded model file, which are inaccessible via cobrapy. This approach is adopted to facilitate the presentation of the optimization results." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set parameter Username\n", "Set parameter LicenseID to value 2731209\n", "Academic license - for non-commercial use only - expires 2026-10-31\n", "SBML model loaded by sbmlxdf: SBML_models/iML1515_default_GECKO.xml (Thu Feb 12 15:15:26 2026)\n", "total modeled protein: 316.75 mg/gDW, average saturation level: 0.99\n", "1515 genes: (498) transporter, (1017) metabolic\n" ] } ], "source": [ "# Load model using cobrapy\n", "fname = os.path.join('SBML_models', f'{target_model}.xml')\n", "ecm = cobra.io.read_sbml_model(fname)\n", "total_protein = ecm.reactions.get_by_id('V_PC_total').upper_bound\n", "\n", "# Load SBML model also with EcmOptimization\n", "eo = EcmOptimization(fname, ecm)\n", "sigma = eo.avg_enz_saturation\n", "all_genes = set(eo.m_dict['fbcGeneProducts']['label'].values)\n", "tx_genes, metab_genes = eo.get_tx_metab_genes()\n", "print(f'total modeled protein: {total_protein:.2f} mg/gDW, average saturation level: {sigma}')\n", "print(f'{len(all_genes)} genes: ({len(tx_genes)}) transporter, ({len(metab_genes)}) metabolic')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.3 configure media conditions\n", "\n", "Six minimal media conditions will be created for use in the subsequent optimization loop. Corresponding measured growth rates were extracted from the extant literature (Adadi et al., 2012). Each media condition consists of a base medium plus one carbon source. While uptake of the main carbon source must be limited during FBA optimization, unlimited uptake rates can be configured for GECKO model optimization. The reference condition is designated as 'Glucose.'" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6 minimal media conditions created for simulation\n" ] } ], "source": [ "# Create media conditions\n", "media_grs = {'Acetate': ['ac', 0.29], 'Glycerol': ['glyc', 0.47], 'Fructose': ['fru', 0.54], \n", " 'L-Malate': ['mal__L', 0.55], 'Glucose': ['glc__D', 0.66], 'Glucose 6-Phosphate': ['g6p', 0.78]}\n", "base_medium = ['ca2', 'cbl1', 'cl', 'co2', 'cobalt2', 'cu2', 'fe2', 'fe3', 'h2o', 'h', 'k', 'mg2', \n", " 'mn2', 'mobd', 'na1', 'nh4', 'ni2', 'o2', 'pi', 'sel', 'slnt', 'so4', 'tungs', 'zn2']\n", "conditions = {}\n", "exp_grs = {}\n", "for cond, (carbon_sid, exp_gr) in media_grs.items():\n", " conditions[cond] = {f'EX_{sidx}_e': 1000.0 for sidx in base_medium}\n", " conditions[cond][f'EX_{carbon_sid}_e'] = 1000.0\n", " exp_grs[cond] = exp_gr\n", "print(f'{len(conditions)} minimal media conditions created for simulation')\n", "reference_cond = 'Glucose'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.4 optimization loop\n", "\n", "In the optimization loop, the different media conditions are iterated through, the model is optimized using cobrapy functionality, and the optimization results are collected in `pred_results`. The optimization objective is retained from the foundational GEM, which is maximization of growth rate. This is represented by the biomass reaction `BIOMASS_Ec_iML1515_core_75p37M`." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Acetate : pred gr: 0.261 h-1 vs. exp 0.290, diff: -0.029\n", "Glycerol : pred gr: 0.569 h-1 vs. exp 0.470, diff: 0.099\n", "Fructose : pred gr: 0.575 h-1 vs. exp 0.540, diff: 0.035\n", "L-Malate : pred gr: 0.603 h-1 vs. exp 0.550, diff: 0.053\n", "Glucose : pred gr: 0.692 h-1 vs. exp 0.660, diff: 0.032\n", "Glucose 6-Phosphate : pred gr: 0.648 h-1 vs. exp 0.780, diff: -0.132\n" ] } ], "source": [ "# Optimize model using cobrapy\n", "pred_results = {}\n", "for cond, medium in conditions.items():\n", " ecm.medium = medium \n", " solution = ecm.optimize()\n", " if solution.status == 'optimal':\n", " gr = solution.objective_value\n", " pred_results[cond] = solution\n", " print(f'{cond:25s}: pred gr: {gr:.3f} h-1 vs. exp {exp_grs[cond]:.3f}, '\n", " f'diff: {gr - exp_grs[cond]:6.3f}')\n", " else: \n", " print(f'{cond} ended with status {solution.status}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 5: Analyze results\n", "\n", "The analysis will entail a comparison of predicted growth rates and optimal protein concentrations with measurements, as well as an examination of flux distributions. Measured protein concentration data will be loaded from a spreadsheet file.\n", "\n", "The variable values determined during optimization for condition \\ are contained in the file named `pred_results[].fluxes`. The optimization variables include reaction fluxes, after reaction splitting, in units of mmol/gDW, and protein concentrations in units of mg/gP. To present the results in more suitable forms, we will use f2xba methods provided by `EcmResults`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### load proteomics data\n", "\n", "The protein concentrations of the organism *E. coli* BW25113, a close relative to *E. coli* K-12 MG1655, have been measured across several conditions (Schmidt et al., 2016). The quantitative proteomics data from this study is documented in the file `Ecoli_Schmidt_proteomics.xlsx`. However, protein concentrations measured with a low confidence level are excluded from the comparative analysis. The threshold for exclusion is set at 5% of the measured proteins, with a combined mass that is less than 0.05% of the total protein mass.\n", "\n", "Proteomics data **other organisms**:\n", "\n", "In instances where there is a need to report the correlation between predicted and measured protein concentrations, proteomics data is required. In such cases, the measured protein concentrations must be presented in tabular format, with rows indexed by the gene locus identifier. The columns of the table correspond to the condition names utilized in the optimization loop, and they store the protein concentrations in units of milligrams of protein per gram of total protein (milli protein mass fraction - **mpmf**). The table can also contain supplementary information, which is stored under various headings, including `uniprot`, `gene_name`, `description`, `mw_Da`, `avg_mpmf` or `rank` the latter of which corresponds to the sorting index for avg_mpmf. This additional data will be incorporated into the results. " ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2347 records of proteomics loaded from data/Ecoli_Schmidt_proteomics.xlsx\n", "2232 records with confidence level above 43.0\n" ] } ], "source": [ "# Load proteomics\n", "fname = os.path.join('data', 'Ecoli_Schmidt_proteomics.xlsx')\n", "with pd.ExcelFile(fname) as xlsx:\n", " df_mpmf = pd.read_excel(xlsx, sheet_name='proteomics', index_col=0)\n", " print(f'{len(df_mpmf)} records of proteomics loaded from {fname}')\n", "min_confidence_level = 43.0\n", "df_mpmf = df_mpmf[df_mpmf['confidence'] > min_confidence_level]\n", "print(f'{len(df_mpmf)} records with confidence level above {min_confidence_level}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### instantiate EcmResults\n", "\n", "The `df_mpmf` table, which presents the measured protein concentrations, is an optional parameter." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "er = EcmResults(eo, pred_results, df_mpmf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### retrieve reaction fluxes\n", "\n", "The method `er.collect_fluxes()` extracts the optimized reaction fluxes from the optimization solutions. It also adds additional information to the results, which can be used to filter specific records. For example, the following code can be used to filter records:\n", "\n", "```Python code\n", "df_fluxes[df_fluxes['reaction_str'].str.contains('f6p') & abs(df_fluxes['Glucose']) > 0.0]\n", "```\n", "\n", "When called with the parameter `net=True`, the reaction fluxes of split reactions are aggregated. This corresponds to the flux results of the FBA optimization." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5856 reaction fluxes\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
reaction_strnet_ridgprgroupsrankmean mmol_per_gDWhabs_mean mmol_per_gDWhstdevAcetateGlycerolFructoseL-MalateGlucoseGlucose 6-Phosphate
rid
ATPS4rpp_iso1adp_c + 4.0 h_p + pi_c => atp_c + h2o_c + 3.0 h_cATPS4rppb3731 and b3732 and b3733 and b3734 and b3735 ...148.58842648.58842614.07665946.11918055.25015634.70204253.08951770.07545932.294203
H2Otpp_REVh2o_c => h2o_pH2Otppb0875240.62324940.62324929.25192622.86984748.68212129.42750632.56185095.65039014.547780
CYTBO3_4pp4.0 h_c + 0.5 o2_c + q8h2_c => h2o_c + 4.0 h_p...CYTBO3_4ppb0432 and b0431 and b0429 and b0430336.50737036.50737018.77982730.81512733.88730726.00986629.45488674.23548024.641551
\n", "
" ], "text/plain": [ " reaction_str net_rid \\\n", "rid \n", "ATPS4rpp_iso1 adp_c + 4.0 h_p + pi_c => atp_c + h2o_c + 3.0 h_c ATPS4rpp \n", "H2Otpp_REV h2o_c => h2o_p H2Otpp \n", "CYTBO3_4pp 4.0 h_c + 0.5 o2_c + q8h2_c => h2o_c + 4.0 h_p... CYTBO3_4pp \n", "\n", " gpr groups rank \\\n", "rid \n", "ATPS4rpp_iso1 b3731 and b3732 and b3733 and b3734 and b3735 ... 1 \n", "H2Otpp_REV b0875 2 \n", "CYTBO3_4pp b0432 and b0431 and b0429 and b0430 3 \n", "\n", " mean mmol_per_gDWh abs_mean mmol_per_gDWh stdev \\\n", "rid \n", "ATPS4rpp_iso1 48.588426 48.588426 14.076659 \n", "H2Otpp_REV 40.623249 40.623249 29.251926 \n", "CYTBO3_4pp 36.507370 36.507370 18.779827 \n", "\n", " Acetate Glycerol Fructose L-Malate Glucose \\\n", "rid \n", "ATPS4rpp_iso1 46.119180 55.250156 34.702042 53.089517 70.075459 \n", "H2Otpp_REV 22.869847 48.682121 29.427506 32.561850 95.650390 \n", "CYTBO3_4pp 30.815127 33.887307 26.009866 29.454886 74.235480 \n", "\n", " Glucose 6-Phosphate \n", "rid \n", "ATPS4rpp_iso1 32.294203 \n", "H2Otpp_REV 14.547780 \n", "CYTBO3_4pp 24.641551 " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_fluxes = er.collect_fluxes()\n", "print(f'{len(df_fluxes)} reaction fluxes')\n", "df_fluxes.head(3)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2712 net reaction fluxes\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
reaction_strgprgroupsrankmean mmol_per_gDWhabs_mean mmol_per_gDWhstdevAcetateGlycerolFructoseL-MalateGlucoseGlucose 6-Phosphate
rid
ATPS4rppadp_c + 4.0 h_p + pi_c -> atp_c + h2o_c + 3.0 h_cb3731 and b3732 and b3733 and b3734 and b3735 ...148.58842648.58842614.07665946.11918055.25015634.70204253.08951770.07545932.294203
H2Otpph2o_p -> h2o_cb08752-40.62324940.62324929.251926-22.869847-48.682121-29.427506-32.561850-95.650390-14.547780
CYTBO3_4pp4.0 h_c + 0.5 o2_c + q8h2_c => h2o_c + 4.0 h_p...b0432 and b0431 and b0429 and b0430336.50737036.50737018.77982730.81512733.88730726.00986629.45488674.23548024.641551
\n", "
" ], "text/plain": [ " reaction_str \\\n", "rid \n", "ATPS4rpp adp_c + 4.0 h_p + pi_c -> atp_c + h2o_c + 3.0 h_c \n", "H2Otpp h2o_p -> h2o_c \n", "CYTBO3_4pp 4.0 h_c + 0.5 o2_c + q8h2_c => h2o_c + 4.0 h_p... \n", "\n", " gpr groups rank \\\n", "rid \n", "ATPS4rpp b3731 and b3732 and b3733 and b3734 and b3735 ... 1 \n", "H2Otpp b0875 2 \n", "CYTBO3_4pp b0432 and b0431 and b0429 and b0430 3 \n", "\n", " mean mmol_per_gDWh abs_mean mmol_per_gDWh stdev Acetate \\\n", "rid \n", "ATPS4rpp 48.588426 48.588426 14.076659 46.119180 \n", "H2Otpp -40.623249 40.623249 29.251926 -22.869847 \n", "CYTBO3_4pp 36.507370 36.507370 18.779827 30.815127 \n", "\n", " Glycerol Fructose L-Malate Glucose Glucose 6-Phosphate \n", "rid \n", "ATPS4rpp 55.250156 34.702042 53.089517 70.075459 32.294203 \n", "H2Otpp -48.682121 -29.427506 -32.561850 -95.650390 -14.547780 \n", "CYTBO3_4pp 33.887307 26.009866 29.454886 74.235480 24.641551 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_net_fluxes = er.collect_fluxes(net=True)\n", "print(f'{len(df_net_fluxes)} net reaction fluxes')\n", "df_net_fluxes.head(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### retrieve protein concentrations\n", "\n", "The method, designated as `er.collect_protein_results()`, collects predicted protein concentrations in units of milligrams of protein per gram of total protein (mpmf). The method converts automatically the units from mg/gDW to mpmf." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1515 proteins\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
uniprotgene_namedescriptionmw_kDaexp_avg_mpmfexp_rankpred_rankmean mg_per_gPstdevAcetateGlycerolFructoseL-MalateGlucoseGlucose 6-Phosphate
gene
b3734P0ABB0atpAATP synthase subunit alpha55.1697376.83097326.0139.62357611.47943237.60992045.05617828.29931243.29418957.14612526.335733
b3732P0ABB4atpDATP synthase subunit beta50.2758198.79362616.0236.10982010.46145434.27473241.06066725.78977339.45492852.07849724.000322
b3114P42632tdcEKeto-acid formate acetyltransferase85.8631900.0030341881.0325.60527021.8740340.0000009.49848545.07162054.49230611.28789933.281308
\n", "
" ], "text/plain": [ " uniprot gene_name description mw_kDa \\\n", "gene \n", "b3734 P0ABB0 atpA ATP synthase subunit alpha 55.169737 \n", "b3732 P0ABB4 atpD ATP synthase subunit beta 50.275819 \n", "b3114 P42632 tdcE Keto-acid formate acetyltransferase 85.863190 \n", "\n", " exp_avg_mpmf exp_rank pred_rank mean mg_per_gP stdev \\\n", "gene \n", "b3734 6.830973 26.0 1 39.623576 11.479432 \n", "b3732 8.793626 16.0 2 36.109820 10.461454 \n", "b3114 0.003034 1881.0 3 25.605270 21.874034 \n", "\n", " Acetate Glycerol Fructose L-Malate Glucose \\\n", "gene \n", "b3734 37.609920 45.056178 28.299312 43.294189 57.146125 \n", "b3732 34.274732 41.060667 25.789773 39.454928 52.078497 \n", "b3114 0.000000 9.498485 45.071620 54.492306 11.287899 \n", "\n", " Glucose 6-Phosphate \n", "gene \n", "b3734 26.335733 \n", "b3732 24.000322 \n", "b3114 33.281308 " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_proteins = er.collect_protein_results()\n", "print(f'{len(df_proteins)} proteins')\n", "df_proteins.head(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### correlation with measurements\n", "\n", "The EcmResults module provides methods for correlating predicted data points with measured data points. Using linear regression, the squared Pearson correlation coefficient (coefficient of determination) and the p-value are reported. The `er.report_gr_correlation()` function compares the predicted growth rates to the measured growth rates provided as a parameter. The `er.report_proteomics_correlation()` function compares predicted to measured protein concentrations. It is important to note that the availability of measured protein concentrations is a prerequisite for this comparison. The comparison of protein levels can be performed in linear scale (`scale='lin'`) and in logarithmic scale (`scale='log'`). For log scale analysis, data points with predicted and/or measured protein concentrations below $10^{-6}$ mg/gP are removed. The `er.report_protein_levels()` function generates a detailed report for a selected condition and grouped by protein type." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "predicted grs (6) vs. experiment: r2 = 0.7681, p = 2.20e-02, relative error = 11.45%\n" ] } ], "source": [ "er.report_gr_correlation(exp_grs)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Acetate : r² = 0.0631, p = 4.07e-16 (1018 proteins lin scale)\n", "Glycerol : r² = 0.0532, p = 9.12e-14 (1018 proteins lin scale)\n", "Fructose : r² = 0.1060, p = 1.42e-26 (1018 proteins lin scale)\n", "Glucose : r² = 0.0332, p = 4.64e-09 (1018 proteins lin scale)\n", "Acetate : r² = 0.1808, p = 7.24e-15 ( 306 proteins log scale)\n", "Glycerol : r² = 0.1569, p = 5.65e-13 ( 307 proteins log scale)\n", "Fructose : r² = 0.1556, p = 9.21e-13 ( 304 proteins log scale)\n", "Glucose : r² = 0.1902, p = 2.58e-15 ( 299 proteins log scale)\n" ] } ], "source": [ "er.report_proteomics_correlation(scale='lin')\n", "er.report_proteomics_correlation(scale='log')" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "condition: Glucose\n", "1515 proteins in model with total predicted mass fraction of 555.7 mg/gP\n", " 1018 have been measured with mpmf of 555.6 mg/gP vs. 426.8 mg/gP predicted\n", " 777 metabolic proteins measured 423.9 mg/gP vs. 181.3 mg/gP predicted\n", " 241 transport proteins measured 131.7 mg/gP vs. 245.5 mg/gP predicted\n", " 497 proteins not measured vs. 128.9 mg/gP predicted\n", " 497 actual proteins 128.9 mg/gP predicted\n", "total : r² = 0.0332, p = 4.64e-09 (1018 proteins lin scale)\n", " metabolic : r² = 0.0697, p = 7.56e-14 ( 777 proteins lin scale)\n", " transport : r² = 0.0457, p = 8.40e-04 ( 241 proteins lin scale)\n", "total : r² = 0.1902, p = 2.58e-15 ( 299 proteins log scale)\n", " metabolic : r² = 0.2035, p = 1.10e-14 ( 265 proteins log scale)\n", " transport : r² = 0.2134, p = 5.95e-03 ( 34 proteins log scale)\n" ] } ], "source": [ "er.report_protein_levels('Glucose')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### correlation plots\n", "\n", "EcmResults is capable of generating correlation plots to facilitate the visualization of data, with these plots being generated through the utilization of the `matplotlib` package. The function `er.plot_grs()` is employed to plot predicted growth rates against measured growth rates, with the addition of a linear correlation line (dotted red) and correlation data. The user may optionally supply parameters such as `highlight`, to highlight a specific condition, `gr_max`, to set the maximum axis values, and `plot_fname`, to set a file name (.pdf), if the plot should be written to file. The function `er.plot_proteins()` generates two plots for the specified condition: a linear plot and a log10 plot. Data points are colored according to protein type. The optional parameters `lin_max`, which defines the maximum axis values of the linear plot, and `plot_fname`, which sets a file name (.pdf), can be used." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "er.plot_grs(exp_grs, highlight='Glucose')" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "er.plot_proteins('Glucose', plot_fname=os.path.join('plots', f'{target_model}_proteins_Glucose.pdf')) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### display results in Escher maps\n", "\n", "Escher is a valuable tool for the visualization of flux distributions within a network context. In addition to its primary function, it can display protein and metabolite levels. The visual inspection of active/inactive pathways and reactions facilitates the interpretation of optimization results. The `EcmResults` module provides a method for exporting optimization results in a format compatible with Escher maps. Specifically, the `er.save_to_escher()` function exports optimization results to JSON-encoded files (.json), which can be imported by Escher. It should be noted that the function does not export records with absolute values less than $10^{-8}$. The function requires two parameters: first, the specific data, which can be tabulated with several conditions or a vector for a single condition; second, the base file name for the data files exported.\n", "\n", "Subsequently, the optimization results can be visualized on Escher by following the procedure outlined below. First, access the Escher web portal (https://escher.github.io) and select and load the map entitled `Central metabolism (iJO1366)`, which we can use for iML1515. Then, choose `Data -> Load reaction data` and select one of the exported files in `./Escher`, for example `iML1515_default_GECKO_Glucose_reaction_data.json`.\n", "\n", "Escher Maps for **other organisms**:\n", "\n", "The Escher web portal facilitates the generation of maps for other organisms, whether from the ground up or by updating existing maps. The portal's documentation provides detailed instructions for this process." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6 file(s) exported for \"Load reaction data\" into Escher maps\n", "1 file(s) exported for \"Load gene data\" into Escher maps\n" ] } ], "source": [ "er.save_to_escher(df_net_fluxes, os.path.join('escher', target_model))\n", "er.save_to_escher(df_proteins['Glucose'], os.path.join('escher', target_model))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## (Optional) Track progress\n", "\n", "In upcoming tutorials, we will try to improve the prediction quality of our initial GECKO model. For our reference condition, we will track the correlation of predicted to measured protein concentrations." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 table(s) with parameters written to protein_predictions.xlsx\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
modellin r2log r2lin proteinslog proteins
No
1iML1515_default_GECKO0.0332440.1902251018299
\n", "
" ], "text/plain": [ " model lin r2 log r2 lin proteins log proteins\n", "No \n", "1 iML1515_default_GECKO 0.033244 0.190225 1018 299" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import scipy\n", "import numpy as np\n", "\n", "number = 1\n", "xy = np.array([[df_mpmf.at[gene, reference_cond], df_proteins.at[gene, reference_cond]] \n", " for gene in df_proteins.index if gene in df_mpmf.index])\n", "log10_x, log10_y = er.get_log10_xy(xy)\n", "lin_pearson_r, _ = scipy.stats.pearsonr(xy[:, 0], xy[:, 1])\n", "log_pearson_r, _ = scipy.stats.pearsonr(log10_x, log10_y)\n", "\n", "predictions = {}\n", "data = [[number, target_model, lin_pearson_r**2,log_pearson_r**2, len(xy), len(log10_x)]]\n", "cols = ['No', 'model', 'lin r2', 'log r2', 'lin proteins', 'log proteins']\n", "predictions[reference_cond] = pd.DataFrame(data, columns=cols).set_index('No')\n", "write_parameter_file('protein_predictions.xlsx', predictions)\n", "predictions[reference_cond]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Closing remarks\n", "\n", "We created an initial GECKO model based on the genome-scale metabolic model iML1515 of *E. coli*. Most of the additional parameters required for GECKO were configured with default values and values obtained automatically from online resources. We loaded the model into cobrapy and optimized it for maximum growth rate under different growth media conditions. \n", "\n", "While predicted growth rates correlate well with measured growth rates, the correlation of predicted to measured protein concentrations is not very good. In the linear protein correlation plot, we see proteins where the predicted concentrations are far from the measured ones, especially for transport-related proteins. \n", "\n", "In the next tutorial we will start to improve our initial GECKO model by selectively adjusting enzyme composition and turnover numbers related to transporters." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "---\n", "## (Alternative) gurobipy - model optimization\n", "\n", "Above we used the cobrapy interface for model optimization. If you have Gurobi and gurobipy installed on your system, you can use gurobipy as an alternative interface for optimization. The gurobipy interface reduces the overhead imposed by cobrapy and can be significantly faster for large and complex models. However, there is no significant performance improvement when loading and optimizing GECKO models." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### A.1 gurobipy - model loading\n", "\n", "We only need to pass the model filename when instantiating `EcmOptimization`. Access to variable bounds has changed and is provided by `eo.get_variable_bounds()`." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SBML model loaded by sbmlxdf: SBML_models/iML1515_default_GECKO.xml (Thu Feb 12 15:15:26 2026)\n", "LP Model of iML1515_GECKO\n", "7372 variables, 3393 constraints, 28650 non-zero matrix coefficients\n", "total modeled protein: 316.75 mg/gDW, average saturation level: 0.99\n", "1515 genes: (498) transporter, (1017) metabolic\n" ] } ], "source": [ "# Load model using gurobipy\n", "fname = os.path.join('SBML_models', f'{target_model}.xml')\n", "eo = EcmOptimization(fname) # ! gurobipy interface\n", "total_protein = eo.get_variable_bounds('V_PC_total')['V_PC_total'][1] # ! gurobipy interface\n", "sigma = eo.avg_enz_saturation\n", "all_genes = set(eo.m_dict['fbcGeneProducts']['label'].values)\n", "tx_genes, metab_genes = eo.get_tx_metab_genes()\n", "print(f'total modeled protein: {total_protein:.2f} mg/gDW, average saturation level: {sigma}')\n", "print(f'{len(all_genes)} genes: ({len(tx_genes)}) transporter, ({len(metab_genes)}) metabolic')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### A.2 gurobipy - model optimization\n", "\n", "Note: Model contexts are supported by cobrapy, but not by the gurobipy interface." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Acetate : pred gr: 0.261 h-1 vs. exp 0.290, diff: -0.029\n", "Glycerol : pred gr: 0.569 h-1 vs. exp 0.470, diff: 0.099\n", "Fructose : pred gr: 0.575 h-1 vs. exp 0.540, diff: 0.035\n", "L-Malate : pred gr: 0.603 h-1 vs. exp 0.550, diff: 0.053\n", "Glucose : pred gr: 0.692 h-1 vs. exp 0.660, diff: 0.032\n", "Glucose 6-Phosphate : pred gr: 0.648 h-1 vs. exp 0.780, diff: -0.132\n" ] } ], "source": [ "# Optimize model using gurobipy\n", "pred_results = {}\n", "for cond, medium in conditions.items():\n", " eo.medium = medium\n", " solution = eo.optimize()\n", " if solution.status == 'optimal':\n", " gr = solution.objective_value\n", " pred_results[cond] = solution\n", " print(f'{cond:25s}: pred gr: {gr:.3f} h-1 vs. exp {exp_grs[cond]:.3f}, diff: {gr - exp_grs[cond]:6.3f}')\n", " else: \n", " print(f'{cond} ended with status {solution.status}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### A.3 results analysis\n", "\n", "Results analysis via `EcmResults` remains unchanged. We repeat the code from above to complete the gurobipy section." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Protein mass fractions:\n", "Acetate : r² = 0.0631, p = 4.07e-16 (1018 proteins lin scale)\n", "Glycerol : r² = 0.0532, p = 9.12e-14 (1018 proteins lin scale)\n", "Fructose : r² = 0.1060, p = 1.42e-26 (1018 proteins lin scale)\n", "Glucose : r² = 0.0332, p = 4.64e-09 (1018 proteins lin scale)\n", "Acetate : r² = 0.1808, p = 7.24e-15 ( 306 proteins log scale)\n", "Glycerol : r² = 0.1569, p = 5.65e-13 ( 307 proteins log scale)\n", "Fructose : r² = 0.1556, p = 9.21e-13 ( 304 proteins log scale)\n", "Glucose : r² = 0.1902, p = 2.58e-15 ( 299 proteins log scale)\n", "\n", "condition: Glucose\n", "1515 proteins in model with total predicted mass fraction of 555.7 mg/gP\n", " 1018 have been measured with mpmf of 555.6 mg/gP vs. 426.8 mg/gP predicted\n", " 777 metabolic proteins measured 423.9 mg/gP vs. 181.3 mg/gP predicted\n", " 241 transport proteins measured 131.7 mg/gP vs. 245.5 mg/gP predicted\n", " 497 proteins not measured vs. 128.9 mg/gP predicted\n", " 497 actual proteins 128.9 mg/gP predicted\n", "total : r² = 0.0332, p = 4.64e-09 (1018 proteins lin scale)\n", " metabolic : r² = 0.0697, p = 7.56e-14 ( 777 proteins lin scale)\n", " transport : r² = 0.0457, p = 8.40e-04 ( 241 proteins lin scale)\n", "total : r² = 0.1902, p = 2.58e-15 ( 299 proteins log scale)\n", " metabolic : r² = 0.2035, p = 1.10e-14 ( 265 proteins log scale)\n", " transport : r² = 0.2134, p = 5.95e-03 ( 34 proteins log scale)\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "1 file(s) exported for \"Load reaction data\" into Escher maps\n" ] } ], "source": [ "# Analyse results\n", "er = EcmResults(eo, pred_results, df_mpmf)\n", "df_fluxes = er.collect_fluxes()\n", "df_net_fluxes = er.collect_fluxes(net=True)\n", "df_proteins = er.collect_protein_results()\n", "er.plot_grs(exp_grs, highlight='Glucose')\n", "print(f'Protein mass fractions:')\n", "er.report_proteomics_correlation(scale='lin')\n", "er.report_proteomics_correlation(scale='log')\n", "print()\n", "er.report_protein_levels('Glucose')\n", "er.plot_proteins('Glucose', plot_fname=os.path.join('plots', f'{target_model}_proteins_Glucose.pdf')) \n", "er.save_to_escher(df_net_fluxes['Glucose'], os.path.join('escher', target_model))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "---\n", "## References\n", "\n", "- Adadi, R., Volkmer, B., Milo, R., Heinemann, M., & Shlomi, T. (2012). Prediction of Microbial Growth Rate versus Biomass Yield by a Metabolic Network with Kinetic Parameters. PLOS Computational Biology, 8(7), e1002575. https://doi.org/10.1371/journal.pcbi.1002575 \n", "- Alberty, R. A. (2005). Thermodynamics of Biochemical Reactions. Massachusetts Institute of Technology Press, Cambridge, MA. \n", "- Bornstein, B. J., Keating, S. M., Jouraku, A., & Hucka, M. (2008). LibSBML: an API Library for SBML. Bioinformatics, 24(6), 880-881. https://doi.org/10.1093/bioinformatics/btn051 \n", "- Bremer, H., & Dennis, P. P. (2008). Modulation of Chemical Composition and Other Parameters of the Cell at Different Exponential Growth Rates. EcoSal Plus, 3(1). https://doi.org/10.1128/ecosal.5.2.3 \n", "- Breuer, M., Earnest, T. M., Merryman, C., Wise, K. S., Sun, L., Lynott, M. R., Hutchison, C. A., Smith, H. O., Lapek, J. D., Gonzalez, D. J., de Crécy-Lagard, V., Haas, D., Hanson, A. D., Labhsetwar, P., Glass, J. I., & Luthey-Schulten, Z. (2019). Essential metabolism for a minimal cell. Elife, 8. https://doi.org/10.7554/eLife.36842 \n", "- Bulović, A., Fischer, S., Dinh, M., Golib, F., Liebermeister, W., Poirier, C., Tournier, L., Klipp, E., Fromion, V., & Goelzer, A. (2019). Automated generation of bacterial resource allocation models. Metabolic Engineering, 55, 12-22. https://doi.org/https://doi.org/10.1016/j.ymben.2019.06.001 \n", "- Desouki, A. A. (2015). sybilccFBA: Cost Constrained FLux Balance Analysis: MetabOlic Modeling with ENzyme kineTics (MOMENT). In CRAN. http://cran.nexr.com/web/packages/sybilccFBA/sybilccFBA.pdf\n", "- Desouki, A. A. (2016). Algorithms for improving the predictive power of flux balance analysis Heinrich Heine University Duesseldorf]. \n", "- Dourado, H., & Lercher, M. J. (2020). An analytical theory of balanced cellular growth. Nat Commun, 11(1), 1226. https://doi.org/10.1038/s41467-020-14751-w \n", "- Ebrahim, A., Lerman, J. A., Palsson, B. O., & Hyduke, D. R. (2013). COBRApy: COnstraints-Based Reconstruction and Analysis for Python. BMC Systems Biology, 7(1), 74. https://doi.org/10.1186/1752-0509-7-74 \n", "- Goelzer, A., Fromion, V., & Scorletti, G. (2011). Cell design in bacteria as a convex optimization problem. Automatica, 47(6), 1210-1218. https://doi.org/https://doi.org/10.1016/j.automatica.2011.02.038 \n", "- Henry, C. S., Broadbelt, L. J., & Hatzimanikatis, V. (2007). Thermodynamics-based metabolic flux analysis. Biophys J, 92(5), 1792-1805. https://doi.org/10.1529/biophysj.106.093138 \n", "- Henry, C. S., DeJongh, M., Best, A. A., Frybarger, P. M., Linsay, B., & Stevens, R. L. (2010). High-throughput generation, optimization and analysis of genome-scale metabolic models. Nat Biotechnol, 28(9), 977-982. https://doi.org/10.1038/nbt.1672 \n", "- Huang, Q., Szklarczyk, D., Wang, M., Simonovic, M., & von Mering, C. (2023). PaxDb 5.0: Curated Protein Quantification Data Suggests Adaptive Proteome Changes in Yeasts. Mol Cell Proteomics, 22(10), 100640. https://doi.org/10.1016/j.mcpro.2023.100640 \n", "- Hucka, M., Bergmann, F. T., Chaouiya, C., Dräger, A., Hoops, S., Keating, S. M., König, M., Novère, N. L., Myers, C. J., Olivier, B. G., Sahle, S., Schaff, J. C., Sheriff, R., Smith, L. P., Waltemath, D., Wilkinson, D. J., & Zhang, F. (2019). The Systems Biology Markup Language (SBML): Language Specification for Level 3 Version 2 Core Release 2. J Integr Bioinform, 16(2). https://doi.org/10.1515/jib-2019-0021 \n", "- Jankowski, M. D., Henry, C. S., Broadbelt, L. J., & Hatzimanikatis, V. (2008). Group contribution method for thermodynamic analysis of complex metabolic networks. Biophys J, 95(3), 1487-1499. https://doi.org/10.1529/biophysj.107.124784 \n", "- Kanehisa, M., & Goto, S. (2000). KEGG: kyoto encyclopedia of genes and genomes. Nucleic Acids Res, 28(1), 27-30. https://doi.org/10.1093/nar/28.1.27 \n", "- Karp, P. D., Billington, R., Caspi, R., Fulcher, C. A., Latendresse, M., Kothari, A., Keseler, I. M., Krummenacker, M., Midford, P. E., Ong, Q., Ong, W. K., Paley, S. M., & Subhraveti, P. (2017). The BioCyc collection of microbial genomes and metabolic pathways. Briefings in Bioinformatics, 20(4), 1085-1093. https://doi.org/10.1093/bib/bbx085 \n", "- King, Z. A., Dräger, A., Ebrahim, A., Sonnenschein, N., Lewis, N. E., & Palsson, B. O. (2015). Escher: A Web Application for Building, Sharing, and Embedding Data-Rich Visualizations of Biological Pathways. PLOS Computational Biology, 11(8), e1004321. https://doi.org/10.1371/journal.pcbi.1004321 \n", "- King, Z. A., Lu, J., Dräger, A., Miller, P., Federowicz, S., Lerman, J. A., Ebrahim, A., Palsson, B. O., & Lewis, N. E. (2015). BiGG Models: A platform for integrating, standardizing and sharing genome-scale models. Nucleic Acids Research, 44(D1), D515-D522. https://doi.org/10.1093/nar/gkv1049 \n", "- Kroll, A., Rousset, Y., Hu, X.-P., Liebrand, N. A., & Lercher, M. J. (2023). Turnover number predictions for kinetically uncharacterized enzymes using machine and deep learning. Nature Communications, 14(1), 4139. https://doi.org/10.1038/s41467-023-39840-4 \n", "- Monk, J. M., Lloyd, C. J., Brunk, E., Mih, N., Sastry, A., King, Z., Takeuchi, R., Nomura, W., Zhang, Z., Mori, H., Feist, A. M., & Palsson, B. O. (2017). iML1515, a knowledgebase that computes Escherichia coli traits. Nat Biotechnol, 35(10), 904-908. https://doi.org/10.1038/nbt.3956 \n", "- Nogales, J., Gudmundsson, S., Knight, E. M., Palsson, B. O., & Thiele, I. (2012). Detailing the optimality of photosynthesis in cyanobacteria through systems biology analysis. Proc Natl Acad Sci U S A, 109(7), 2678-2683. https://doi.org/10.1073/pnas.1117907109 \n", "- Orth, J. D., Fleming, R. M., & Palsson, B. (2010a). Reconstruction and Use of Microbial Metabolic Networks: the Core Escherichia coli Metabolic Model as an Educational Guide. EcoSal Plus, 4(1). https://doi.org/10.1128/ecosalplus.10.2.1 \n", "- Orth, J. D., Thiele, I., & Palsson, B. Ø. (2010b). What is flux balance analysis? , 28(3), 245-248. https://doi.org/10.1038/nbt.1614 \n", "- Salvy, P., Fengos, G., Ataman, M., Pathier, T., Soh, K. C., & Hatzimanikatis, V. (2019). pyTFA and matTFA: a Python package and a Matlab toolbox for Thermodynamics-based Flux Analysis. Bioinformatics, 35(1), 167-169. https://doi.org/10.1093/bioinformatics/bty499 \n", "- Sánchez, B. J., Zhang, C., Nilsson, A., Lahtvee, P. J., Kerkhoven, E. J., & Nielsen, J. (2017). Improving the phenotype predictions of a yeast genome‐scale metabolic model by incorporating enzymatic constraints. Molecular Systems Biology, 13(8), 935. https://doi.org/https://doi.org/10.15252/msb.20167411 \n", "- Schmidt, A., Kochanowski, K., Vedelaar, S., Ahrné, E., Volkmer, B., Callipo, L., Knoops, K., Bauer, M., Aebersold, R., & Heinemann, M. (2016). The quantitative and condition-dependent Escherichia coli proteome. Nature Biotechnology, 34(1), 104-110. https://doi.org/10.1038/nbt.3418 \n", "- Schoch, C. L., Ciufo, S., Domrachev, M., Hotton, C. L., Kannan, S., Khovanskaya, R., Leipe, D., McVeigh, R., O’Neill, K., Robbertse, B., Sharma, S., Soussov, V., Sullivan, J. P., Sun, L., Turner, S., & Karsch-Mizrachi, I. (2020). NCBI Taxonomy: a comprehensive update on curation, resources and tools. Database, 2020, baaa062. https://doi.org/10.1093/database/baaa062 \n", "- The UniProt, C. (2023). UniProt: the Universal Protein Knowledgebase in 2023. Nucleic Acids Research, 51(D1), D523-D531. https://doi.org/10.1093/nar/gkac1052 \n", "- Watson, M. R. (1986). A discrete model of bacterial metabolism. 2(1), 23-27. https://doi.org/10.1093/bioinformatics/2.1.23 \n", "- Zhang, C., Sánchez, B. J., Li, F., Eiden, C. W. Q., Scott, W. T., Liebal, U. W., Blank, L. M., Mengers, H. G., Anton, M., Rangel, A. T., Mendoza, S. N., Zhang, L., Nielsen, J., Lu, H., & Kerkhoven, E. J. (2024). Yeast9: a consensus genome-scale metabolic model for S. cerevisiae curated by the community. Mol Syst Biol, 20(10), 1134-1150. https://doi.org/10.1038/s44320-024-00060-7 " ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.12", "language": "python", "name": "python310" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.0" } }, "nbformat": 4, "nbformat_minor": 4 }