Lipomyces starkeyi has been widely regarded as a promising oleaginous yeast with broad industrial application prospects because of its wide substrate spectrum, good adaption to fermentation inhibitors, excellent fatty acid composition for high-quality biodiesel, and negligible lipid remobilization. However, the currently low experimental lipid yield of L. starkeyi prohibits its commercial success. Metabolic model is extremely valuable to comprehend the complex biochemical processes and provide great guidance for strain modification to facilitate the lipid biosynthesis.L. starkeyi NRRL Y-11557 was constructed based on the genome annotation information. The theoretical lipid yields of glucose, cellobiose, xylose, glycerol, and acetic acid were calculated according to the flux balance analysis (FBA). The optimal flux distribution of the lipid synthesis showed that pentose phosphate pathway (PPP) independently met the necessity of NADPH for lipid synthesis, resulting in the relatively low lipid yields. Several targets (NADP-dependent oxidoreductases) beneficial for oleaginicity of L. starkeyi with significantly higher theoretical lipid yields were compared and elucidated. The combined utilization of acetic acid and other carbon sources and a hypothetical reverse β-oxidation (RBO) pathway showed outstanding potential for improving the theoretical lipid yield.A small-scale metabolic model of L. starkeyi can be significantly improved through appropriate modification of metabolic network, as well as combined utilization of carbon sources according to the metabolic model. The prediction and analysis provide valuable guidance to improve lipid production from various low-cost substrates.The lipid biosynthesis potential of The online version contains supplementary material available at 10.1186/s13068-021-01997-9. Lipomyces starkeyi is an excellent lipid producer featuring wide substrate spectrum, good tolerance to fermentation inhibitors, excellent fatty acid composition of lipid for high-quality biodiesel, and negligible lipid remobilization. A variety of low-cost materials including lignocellulosic biomass, starch materials, biodiesel derived glycerol, volatile fatty acids, molasses, and sewage sludge have been applied for lipid production by L. starkeyi [L. starkeyi, which is of great significance for the commercial success [L. starkeyi exhibits high robustness to the major lignocellulosic inhibitors including acetic acid, furfural, and 5-hydroxymethylfurfural (HMF) and these agents even could be metabolized by the yeast [L. starkeyi scarcely consumes the cellular lipid although the nutrients are completely exhausted compared with other oleaginous species, which is beneficial for the preservation [Microbial lipid has garnered much attention recently as it can be served as promising feedstock for edible oils, functional polyunsaturated fatty acids, oleochemicals, and biodiesel . Oleaginstarkeyi , 3. Espe success , 5. L. servation .L. starkeyi [L. starkeyi NRRL Y-11558 [L. starkeyi [High effective genetic transformation system is crucial for improving the oleaginicity of oleaginous yeasts. Recently, a variety of genetic transformation methods including lithium acetate-mediated transformation, PEG-mediated spheroplast transformation, agrobacterium-mediated transformation, and electroporation transformation have been established for starkeyi –10. A si Y-11558 –14, has starkeyi .Yarrowia lipolytica, Rhodotorula toruloides, and Cutaneotrichosporon oleaginosus have been established to systematically analyze the lipid metabolism [Rhodosporidium toruloides to evaluate the lipid production potential of several carbon sources [C. oleaginosum to evaluate the lipogenesis potential of chitin-derived carbon sources [Metabolic model has been widely used in many fields including industrial biotechnology , 16. Thetabolism –20. Smal sources . A revis sources . Tang an sources .L. starkeyi  was performed to calculate the theoretical lipid yields of a variety of carbon sources originated from low-cost substrates. Several targets (NADP-dependent oxidoreductases) were evaluated for improving the potential of lipid biosynthesis in L. starkeyi. The strategy of combined utilization of carbon sources mixture was investigated for improving the theoretical lipid yield. In addition, a hypothetical reverse β-oxidation (RBO) pathway was added to the model to estimate the lipid synthesis potential. This study provides valuable guidance and promising strategy to significantly improve lipid accumulation capacity from low-cost substrates.Glucose, xylose, cellobiose, glycerol, and acetic acid originated from a variety of low-cost substrates can be metabolized for lipogenesis by eyi Fig. . HoweverL. starkeyi are summarized in the Additional file L. starkeyi is depicted in Fig. All the reactions and metabolites in the small-scale metabolic model of L. starkeyi were calculated and the results are shown in Table The theoretical lipid yields of glucose, cellobiose, xylose, glycerol, and acetic acid by L. starkeyi AS 2.1560 was defined as NAD-dependent as described by Tang and co-workers [L. starkeyi NRRL Y-11557 was virtually identical to that of L. starkeyi AS 2.1560. Thus, the ME in the model was recognized as NAD-dependent (ME1).It should be noted that abundant NADPH is required for the FA synthesis. Generally, NADPH for FA synthesis is routinely supplied by the PPP and malic enzyme (ME) in oleaginous species . However-workers . The amiL. starkeyi was majorly provided by PPP according to the C13 metabolic flux analysis using C13-labeled glycerol as substrate [The theoretical lipid yields were merely 0.273, 0.287, 0.245, and 0.267, respectively, when glucose, cellobiose, xylose, or glycerol was the sole carbon source based on the model  before participating in cell metabolism , 36. TheThe lowest theoretical lipid yield was observed when xylose was used as substrate. It was because that xylose reductase needed one molecule of NADPH, which led to a greater demand for NADPH and more xylose channeling into PPP with an overall carbon loss of 30.57% Table . This paAs mentioned above, the redundancy of NADH is one of the major issues against the theoretical lipid yield. Converting the redundant NADH to NADPH has great potential to reduce the carbon loss and enhance the theoretical lipid yield. Here, some modifications for enriching the supply of NADPH were evaluated in the metabolic model and the results are summarized in Table When glucose was used as substrate, the NADH generation was majorly referring to glyceraldehyde-3-phosphate dehydrogenase (GAPD) and aldehyde dehydrogenase (ALD)  . Thus, M . Thus,  content . When th9 to 39% . It was The ME2-mediated NADPH production necessitates the consumption of ATP, which limits the theoretical lipid yield to a certain extent Table d. The NAIt should be noted that all the modifications mentioned above exerted no significantly positive effects on the theoretical lipid yield when acetic acid was used as substrate. There was no redundant NADH because the metabolic process from acetic acid to acetyl-CoA did not produce NADH concurrently. Moreover, acetic acid was acetylated by ACS without involving in glycolysis and pyruvate dehydrogenase bypass pathways. Thus, ME2, GAPDy or ALDy not produce a marked effect on the theoretical lipid yield. On the other hand, the metabolic process from acetyl-CoA to PPP underwent gluconeogenesis, which resulting in greater carbon loss. The introduction of NADTRHD or ICDHxmr could slightly increase the theoretical lipid yield of acetic acid, as acetyl-CoA can be channeled into TCA cycle to produce NADH.L. starkeyi [L. starkeyi. In addition, some feasible strategies including genetic modification and directed evolution have been developed to circumvent the catabolite repression and realize simultaneously utilize of mixed carbon sources [Glucose and xylose are the two major monomeric sugars in the lignocellulosic hydrolysates. In addition, cellobiose and acetic acid are routinely co-present. Interestingly, combined utilization of carbon sources mixtures has been widely investigated for lipid production by starkeyi , 39–42. starkeyi , 39, celstarkeyi , and glu sources –45. Inte sources . A varie sources .qs, acetic acid from zero to 30% , pentose phosphate pathway (PPP), glyoxylate cycle, oxidative phosphorylation, fatty acid (FA) synthesis, and glycerolipid metabolism were obtained from JGI MycoCosm. Oleic acid (C18:1) and palmitic acid (C16:0) are routinely the predominant components in the fatty acid composition of starkeyi . Therefodirectly , 55, 56.aginosum , 23. ThrThe non-growth associated maintenance (NGAM) was expressed by the ATPM, pseudo-reaction consuming ATP and representing wasted energy . The themS is the maintenance coefficient, and the yATP/S is the theoretical maximal ATP yield based on a specific substrate. yATP/S was calculated by setting ATPM as the objective function based on the model. The mS coefficient of L. starkeyi was 30 mg xylose/g cell mass/h according to the estimation by Anschau and co-workers [where -workers .The analysis of the model was carried out with the help of CellNetAnalyzer running on the MATLAB R2013a platform . The sysqs, global) were always set to 1.8 gsubstrate/g/h, corresponding to 10 mmolglucose/g/h. The relative specific acetic acid uptake rate  was expressed as the proportion of qs, acetic acid accounting for the qs, global. The effect of relative qs, acetic acid ranging from zero to 100% on the yield advantage was estimated. The FBA was performed to obtain the optimal metabolic flux distribution for the synthesis of TAG. After conversion, the theoretical lipid yield corresponding to the input carbon source was obtained.The coefficients of the biomass reaction and the TAG exchange reaction were set at 0 and -1, respectively, to ensure that the flux of TAG was maximized when the FBA was performed. To calculate the theoretical lipid yield of glucose, cellobiose, xylose, glycerol or acetic acid, the input flux of the specific carbon source was set at 10 mmol/g/h. The actual absorption rate of each carbon source was not considered. For the combination utilization of acetic acid and glucose, the total specific uptake rates (Additional file 1: Table S1. Reactions in the small-scale metabolic model of L. starkeyi NRRL Y-11557. Table S2. Metabolites in the small-scale metabolic model of L. starkeyi NRRL Y-11557.


Synechococcus sp. PCC 7002; we also outline how it can be adapted to any species or community with available multi-omic data.Combining a computational framework for flux balance analysis with machine learning improves the accuracy of predicting metabolic activity across conditions, while enabling mechanistic interpretation. This protocol presents a guide to condition-specific metabolic modeling that integrates regularized flux balance analysis with machine learning approaches to extract key features from transcriptomic and fluxomic data. We demonstrate the protocol as applied to For complete details on the use and execution of this protocol, please refer to   •Step-by-step instructions are provided for metabolic modeling and machine learning•Any organism with a working GSMM and available transcriptomic data can be analyzed•Analyzing multi-omic data provides a more complete picture of metabolism•Machine learning algorithms reduce dimensionality and detect cross-omic features Synechococcus sp. PCC 7002; we also outline how it can be adapted to any species or community with available multi-omic data.Combining a computational framework for flux balance analysis with machine learning improves the accuracy of predicting metabolic activity across conditions, while enabling mechanistic interpretation. This protocol presents a guide to condition-specific metabolic modeling that integrates regularized flux balance analysis with machine learning approaches to extract key features from transcriptomic and fluxomic data. We demonstrate the protocol as applied to  The generation of a genome-scale view of metabolic activity is a useful step for many biological scientists, requiring the construction of a computational model that can be adapted to suit the purpose of each analysis by integrating omic additional data to simulate specific genetic or environmental conditions . MetabolWith the rapid advent of high-throughput technologies, supplementation of GSMMs with multi-dimensional omic data describing various levels of biological organization can provide the opportunity to trace molecular components across multiple functional states and record their interactions . HoweverSynechococcus sp. PCC 7002    and the l (GSMM)  for fluxInputs and outputs for datasets used in each analysis are listed in Timing: 1–2 hhttps://opencobra.github.io/cobratoolbox/stable/installation.html.1.a.https://uk.mathworks.com/downloads/web_downloads/. Following registration, a free 30-day trial can be requested from https://uk.mathworks.com/campaigns/products/trials.html.The MATLAB programming language can be downloaded from b.For a permanent installation, an associated license can be purchased for use by commercial or government organizations, degree-granting institutions, or individuals. Several universities and research organizations provide access to MATLAB through a centralized, campus-wide license.If needed, install the latest version of MATLAB.2.https://git-scm.com/downloads.Check if you have a working installation of git by typing \$ git --version in the Terminal (on Linux and macOS) or cmd . For the latest source release of git, check 3.https://opencobra.github.io/cobratoolbox/stable/installation.html. Alternative implementations of COBRA are listed in Download the latest version of the COBRA Toolbox and its compatible solvers from: 4.https://www.gurobi.com/products/gurobi-optimizer/. This is required as a quadratic optimization solver during the regularized flux balance analysis steps. For a list of alternative solvers, see Install the Gurobi Optimizer from: All installations can be run using Linux, Mac or Windows operating systems, but this protocol is mainly based on using the Windows platform. For full instructions on installing the COBRA Toolbox in Mac and Linux, we refer the reader directly to follow the steps provided at: Timing: 2 weeks to 1 monthAny organism with a baseline GSMM and available transcriptomic data can be analyzed using this protocol. The COBRA Toolbox is a popular module for constraint-based reconstruction and analysis of metabolic networks in MATLAB . In mostin vivo findings and used to identify current gaps in our knowledge of metabolism )addpath(genpath('C:\gurobi911'));% Initialize the COBRA ToolboxinitCobraToolbox% Create a .mat model from an XML modelfbamodel = readCbModel('modelXML.xml');Note: In order to relate genes, metabolites and reactions during FBA, the GSMM must contain a field of logical gene-protein-reaction (GPR) association rules. These rules record the involvement of every gene in every reaction of the metabolic network and must be adjusted when integrating new data that record differential gene expression under various conditions.Note: Although the field fbamodel.rules already exists within the model, running compute_reaction_expression.m creates the field fbamodel.grRules (a string representation of the GPR rules), which will be solved mathematically at the stage of omic data integration. As these new rules do not contain parentheses, it must be manually ensured that AND is solved before OR when substituting MIN and MAX respectively. This means that in the final expression, the MINs must be calculated before the MAXs. The function associate_genes_reactions.m called by compute_reaction_expression.m substitutes the ORs first (which become MAXs), and then the ANDs inside the MAXs. This generates an expression that first solves the ANDs  and then solves the ORs .6.grRules and two flux objectives (f and g) that will be specified in Create new fields within the model for % Add new field for grRulesfbamodel = creategrRulesField(fbamodel)% Remove field c that is used to specify a single flux objectivefield = 'c';fbamodel = rmfield% Create new fields f and g to later specify pairwise primary and secondary flux objectives in the modelfbamodel.f = zeros;fbamodel.g = zeros;% Save the model in .mat formatwriteCbModel;7.fbamodel.genes:Match the parsing of gene IDs in the transcriptomic data with those listed in % Run the script compute_reaction_expression.m, which calls the function associate_genes_reactions.m in order to substitute the expressions AND and OR with MIN and MAX within fbamodel.grRules and creates the variables required for condition−specific flux balance analysis − i.e. pos_genes_in_react_expr, reaction_expression and ixs_genes_sorted_by_lengthcompute_reaction_expression;CRITICAL: When parsing the strings within grRules , it is essential to check the parentheses to ensure that the code runs correctly. Depending on the existing parsing rules for parentheses, it may be necessary to edit associate_genes_reactions.m to adjust the substitution loop according to the model in question.CRITICAL: Steps 6 and 7 only apply when creating a new GSMM, as it must be ensured that a new grRules field is written in the model to link gene IDs in the omic dataset with those in the model. When applying the steps to a new model or data, it is important to ensure the consistency of gene names between external data and the GSMM, but modelers wishing to run the analysis for the Synechococcus GSMM only need to load the variables already saved in the code repository.8.As stated previously, conducting manual curation of all model fields, including genes, reactions, metabolites and subsystems prior to performing FBA is necessary to ensure the verity of biological outputs. Particularly, subsystems within the model may be known by multiple names or annotated inconsistently. It is also possible, as in our case, that several reactions are assigned with multiple subsystems or even none at all. In the case of reactions, we create a new array of subsystem names that are modified to account for reactions classified by more than one subsystem:% Create a cell array of subsystemssubsystems = fbamodel.subSystems;% Merge the same names for amino acid metabolism into a single subsystemold_aa = {'Amino Acid Metabolisms','Amino Acid Metabolism'};new_aa = 'Amino acid metabolism';subsystems = replace;% Merge the same names for exchange reactions into a single subsystemsubsystems = replace;% Divide the names for lipid and cell wall metabolism into separate subsystemssubsystems = replace;% Merge the same names for unassigned reactions into a single subsystemold_none = {'None','Other'};new_none = 'Unassigned';subsystems = replace;subsystems) = {'Unassigned'};9.fbamodel.subSystems, the word 'and' can be used as a string delimiter to divide subsystem names across a cell array of separate strings:Since it has been used to differentiate multiple subsystems associated with single reactions in % Replace existing instances of 'and' with '&' within single subsystemsold_names = {'Metabolism of terpenoids and polyketides','Metabolism of terpenoids and polyketides','Metabolism of cofactors and vitamins','Coenzymes and prosthetic groups','Glycan biosynthesis andmetabolism','Nucleotides and nucleic acids','Nucleotide Metabolism','Carbohydrate Metabolism','EnergyMetabolism'};new_names = {'Metabolism of terpenoids & polyketides','Metabolism of terpenoids & polyketides','Metabolism of cofactors & vitamins','Coenzymes & prosthetic groups','Glycan biosynthesis &metabolism','Nucleotides & nucleic acids','Nucleotide metabolism','Carbohydrate metabolism',' Energymetabolism'};subsystems = replace;% Split multiple subsystems across reactions into a cell array of strings by using 'and' as a delimiternew_subsystems = regexpi;% Remove trailing spaces from the end of each stringnew_subsystems = strtrim(new_subsystems);% Remove any blank cells remaining in the subsystems arraynew_subsystems{12}(2)=;new_subsystems{225}(2)=;% Replace subsystem names in the modelfbamodel.subSystems = new_subsystems;CRITICAL: Parsing strings at the correct positions within single subsystems and removing any trailing spaces and blank cells after name replacement are essential to ensure consistency and match strings accurately within subsystem names during Many GSMMs are publicly available in online repositories such as the Kyoto Encyclopedia of Genes and Genomes (KEGG) , the Biotabolism . HoweverTiming: 2 weeks to 1 monthSynechococcus sp. PCC 7002 cells grown under different conditions (detailed in Synechococcus genome using Burrows-Wheeler Aligner (BWA) software. Following this, the sequences that did not map to the reference genome, those that were mapped to the rRNA-coding regions or those aligned to more than one region were eliminated. The remaining uniquely mapped genes were converted into reads per kilobase million (RPKM) and fold change values.The transcriptomic profiles utilized in this study originate from three studies conducted by 10.https://github.com/Angione-Lab/Synechococcus7002-metabolic-modelling/tree/master/transcriptomic_data.Download Dataset1.xls and Dataset2.xls from CRITICAL: In this instance, all transcriptomic reads were obtained from studies conducted in tandem (with the same number of samples). For omic data obtained from multiple sources/studies that require additional normalization, see 11.Import the datasets into MATLAB:% Import gene expression data from ExcelDataset1 = readtable('Dataset1.xlsx');Dataset2 = readtable('Dataset2.xlsx');% Save columns containing RPKM values for each growth condition within numerical matricesDataset1RPKM = table2array);Dataset2RPKM = table2array);12.Within each dataset, divide the RPKM values for each experimental condition by the mean of three standard control values. This produces a series of fold change values centered around 1:% Calculate separate standard averages for each dataset by computing the mean of three standardcontrol replicates (the first three columns of each RPKM matrix)Standard_Averages_Dataset1 = mean,2);Standard_Averages_Dataset2 = mean,2);% Create dataset of transcript fold changes by dividing RPKM values in each growth conditionby the average RPKM value of standard control replicates in that datasetnewFC = Dataset1RPKM./Standard_Averages_Dataset1;newFC2 = Dataset2RPKM./Standard_Averages_Dataset2;transcripts = horzcat;13.Save fold change values for all growth conditions:% Save names for each growth condition corresponding to the transcriptsconditions = {'Darkoxic','Darkanoxic','Highlight','OD04','OD10','OD30','OD50','lowO2','lowCO2','Nlim','Slim','Plim','Felim','Nitrate','Ammonia','Urea','Heatshock','T22','T30','Oxstress','Mixotrophic','Lowsalt','Highsalt'};% Create a table by concatenating names of growth conditions and transcript fold changestranscripts_table = array2table;save;% Save as .mat variable and .csv file for later analysestranscripts = transcripts'; % transpose matrixsave;writemat;Starting from RPKM values (stored in Datasets 1 and 2), we begin by recalculating fold changes as values centered around 1. As outlined in Throughout this work, a Lenovo G50-30 80G0 model laptop computer using the Microsoft Windows 10 Home operating system was used. This computer has a 500 GB solid-state hard drive, an Intel Pentium N3530 CPU @ 2.16 GHz  and 4 GB Random Access Memory (RAM). However, any reasonably up-to-date computer may be used to run all code and any operating system can be used - Windows, Mac OS, or Unix/Linux.https://www.mathworks.com/products/matlab)Alternatives: While the current implementation applies the COBRA Toolbox in MATLAB, the package is extendable to any other platforms that support COBRA . A full list is available from: https://opencobra.github.io/.MATLAB (MathWorks: https://www.gurobi.com/)Alternatives: While the current implementation uses the Gurobi Optimizer, a number of other available solvers could be installed and selected as the solver for quadratic optimization .Gurobi  carried by the metabolic network following maximization of the primary objective guarantees a unique set of flux solutions drawn from a strictly convex space  Biomass - ATP maintenance (ii) Biomass - Photosystem I and (iii) Biomass - Photosystem II.ex space . This seex space . Bi-leveNote: When calculating the flux distribution across conditions, the biomass reaction was chosen as the primary objective, while the secondary objective was set to ATP maintenance, photosystem I or photosystem II reactions in order to reflect the main cellular goals of cyanobacteria. In our case, the carbon-limited biomass reaction has been chosen as a primary objective to represent the maximization of growth rate and cellular yields  to obtain minimal and maximal flux ranges for each growth condition. The full details for running the analysis are contained in the script RUN_all.m stored in the GitHub repository listed in the https://github.com/Angione-Lab/Synechococcus7002-metabolic-modelling.1.Firstly, we load the required variables within a local directory available to MATLAB:% Load the pre-existing variables% Genome-scale model ofSynechococcus sp. PCC 7002load('SynechococcusPCC7002.mat');% Array indexing the position of genes within reactionsload('pos_genes_in_react_expr.mat');% Array defining the connection between genes and reactions based on GPR rulesload('reaction_expression.mat');% Array indexing genes load('ixs_genes_sorted_by_length.mat');% List of gene IDs extracted from transcriptomic reads fileload('Syn7002_IDs.mat');% Array of fold changes calculated from transcriptomic readsload('transcripts.mat');2.We then specify variables for the genes within the model and those included in the transcriptomic data:% Create a variable to store gene accession IDs from the modelgenes = fbamodel.genes;% Create a variable to store gene accession IDs from the transcriptomic datasetsgenes_in_dataset = Syn7002_IDs;% Specify the number of objectives for FBAM = 2;% Specify the number of variables for FBA (i.e. genes)V = numel(genes);% Create indices to set the objective functions for FBAix_f = find(fbamodel.f==1); %check current primary objectiveix_g = find(fbamodel.g==1); %check current secondary objective3.a.This step assigns indices for selecting the objective function(s) to be optimized during flux balance analysis.This step assigns indices for selecting the objective function(s) to be optimized during flux balance analysis:% Set new primary objective f as the standard biomass reactionix_new_f = 735;% Set new secondary objective g as ATP maintenance, photosystem I or photosystem II ix_new_g = find==1);% ix_new_g = find')==1);% ix_new_g = find==1);% Select new objective functions for simulationfbamodel.f(ix_f) = 0;fbamodel.f(ix_new_f) = 1;fbamodel.g(ix_g) = 0;fbamodel.g(ix_new_g) = 1;CRITICAL: Although a large number of studies express the maximization of biomass as the only objective when performing FBA, it is important to recognize that, in reality, most organisms have multiple objectives to satisfy. Depending on the goal of the flux simulation, any reactions within the metabolic network reflecting a property of interest that must be optimized by the cell can be selected as objective functions via vector indexing. Within each pair of objectives, the primary flux objective fbamodel.f is fixed as the standard biomass reaction (fbamodel.rxnNames = 735) since it reflects the universal property of cellular growth maintenance, whereas the secondary flux objective fbamodel.g is manually switched between the reactions for ATP maintenance (fbamodel.rxnNames = 70), Photosystem I (fbamodel.rxnNames = 698) or Photosystem II (fbamodel.rxnNames = 697) to examine processes relating to energy metabolism and photosynthesis. As an alternative approach, users may also wish to force flux by increasing the lower bounds of reactions to ensure a minimum flux through pathways of interest, although in general this would not allow the user to find solutions that maximize their usage.CRITICAL: Before applying gene-expression derived constraints during FBA, additional boundary constraints based on the varying metabolic capability of cells under different growth conditions (stored in bounds.mat) are used to modify lower and upper bounds in the model (fbamodel.lb and fbamodel.ub), thus shrinking the solution space and refining phenotypic prediction of metabolic activity. For all experimental conditions, a series of uptake and secretion rates are adjusted in the GSMM prior to performing FBA, taking into account: (i) composition of growth media limitation/supplementation of trace elements, e.g. nitrogen, sulfur, iron, phosphorus, etc. (ii) optical density at which cells were harvested (OD730nm = 0.4/0.7/1.0/3.0/5.0), (iii) mode of energy utilization (phototrophy/heterotrophy/mixotrophy), (iv) availability of oxygen/carbon dioxide , (v) light intensity (dark or high light), (vi) temperature , (vii) salinity (low/high). This enables a more unique characterization of each growth condition.Note: For example, the bounds adjusted in our model are specified in fbamodel.lb and fbamodel.ub respectively) for various exchange reactions are fixed at different values according to the growth conditions under which the Synechococcus cells were cultured and harvested  for each growth condition using a method similar to 2); the product is subsequently divided by the total available dry cell weight (DCW) of the culture (grams per volume) as follows:It has been established that the activity of biosynthetic and energy-generating pathways increases with the growth rate , which lNote: If conducting growth experiments to directly measure light availability and DCW in vivo is not possible, users can refer to the literature to find the closest estimates available for their model species. In our case, we use an approximation for the DCW of marine Synechococci ;5.In this step, Gurobi is specified as the solver to be used for FBA:%% Solver% Set Gurobi as the solver for linear and quadratic problemschangeCobraSolver;changeCobraSolver;% Avoid solver feasibility errorchangeCobraSolverParams;6.fbamodel.lb and fbamodel.ub before running FBA in order to characterize condition-specific flux rates:The new boundary constraints are assigned within %% Set new bounds for standard control conditionfbamodel.lb(new_lb_ixs) = new_lb_val;fbamodel.ub(new_ub_ixs) = new_ub_val;7.x) is mapped onto flux bounds for every condition, starting with an all-ones configuration for the standard control:Following this, a new vector of gene expression values ,1);% Calculate flux rates for the control condition =evaluate_objective_minNorm;CRITICAL: Users could also use alternative methods for constraining the model using gene expression data. For a critical guide of factors to consider when integrating gene expression or other omic data with GSMMs, see 8.evaluate_objective_minNorm) can be replaced by a function for flux variability analysis  to obtain minimal and maximal flux vectors:Alternatively, the function for flux balance analysis ;CRITICAL: If using FVA instead of FBA, change the field fbamodel.f to fbamodel.c prior to calling evaluate_objective_FVA to ensure compatibility with the fluxVariability.m script, i.e. :% Rename fbamodel.f as fbamodel.c if conducting FVA instead of FBAif isfield fbamodel.c = fbamodel.f;end9.All other conditions specify a loop to replace the RNA-seq expression. The dark oxic condition is provided as an example below:%% Set new bounds for dark oxic conditionfbamodel.lb(new_lb_ixs) = new_lb_val;fbamodel.ub(new_ub_ixs) = new_ub_val;%% Flux distribution in dark oxic condition−23 in the transcripts dataset% Choose growth condition by changing column vectors 1expr_profile = transcripts;pos_genes_in_dataset = zeros(numel(genes),1);% Remove the last two characters (e.g. '.1') since transcripts are indicated with '.1' in the model but these are not present in the datasetexpression = '[.]\d';replace = '';genes_truncated = regexprep;% Set gene expression to the set of transcript fold changes in the selected growth conditionfor i = 1:numel(genes) position = find); if ∼isempty(position) pos_genes_in_dataset(i) = position; x(i) = expr_profile(pos_genes_in_dataset(i)); endend% Specify the number of variablesV = numel(genes);% Calculate flux rates for the dark oxic condition =evaluate_objective_minNorm;10.evaluate_objective_minNorm with evaluate_objective_FVA:Similar to Step 8, the flux ranges for each condition can be calculated by replacing the % Calculate flux ranges for the dark oxic condition= evaluate_objective_FVA;CRITICAL: In Equation 11.evaluate_objective_minNorm uses the instruction below to perform regularized flux balance analysis:For each condition, the function % This command is integrated within evaluate_objective_minNorm and does not need to be run separately−6);[solution] = optimizeCbModel;13.The same process is carried out for all growth conditions in the script until all resulting flux vectors can be concatenated within a single matrix:% Concatenate flux vectors for all growth conditionsall_atp_flux = ;−4 into 0 to account for% Convert fluxes into absolute values, change all the values < 10ˆsolver tolerance and save to a .csv fileall_atp_flux = abs';all_atp_flux = 0;save;writematrix;CRITICAL: In this case study, the threshold for setting flux values to zero was selected as 10-4, however we advise users of the protocol to choose their own cut-offs for flux values/fold changes by conducting a robustness analysis to assess different thresholds ;for m = 1:24 all_atp_meanFlux =  + all_atp_maxFlux)./2;endTiming: < 10 minIn our analyses, gene transcripts constitute a vital component of the flux balance analysis since transcriptomic data are integrated into the GSMM to determine condition-specific flux values. Although partially based on transcriptomics, flux rates are additionally subjected to condition-specific GSMM constraints, the steady-state, and their underlying biochemistry. This automatically creates a component of nonredundant information that does not exist in the transcriptomic dataset. Generating flux data supplies more layers of information to further refine phenotypic predictions. It is thus easier to identify important predictors during machine learning analyses; much of the noise in the gene transcript data is no longer present in the flux data, since gene transcripts with low expression have been ‘filtered out’ as they do not have a large influence on linear constraints in the metabolic model, and consequently they have a smaller effect on the flux rates.Therefore, if a machine learning model can extract the non-redundant information contained in the flux rates, they can contribute new mechanistic information that is not found in the transcriptomic data. Furthermore, the model itself can act as a tool for ranking and noise reduction since the effect of low importance genes can be 'filtered out' even if their expression is highly variable across conditions. Without the metabolic model, the importance of these genes would be overstated, and they would be used erroneously to differentiate conditions. For example, in our case study, reactions involved in succinate dehydrogenation (SUCD1Itlm/SUCD1Icpm), efflux (SUCCt2b) or exchange (EX_succ_E) were found to be positively correlated with growth for all three objective pairs and were also identified among the highest positive correlations when analyzing the concatenated dataset of gene transcripts and Biomass - ATP maintenance flux data . These rIn practice, combining transcript and flux data in a single multi-omic dataset  provides a direct point of comparison between the two omics and an opportunity to observe in which instances the flux values are more predictive than transcript values. Generally, transcriptomic and fluxomic data produce different outcomes from the modeling and statistical analyses and combining the two omics yields more stable predictions.15.In MATLAB, create datasets for further analysis by concatenating transcripts and fluxes:% Find out the highest flux value in the fold change matrix by setting Inf values to 0 and omitting NaN valuesATP_FC_noinf = )./);ATP_FC_noinf(isinf(ATP_FC_noinf)) = 0;max_ATP_FC = max;% Divide flux values in all conditions by the standard control to obtain fold changesATP_FC = )./);−4 equal to 0 to account for solver tolerance% Set all fold changes < 10^ATP_FC(ATP_FC<=0.0001) = 0;% Set all NaN values to 1ATP_FC(isnan(ATP_FC)) = 1;% Set Inf values equal to the highest flux value in the matrixATP_FC(isinf(ATP_FC)) = max_ATP_FC;% Concatenate transcripts and flux fold changesATPTF = horzcat;% Add a row of all ones to represent the fold change for the standard controlATPTF = ones;% Save as .mat variable and .csv file for later analysessave;writemat;In this section, we define how to concatenate transcript and flux data by obtaining fold changes that enable a comparison of their contribution to gene/reaction variables as a result of the conditions under which the cells were grown and harvested. Timing: < 5 minPrincipal component analysis (PCA) can reduce multidimensional datasets to a few latent dimensions known as principal components, allowing the identification of variables responsible for the largest variations within datasets. The reduction of dimensionality within voluminous omic datasets is an important process to achieve successful multi-omic integration and is vital to facilitate their interpretation.In this analysis, PCA is being used to compare the contribution of each growth condition to the construction of dimensions that summarize the greatest proportion of variance in the dataset. Furthermore, specific genes and reactions contributing to variance between conditions can be pinpointed using Pathway-level PCA, wherein they are classified according to their genetic/metabolic function. The role of these genes and reactions in significant pathways or cellular processes can also be ascertained in a more detailed manner.PCA_script.R, which can be found in the GitHub repository listed in the https://github.com/Angione-Lab/Synechococcus7002-metabolic-modelling. For users wishing to carry out the full analysis on gene transcripts and/or flux rates in the form of .mat variables in MATLAB, the function pca can be used to carry out PCA on raw data, pcares returns the residuals obtained by retaining a given number of principal components and pcacov performs PCA on the square covariance matrix. However, we demonstrate our pipeline using the packages in R for improved analysis and visualization of plots that facilitate the biological interpretation. As seen below, the R packages generate detailed plots, lists of variable contributions, principal component scores and the proportions of variance explained by each dimension.Here, principal component analysis is conducted in R using the FactoMineR and factoextra packages. Full details of the code are provided in the script transcripts, all_ATP_flux, all_ATPTF, etc.). For an example plot using individual growth conditions, see 16.We begin by navigating to the workspace in R and loading the required packages:setwd(C:/Users/)library(devtools)library(FactoMineR)library(factoextra)library(corrplot)library17.We then load transcript/multiomic/flux .csv data files for analysis:transcripts <- read.csv18.Perform PCA for each dataset:res_transcripts.pca <- PCA(transcripts)19.Create plots to compare principal components scores for the first two dimensions:transcripts_PCA_plot <- fviz_pca_ind,repel = TRUE % Avoid text overlapping)Note: The number of dimensions to be plotted can be adjusted, usually depending on the proportion of variance explained by each component. For each dataset, conditions are colored according to cos2 values that indicate the contribution of the first two components to the squared distance of each condition to the origin.20.Obtain contributions of principal component variables (genes) for each dataset:contributions_transcripts <- res_transcripts.pca$var$contrib21.Obtain principal component coordinates for individual growth conditions:ind_coord_transcripts <- res_transcripts.pca$ind$coordThe gene transcripts dataset is used as an example below, but the same steps can be repeated for all datasets :Within MATLAB, import the table of contributions for the dataset ;% Concatenate with reaction and subsystem names from the GSMMcontrib_ATP_new =horzcat,fbamodel.rxns,fbamodel.rxnNames,fbamodel.subSystems,contrib_ATP);% Sort contributions in descending order by Dim1 then Dim 2contrib_ATP_sort = sortrows;contrib_ATP_Dim1 = sortrows;contrib_ATP_Dim2 = sortrows;% Save vector containing flux contributions for the first and second dimensions, specifying a dataset of contributionsDim_1_and_2 = table2array);% Save all contributions to .xls filewritetable;writetable;writetable;Note: While gene transcripts can be classified by their Cluster of Orthologous Genes (COG) category, reactions must be classified according to the pathways they are assigned within fbamodel.subSystems. Since each reaction can be classified by multiple subsystems, separate cell arrays can be allocated to store subsystems from each column of fbamodel.subSystems. The number of arrays needed depends on the maximum number of subsystems that a single reaction is categorized by within the model. In this case, each reaction is assigned to a maximum of five subsystems, therefore a total of five cell arrays are required to store the subsystem names, which are later concatenated into a single array and used to replace the original fbamodel.subSystems in the model.23.fbamodel.subSystems:Create cell arrays to store subsystems from % List all subsystems in the modellist_subsystems = unique([new_subsystems{:}])';% Create cell arrays to store subsystem namesfirst_subsystems = cell(numel(list_subsystems),1);...fifth_subsystems = cell(numel(list_subsystems),1);24.Write a 'for' loop to obtain the names of subsystems according to the number of subsystems that each reaction is categorized by:for k = 1 : length(fbamodel.subSystems) thisCellContents = fbamodel.subSystems{k};% Get the first subsystem for all reactions first_subsystems{k} = thisCellContents{1}; if length(thisCellContents) > 1% Get the second subsystem if present second_subsystems{k} = thisCellContents{2}; else% If there is only one subsystem for the reaction, assign the second a blank  second_subsystems{k} = ; end ... if length(thisCellContents) > 4% Get the fifth subsystem if present fifth_subsystems{k} = thisCellContents{5}; else% If there are no more than four subsystems for the reaction, assign the fifth a blank  fifth_subsystems{k} = ; endend25.Create another series of cell arrays to store reaction indices; then retrieve the indices that match the number of subsystems (between one and five) for each unique subsystem:% Specify the number of unique subsystemsN = length(list_subsystems);% Create empty cell arrays (with length of list_subsystems) to store reaction indices ofeach number of subsystemsix_first = cell;...ix_fifth = cell;−5):% Retrieve reaction indices for each group of subsystems ); ... ix_fifth{s} = find);end26.Merge all five arrays into a single list of indices for all subsystems:% Concatenate all five columnsix_all = horzcat;% Create cell array to store reaction indices for all subsystemsixs_subsystems = cell,1);% Merge columns to compile a total list of indices for each subsystemfor a = 1:length(ixs_subsystems) ixs_subsystems{a} = vertcat;end27.Create new variables to store the number of reactions as well as the sums and averages of principal component contributions:% Create empty vector to store number of reactions within each pathwaycardinality_subsystems = zeros(numel(list_subsystems),1);% Create empty vectors to store sums of contributions within each pathway for the first and second principalcomponentssum_contrib_subsystems_PC1 = zeros(numel(list_subsystems),1);sum_contrib_subsystems_PC2 = zeros(numel(list_subsystems),1);% Create empty vectors to store average contributions within each pathway for the first andsecond principal componentsavg_contrib_subsystems_PC1 = zeros(numel(list_subsystems),1);avg_contrib_subsystems_PC2 = zeros(numel(list_subsystems),1);28.Calculate the sums and averages of flux contributions according to their respective subsystems using another 'for' loop:%% Sort flux contributions according to subsystemsfor i = 1:numel(list_subsystems)% Compute the sums of contributions for the first and second principal components sum_contrib_subsystems_PC1(i) = sum); sum_contrib_subsystems_PC2(i) = sum);% Record the number of reactions within each subsystem cardinality_subsystems(i) = numel(ixs_subsystems{i});% Compute the mean contributions by dividing sums by the number of reactionsin each subsystem avg_contrib_subsystems_PC1(i) = sum_contrib_subsystems_PC1(i)./cardinality_subsystems(i); avg_contrib_subsystems_PC2(i) = sum_contrib_subsystems_PC2(i)./cardinality_subsystems(i);end29.Create a table containing all sums and averages of component contributions:subsystem_names = array2table;subsys_sum_avg_ATP = horzcat;subsys_sum_avg_ATP_table = array2table;subsys_sum_avg_ATP_table = horzcat;writetable;Note: Within this loop, sum_contrib_subsystems and avg_contrib_subsystems can be manually adjusted to select each dataset of contributions individually, i.e. Dim_1_&_2 originating from contrib_ATP_new, contrib_p1_new or contrib_p2_new.30.The sums of contributions to variance within each subsystem can be summarized using a pyramid plot in R  to compa# Load plotrix librarylibrary(plotrix)# Load all pathway contribution datapathway_contributions <- read.csv# Load pathway labels in reverse order for plottingpathways <- rev])# Load pathway sums of contributions for Component 1 and Component 2 in reverse ordercomp1atp.pop <- rev])comp2atp.pop <- rev])#Set ATP color gradient using preset-color-palettes from R-colorspacelibrary(colorspace)comp1atpcol <- sequential_hclcomp2atpcol <- sequential_hcl# Plot ATP pyramidpar, unit = ,lxcol = comp1atpcol, rxcol = comp2atpcol, gap = 0, xlim = c, show.values = FALSE))31.Likewise, the average contributions to variance within each subsystem can be summarized using a radar chart in R  to compa# Load fmsb librarylibrary(fmsb)# Load pathway namespathways <- pathway_contributions # Load pathway average contributions for Component 1 and Component 2PC1_Average <- pathway_contributions PC2_Average <- pathway_contributions # Specify the maximum and minimum values for plottingmax <- rep (c(0.6), each = 39)min <- rep (c(0), each = 39)# Create a dataframe of contribution valuesATP_radar_data <- t)# Specify labels for each data seriesrownames(ATP_radar_data) = ccolnames(ATP_radar_data) = pathways# Convert the variable back into a data frameATP_radar_data <- data.frame (ATP_radar_data)# Define line colorscolors_line_ATP <- c,scales :: alpha)# Create the plot radarchart ,pcol = colors_line_ATP ,plty = 1:1,plwd = 2,axistype = 4,caxislabels = c,cglty = 3,cglcol = gray70,axislabcol = gray0)# Add a legend to indicate which series belongs to which componentlegend ,]),bty = o,pch = 20, col = colors_line_ATP, text.col = gray0, cex = 1.2, pt.cex = 3)Note: Finally, we can also analyze principal component coordinates for each growth condition against single reaction fluxes. An example is demonstrated below using Biomass - ATP maintenance flux data in R # Load all flux data and contributions sorted by PC1 and PC2ATPflux <- read.csvcontrib_ATP_Dim1 <- read.csvcontrib_ATP_Dim2 <- read.csv33.Select only the columns required# Select the first principal componentPC1_ATP <- ind_coord_ATP# Check the reaction name and index of the highest contributor to the first principal componenthead(contrib_ATP_Dim1)# Select the flux rate corresponding to the reaction yielding the topcontribution in the first principal componentIODP <- ATPflux# Select the second principal component and the reaction corresponding to thetop contribution in the second principal componentPC2_ATP <- ind_coord_ATP# Check the reaction name and index of the highest contributor to the second principal componenthead(contrib_ATP_Dim2)# Select the flux rate corresponding to the reaction yielding the topcontribution in the second principal componentILEABC <- ATPflux34.Use the data to fit linear models and create scatter plots for both principal components:# Fit linear modelsrequire (stats)fit_ATP1 <- lm(IODP ∼ PC1_ATP)fit_ATP2 <- lm(ILEABC ∼ PC2_ATP)# Create plotsATP1_plot <- plot ATP2_plot <- plot # Calculate the Pearson correlation coefficientcorr_PC1 = corcorr_PC2 = corabline(fit_ATP1)abline(fit_ATP2)Timing: < 10 mink-means families. On one hand, hierarchical clustering is an iterative process that progressively combines pairs of observations that are the closest in proximity until all clusters are merged within a hierarchy. On the other hand, k-means finds the number of clusters that minimizes the sum of squared Euclidean distances between each observation and its respective cluster mean (K random points in the dataset (known as cluster centroids) define the groups that the remaining data points are assigned to, which are continually relocated to the averages computed within each group until distinctive clusters are formed. When applied to transcriptomic and fluxomic data in our study, k-means clustering is used as a method to assess whether multi-omic datasets identify clusters of growth conditions according to their respective omic responses and which trends can be observed between growth-promoting and growth-limiting conditions. In this instance, they indicate that the single-omic datasets may benefit from being analyzed in isolation, bypassing an increase in data dimensionality that cannot be easily reduced. k-means clustering is run using the script statistics_on_genes.m, which also calls mdscale_robust.m, a script that applies multidimensional scaling to avoid co-location of data points during clustering. Additionally, the generation of silhouette plots (35.We begin by loading the required variables into MATLAB:% Load the model and transcriptomic IDsload('SynechococcusPCC7002.mat'); %fbamodelload('Syn7002_IDs.mat'); % list of gene IDs extracted from transcriptomic reads file% Create a variable to store gene accession IDs from the modelgenes = fbamodel.genes;% Create a variable to store gene accession IDs from the transcriptomic datasetsgenes_in_dataset = Syn7002_IDs;% Specify the number of objectivesM = 2;% Specify the number of variablesV = numel(genes);36.transcripts, all_ATP_flux, ATPTF, etc.):Specify the dataset on which the clustering will be performed. The gene transcripts dataset is shown as an example, but the same steps can be repeated for all datasets ;37.profiles’ and not the original dataset profiles, otherwise the correlation  would be computed between profiles along all the genes, instead of the correlation between genes along the profiles:It is important to use the transposed dataset % Select the index of interest profiles = all_objpairs;% Transpose profiles to compute correlation between genesgenes_vs_profiles = profiles';38.zscore function is used to standardize each of the profiles to have zero mean and unit variance, after which the pdist function is used to compute pairwise distances between pairs of observations in the dataset:The % Standardize profiles using zscore values and compute the pairwise distances between themdist_correlation_vector = pdist(zscore(genes_vs_profiles), 'correlation');% Compute the distance correlation matrixdist_correlation_matrix = squareform(dist_correlation_vector);Note:K-means clustering requires the user to decide the number of clusters (K) that the data is partitioned into. Prior to clustering, different values of K can be tested using silhouette analysis in order to select the most suitable number of clusters for partitioning data.39.y) against the number of clusters selected (x), which indicates the best value to select for K :In order to establish the optimal number of clusters, a silhouette analysis can be conducted to measure the cohesion of data points within each cluster . The initial pre-plot in −means: Press ''y'' if the number of cluster is known, or any other key to execute silhouette analysis ';prompt = 'kanswer = input;%if strcmp mean_silhouette = zeros; for NoClust = 2:30  = kmeans;Note: Upon selecting a value for K, the silhouette function in MATLAB produces a plot ; h = gca; h.Children.EdgeColor = [.8 .8 1]; xlabel 'Silhouette Value'; ylabel 'Cluster'; endend40.k-means plot:Upon examination of the silhouette plot, the user is prompted to manually select the number of clusters for the % Enter the number of clusters−means: what is the number of clusters chosen after inspection of the mean_silhouette plot?';prompt = 'kNote: The closer the silhouette coefficients are to the value of 1, the further that point is from other clusters and the better the separation of clusters. If the point has a coefficient close to 0, this means that it is very close to the decision boundary between two neighboring clusters. After the silhouette coefficients have been calculated for data points in each cluster, a mean silhouette score can be computed to evaluate the feasibility of the entire cluster.41.Nonmetric multi-dimensional scaling can be applied to circumvent errors caused by the co-location of data points by multiplying dissimilarities by a scalar:% Specify the number of iterations for the scaling algorithmoptions = statset;−dimensional scaling% Perform multi = mdscale_robust;Note:mdscale_robust is a variation of the mdscale function where scaling is used to minimize the squared stress criterion with 500 iterations of the algorithm.42.kmeans function is used to perform clustering using the following command:The % Perform k-means clustering = kmeans;Note: In this instance, the ‘dist’ metric for clustering is the city block  distance. The formula for computing this distance can be specified in general as:43.k-means clusters:Finally, a scatter plot can be created to display the % Create the final k-means plotfigureC = cidx; %color according to k-means clusteringcolormap(jet(256))scatter,Y,200,C,'.');−Means Clustering (k = 'num2str(numel(unique(cidx)))')']);title)','%d'); %'text,Y,labels,'horizontal','left','vertical','bottom')The purpose of clustering techniques is to partition samples into groups based on hidden patterns in data. They are particularly suitable for detecting underlying associations based on shared characteristics where there is little information available. Most clustering methods are categorized within the hierarchical and ter mean . K randote plots  and 15 ite plots .35.We beTiming: < 10 minin vivo growth rates by penalizing the recursive predictors . The script lasso.m performs LASSO regression with α= 1, which returns fitted least-squares coefficients for linear models of transcript, flux or multi-omic data (x) and the growth rates (y) in 12 growth conditions. Following this, the mean predictor coefficient (MPC) can be calculated by averaging across nonzero coefficients in all vectors for each gene/reaction. In this example, only 12 out of 23 growth conditions had (i) specified growth rates, (ii) specified doubling times, or (iii) standard growth curves that could be used to calculate growth rates from the original studies ';transcripts = transcripts';% Specify the dimensions of the datat_size = size(transcripts);% Create transcript data corresponding to 12 growth conditionstranscripts_subset = ones); % all ones for standard controltranscripts_subset = transcripts;% Load flux dataload;% Create flux data corresponding to 12 growthconditionsall_atp_flux_subset = all_atp_flux;% Load multi-omic data (concatenated transcript and flux data)load('ATPTF.mat');% Create multi-omic data corresponding to 12 growth conditionsATPTF_subset = ATPTF;% Load available growth rates corresponding to 12 growth conditionsY2 = ;% Create name IDs for growth conditions−limited', 'S−limited', 'P−limited', 'Nitrate',Y2_names = {'Standard Control', 'N'Ammonia', 'Urea', '22C', '30C', 'Mixotrophic', 'Low salt', 'High salt'};45.x) and the growth rates as response (y):Perform LASSO regression with each dataset acting as predictor data ;% Average across all coefficients by finding mean of each row (predictor)B_transcripts_mean = mean;% Find indices of absolute nonzero mean predictor coefficientstranscripts_abs_mean = abs);nonzero_transcripts = find(transcripts_abs_mean > 0.01);% Convert data into cell arraysB_transcripts = array2table(B_transcripts);B_transcripts_mean = array2table;46.Create a table that combines all data relating to nonzero predictors and their coefficients:% Create cell array of gene IDstranscripts_IDs = array2table([1:t_size(2)]','VariableNames',{'ID'});% Create table of categorical data from original transcriptomic dataDataset1 = readtable('Dataset1.xlsx');names_transcripts = );% Concatenate categorical data with B coefficients array and mean predictorsB_transcripts_table = horzcat;% Filter for indices with nonzero predictor coefficients > 0.01B_transcripts_nonzero = B_transcripts_table;% Sort coefficients in descending orderB_transcripts_zero = sortrows;% Save table of coefficients as .xlsx filewritetable;The main purpose of the analysis is to identify the core subset of predictors (either genes and/or reactions) with positive or negative nonzero coefficients greater than 0.01 that are strongly related to  studies , 2012a,bTiming: < 10 mincorrcoef_tf_gr.m calculates the Pearson correlation coefficients between subsets of transcript/flux data (x) and growth rates (y) across 12 conditions. The example below demonstrates how a table of correlation coefficients calculated between the transcript data and growth rates is generated in MATLAB (corr_transcript_table), but the corresponding tables can also be created for flux data, i.e., corr_ATP_table, corr_P1_table, corr_P2_table. Example plots of the positive/negative correlation between the transcript data and growth rates are provided in 47.In MATLAB, create output vectors to store correlation coefficients, p-values, and lower and upper bounds of confidence intervals, changing the number of rows for transcripts (3187), fluxes (742), or both (3929):% Create empty vectors to store outputscorr = zeros; % PCC−valuepval = zeros; % plb95 = zeros; % lower bound for 95% confidenceub95 = zeros; % lower bound for 95% confidence48.x (gene transcripts in this example):Specify the size and type of dataset to be used as % Specify the number of scalar observations(N)N = size;49.corrcoef function:A ‘for’ loop is used to iteratively calculate Pearson correlation coefficients with their respective p−values and 95% confidence intervals over the whole dataset using the −values (P) and lower and upper bounds (RL and RU) according to the 95% confidence interval:% Calculate correlation coefficients (R) with their respective pfor i = 1:N  = corrcoef,Y2); %Y2 contains growth rates corr(i) = R; pval(i) = P; lb95(i) = RL; ub95(i) = RU;end50.Save the data in an .xlsx table:% Create table of correlation coefficientscorr_transcripts = array2table;corr_transcripts_table = horzcat;% Sort table in descending order of PCC valuescorr_transcripts_table = sortrows;% Save table of correlation coefficientswritetable;51.Select data corresponding to predictors yielding the highest correlations:% Retrieve IDs for transcripts that yield the top 10 positive PCCtop_10_positive_IDs = table2array);% Retrieve IDs for transcripts that yield the top 10 negative PCCcorr_transcripts_table = sortrows;top_10_negative_IDs = table2array);% Select all data points for transcripts indexed by these top 10 PCCtranscripts_positive = transcripts_subset;transcripts_negative = transcripts_subset_new;52.Plot these predictors against the growth rates as follows:% Create a scatter plot for the transcript with the highest positive PCCscatter,Y2,'filled','black');xlabel;ylabel('Growth Rate');% Add a trendlineh = lsline;h.Color = 'black';% Create a scatter plot for the transcript with the highest negative PCCscatter,Y2,'filled','black');xlabel;ylabel('Growth Rate');% Add a trendlineh = lsline;h.Color = 'black';CRITICAL: Examine correlation plots to check for regression artifacts  values prior to calculating their correlations in order to equally represent the activity of reversible reactions. Using the same data as in LASSO regression, the script Timing: < 15 mincorr_ATP_table has been generated using the same steps as in 53.Extract correlation coefficients for the flux data in MATLAB and convert them into absolute values:% Load PCC values from tables generated during the correlation analysisATP_PCC = table2array);ATP_PCC(isnan(ATP_PCC)) = 0;% Convert coefficients into absolute valuesATP_PCC_abs = abs(ATP_PCC);CRITICAL: Correlation coefficients are converted into absolute values prior to calculating the mean PCC for all pathways since only the magnitude of correlation (and not the direction) is considered when plotting the bar chart in 54.cardinality_subsystems) and reaction indices obtained for each subsystem (ixs_subsystems) as in Calculate mean PCC values for each subsystem using the same number of reactions recorded within each subsystem ,1);% Calculate mean PCC by subsystemfor c = 1:numel(ixs_subsystems) ATP_PCC_mean(c) = mean);end55.Plot a bar chart using the mean values:−axis labels% Set subsystem names as xX_labels = categorical(list_subsystems);% Plot the subsystems (x) against mean pathway PCC values (y):X = categorical(list_subsystems);bar;xlabel('Subsystems');ylabel('Mean PCC');hold onset;Note: Since the mean absolute PCC values disregard the signs of individual correlation coefficients, we can also plot a heatmap recording the number of PCCs within a series of binned ranges for each subsystem. This gives a better indication of the number of reactions within each pathway as well as the direction of correlation.56.Create variables to store PCC values for all reactions within each subsystem:all_corr_ATP = cell(numel(ixs_subsystems),1);% Create bins to sort PCC valuesbin_1 = zeros(numel(ixs_subsystems),1);...bin_7 = zeros(numel(ixs_subsystems),1);57.Use a ‘for’ loop to record the number of correlation values within a given range for each bin:% Store correlation values for each subsystem in a cell arrayfor c = 1:numel(ixs_subsystems) all_corr_ATP{c} = ATP_PCC;% Within this loop, temporarily convert each row of cells into numericals all_corr_ATP_val = cell2mat);% Record the number of coefficients within each bin−0.7 & all_corr_ATP_val < −0.5)); bin_1(c) = numel); bin_2(c) = numel); bin_3(c) = numel); bin_4(c) = numel = numel); bin_6(c) = numel); bin_7(c) = numel);end58.Plot the number of reactions in each bin and subsystem using a heatmap:% Concatenate bins horizontally into an arraycdata = horzcat;% Label the bins (x)−0.7, −0.5[','[−0.5, −0.3[','[−0.3, −0.1[','[−0.1, 0.1[','[0.1, 0.3[','[0.3, 0.5[','[0.5, 0.7['};xvalues = {'[% Label the subsystems (y)yvalues = list_subsystems(:)';% Plot the heatmap using a custom colormap (ATPmap):− ATP maintenance','XLabel','PCC','YLabel',h = heatmap;Note: Similar heatmaps can be plotted for the Biomass - Photosystem I and Biomass - Photosystem II correlation coefficients to evaluate the correlation between metabolic flux and growth rates across various pathways.Similar to the Synechococcus sp. PCC 7002, following the workflow laid out in The main outcome of this analysis is to establish a procedure for linking specific genes and/or reactions across trans-omic layers of data belonging to the same biological system. Here we present an example of the pipeline applied to k-means clustering, LASSO regression and Pearson correlation analysis. Features identified through these analyses reflect the coordinated responses shared between different data types, as well as the variability in responses between different growth conditions. Since the flux data is informed by transcriptomic data through the integration of condition-specific growth profiles within the GSMM, the downstream effect of differential gene expression on metabolic pathways can be observed. Analyzing both transcriptomic and fluxomic data provides a more complete picture of cyanobacterial metabolism than single-omic analyses.The process begins with tailoring the GSMM according to available transcriptomic data recorded under different conditions that influence growth and photosynthesis. After performing condition-specific FBA with norm-2 regularized bi-level optimization, comparisons can be made between the results of analyses performed upon gene transcription data, metabolic flux data and the multi-omic data resulting from their concatenation. These analyses include PCA, in silico flux simulation with machine learning.The protocol can be applied for numerous purposes such as model-aided discovery, hypothesis testing, identification of targets for metabolic engineering and comparison between multi-omic data across biological conditions. These processes can be optimized by examining the downstream effects of gene expression on metabolism, thereby contributing to expanding knowledge and meaningful outputs from metabolic models as well as lending biological interpretability to machine learning models. Our code and step-by-step methodology are intended to make these analyses more accessible to non-experts or serve as a guide to other investigators for combining During Synechococcus sp. PCC 7002 cultures were not measured in the same conditions in which the cells were harvested for transcriptomic sequencing. Therefore, constraints for photon exchange reaction (EX_PHOTON_E) had to be approximated using values listed in literature for dry cell weight and photon absorbance for similar species and adjusted based on the availability of light for each growth condition. This process could be improved by specifying directly measured photophysiological parameters , and using these values to constrain photon uptake more accurately for each culture  differ significantly in terms of their format and structure. Data transformation, normalization or scaling techniques must be applied as forms of pre-processing prior to integration in order to make these data comparable. Particularly, the batch effect must be taken into account both before and after conducting experiments since this gives rise to unwanted variation in datasets caused by differences in technical factors across batches  switch-based approaches (such as GIMME), which remove inactive or lowly expressed genes by setting the corresponding reaction boundaries to zero, and (ii) valve-based approaches (such as E-flux), which increase or decrease the activity of highly  expressed genes by adjusting the upper and lower bounds for their corresponding reactions, proportional to their normalized gene expression values .The main advantage of GIMME-like methods is that they can re-enable flux associated with false negative values in inactive reactions and record consistencies between gene expression data and flux predictions. On the other hand, non-discretized relative gene expression values are more indicative of protein concentrations since levels of transcription are more comparable across genes. The approach used in this case study is closer to a valve-based approach based on METRADE , where ta priori knowledge of context-specific functions or binarization of reactions during data integration. However, RegrEx is one such algorithm that uses regularized least-squares optimization for automated model extraction and unbiased flux calculation  algorithms consider the main objective function(s) that represent the metabolic tasks as the main priority for the cell or community or utilize omics-guided objective functions, as in omFBA . Networkculation .−4) may not be applicable for every model, seeing as fluxes toward biomass building blocks and other important metabolic components are at risk of being eliminated , we recommend increasing the order of magnitude for setting flux rates to zero until a trade-off can be reached between eliminating noise within the data whilst still retaining the ability to identify and quantify functionally significant contributions of metabolic processes. Values that are below the chosen threshold can then be set to zero based on this adjustment without any statistically significant changes in results.We advise users of the protocol to conduct a robustness analysis to assess different thresholds for flux and fold change values. Starting from the solver tolerance parameter  and convert these values into flux units mmol/gDW h-1 .Further information and requests for resources should be directed to and will be fulfilled by the lead contact, Claudio Angione (The study did not generate new unique reagents or other materials.


The current gold standard of Static Cold Storage (SCS), which is static cold storage on ice (about + 4 °C) in a specialized media such as the University of Wisconsin solution (UW), limits storage to few hours for vascular and metabolically active tissues such as the liver and the heart. The liver is arguably the pinnacle of metabolism in human body and therefore metabolic pathway analysis immediately becomes very relevant. In this article, a Nash Equilibrium (NE) approach, which is a first principles approach, is used to model and simulate the static cold storage and warm ischemia of a proposed model of liver cells. Simulations of energy depletion in the liver in static cold storage measured by ATP content and energy charge are presented along with comparisons to experimental data. In addition, conversion of Nash Equilibrium iterations to time are described along with an uncertainty analysis for the parameters in the model. Results in this work show that the Nash Equilibrium approach provides a good match to experimental data for energy depletion and that the uncertainty in model parameters is very small with percent variances less than 0.1%. The current gold standard of Static Cold Storage (SCS), which is static cold storage on ice (about + 4 °C) in a specialized media such as the University of Wisconsin solution (UW), limits storage to few hours for vascular and metabolically active tissues such as the liver and the heart. This rather restrictive limit creates major logistical constraints that compound donor organ shortage and presents a major obstacle to on-demand tissue availability and global organ sharing2. There is general consensus in the field that traditional SCS is limited in part due to the slower but consensus depletion of the tissue energy stores which is a key upstream component of ischemia reperfusion injury; and our group has shown in a small clinical study that energy charge  is a marker of early allograft dysfunction for liver transplantation3. Given the limitations of SCS, the field itself is pushing ex vivo Machine Perfusion (MP) as an enabling technology compared to static cold storage  including comprehensive stoichiometric models such as hepatonet1 . Moreover, in the context of transplantation, preservation is a process of just a few hours, meaning many genetic aspects can be safely neglected provided the SNMP temperature is less than 10 °C. In the absence of blood, immune responses are subdued which makes this otherwise key aspect of liver biology likely safe to ignore, at least initially in model development. Finally, preservation allows easy access to sampling both the tissue and the preservation media for analysis, allowing obtaining time profile data with significant ease compared to typical medical applications.The problem of liver preservation has several unique properties that simultaneously help and hinder utilizing systems engineering approaches for optimizing the organ. The liver itself is arguably the pinnacle of metabolism in human body, and therefore various metabolomic pathway analysis approaches immediately become very relevant. The prior elucidation of central energy metabolism as discussed above, and the finding of energy charge as a clinical biomarker13) or Flux Balance Analysis  and many of its variations are by definition limited. The dynamic FBA (dFBA) approach of Mahadevan et al.21 and similar approaches are more applicable, but the majority of FBA-based approaches are constrained only by reaction stoichiometry, which often results in degenerate solutions that lie on user-specified flux bounds22. Dynamic formulations that incorporate chemical reaction kinetics , which can be traced back to the work of Michaelis and Menten24 are ideal but suffer from a need of experimentally determined kinetic parameters which grow exponentially with the model size, are not practical in the context of an organ.On balance though, this is a difficult problem. Approaches targeting pseudo steady-state, such as Metabolic Flux Analysis  simulations of liver metabolism for SCS and WI. Model predictions, comparisons to literature data, as well as algorithm convergence, and an uncertainty analysis of model parameters are discussed. We end the paper with a discussion of key results and conclusion of this work.In this work, we propose a novel approach for modeling and numerical simulation of liver metabolism during static cold storage and warm ischemia (WI) that leverages the Nash Equilibrium (NE) methodology recently developed by Lucia and coworkers27 and is quite unlike FBA, MFA, or kinetic modeling. The NE approach is a first principles approach that uses chemical equilibrium and mass balance and is based on the following three ideas:Enzymes are players in a multi-player game.Each player (enzyme) minimizes the Gibbs free energy of the reaction it catalyzes subject to element mass balances.The goal of the metabolic network is to find the best overall solution given the natural competition for nutrients among enzymes.The modeling approach used in this manuscript is based on the Nash equilibrium (NE) framework for determining unknown fluxes throughout a given network recently developed by Lucia and coworkers27, the first part of which is a tutorial describing the mathematical formulation, governing equations, and algorithmic aspects such as charge balancing, linear independence of constraints, enzyme–substrate reactions, etc. Here we present the basic formulation as well as a Nash Equilibrium pseudo-algorithm in order to give the reader a better overall understanding of the sequence of computations used in the general case.A detailed description of the mathematical framework associated with the Nash Equilibrium approach is given in Lucia and DiMaggioThe NE formulation for an arbitrary metabolic network is a rigorous, first principles approach that does not ignore or constrain accumulation/depletion of intermediate metabolites and cofactors.The NE formulation is given by a collection of Temperature effects are included using the Gibbs–Helmholtz equation, which is given byhttp://equilibrator.weizmann.ac.il/). Feedbacks within any pathway are converged using successive substitution. Thus, issues of thermodynamics infeasibility raised in Henry et al.28 are irrelevant in the NE framework. Also, any number of enzyme–substrate reactions can be explicitly included in the model and require.https://www.rcsb.org/pdb/home/) for accurate enzyme and/or enzyme–substrate structure data,The RCSB Protein Data Bank (https://mcule.com) to compute the necessary Gibbs free energies of binding (or binding affinities) for all key enzymes.AutoDock or 1-Click-Docking , pathway connections, and transport fluxes in the given metabolic network.Read properties for all species .Break all feedback and transport fluxes in the network and estimate the initial values of these fluxes.Determine an initial steady-state solution.Perturb the metabolic network to elicit a response.Solve each NLP sub-problem given by Eqs. –4 for thIf the 2-norm of the difference is within a certain tolerance, If not, replace estimated feedback and transport fluxes with the calculated ones; go to step 7.Compare the new calculated transport fluxes with previously estimated flux values.The Nash Equilibrium algorithm is iterative.Steps 1–5 are preprocessing steps. Step 1 defines the metabolic network to be simulated. Step 2 creates link-lists of pathways, species, and transport fluxes. Each pathway in the given network has well-defined reactions and thus all species, charged and/or neutral, can be identified. Given the identities of all species, step 3 reads the appropriate data from our database. Because the NLP sub-problems to be solved are nonlinear and feedback and transport fluxes exist, all feedback and transport fluxes must be estimated initially. This is done in step 4 of the pseudo-algorithm. Step 5 determines an initial steady-state solution from which the network is perturbed in step 6 to elicit a response. The software is designed to permit perturbation of any metabolite, cofactor, or enzyme and to add/delete any pathway from the network. Step 7 is the heart of the NE approach in which all NLP sub-problems are solved for the unknown fluxes of all metabolites, cofactors, and enzymes, including feedback and transport fluxes. It is important to note that there may (and most likely will) be multiple fluxes for many of the common cofactors in metabolism. For example, there will be an ATP flux in glycolysis as well as one for ATP in the Krebs cycle, the urea cycle, oxidative phosphorylation, and so on. Finally, in step 8 feedback and transport fluxes on successive NE iterations are compared. Step 8a checks for convergence and, if successful, the NE algorithm terminates. If convergence is not reached, step 8b is invoked (successive substitution), and steps 7 and 8 are repeated, which define the next NE iteration. Converged NE solutions provide values of all fluxes, concentrations, amounts of all metabolites, cofactors and enzymes generated and/or consumed in the model, pH, and energy charge.To study the central energy metabolism during liver preservation, we constructed a superstructure capturing the key pathways, as presented in Fig. The superstructure depicted in Fig. There are a number of unique aspects of liver metabolism that should be included in order to have a physiologically meaningful mathematical model in the context of liver SCS and WI.Conversion of glucose to glucose-6-phosphate (G6P) is carried out by hexokinase 4 (glucokinase) which is only present in the liver and pancreas. Unlike other isoforms of hexokinase, the glucokinase catalyzed reaction29 report that glutathione, along with adenosine, are important components of the University of Wisconsin (UW) solution used in static cold storage organ preservation. These key nutrients help with ATP regeneration. To see this, note that high glutathione concentration will shift the overall reaction30.Southard et al.31. This suggests that the liver transports very little, if any, 3PG from glycolysis to the serine biosynthesis pathway and must synthesize serine differently. The enzyme glycine hydroxymethyltransferase (SHMT2), which is present in mice, rats, and humans, can convert glycine synthesized from glutathione to serine.Serine is generally produced from 3-phosphoglucose (3PG). However, the liver does not synthesize serine to any appreciable degree because the enzyme 3-phosphoglycerate dehydrogenase (3-PGDH) is only present in very small amounts. See Kalhan and Hanson Lactate is produced during SCS because the liver is in a hypoxic state and pyruvate metabolism shifts from oxidation to fermentation. Typical healthy concentrations of lactate range from 2 to 3 mM and represent one criterion commonly used to assess of liver viability during MP.3) is toxic to animals and human. Normal intracellular ammonia concentrations are in the range 0.5 to 1 mM. See Remesy et al.32. Ammonium (NH4+) is also toxic. Levels ~ 100 mmol can cause loss of consciousness and levels ~ 200 mmol can cause convulsions and/or coma. Thus, it is important to keep levels of ammonia and ammonium at acceptable levels in SCS and MP and in turn simulating them allows tracking these constraints on the organ.Ammonia . In our simulations, we calculated the concentrations of these metabolites based on 50 ml. UW solution flush.All SCS simulations in this manuscript were run at 4 ͦC in order to mimic the storage of livers, which are flushed with UW solution at recovery and then placed on ice for transport to the recipient hospital. Table It is important for the reader to understand that complete knowledge of the metabolic state at the beginning of SCS is not possible from experiment. To circumvent this, we compute a chemical equilibrium and use this as the initial state of the liver in SCS.–4 pmol/cell and a decrease in ATP content from 7.923 to 0.6343 mM. Over the same period, the energy charge decreases from 0.7422 to 0.4321 due to the depletion of ATP coupled with an increase of 2.5597 × 10–5 pmol/cell of AMP.Numerical simulation results for static cold storage are shown in Figs. 34, containing ATP content data from a total of 44 and 30 rats respectively, whose weight ranged from 150 – 250 g. In both studies the authors state that ATP content correlates well with liver graft viability. Note that while the ATP content for the two experimental data sets has considerable variability, the ATP concentration is in the normal range of  and both data sets follow similar time evolution. Notably, the model predictions fall between the two studies in literature and are within the 99% confidence interval of the work of Berendsen et al.36 and provides a good qualitative match of the experimental data. See “There is not a lot of experimental data for static cold storage in the open literature and the experimental data sets that are available show considerable variability, most likely due to the extreme sensitivity of ATP assays to sample gathering and freezing protocol. Figure Figure –5 pmol/cell while the concentration of lactate concomitantly rose from 2.836 to 4.048 mM due to the synthesis of 4.148 × 10–5 pmol/cell of lactate. This is above the normal lactate concentration of 2–3 mM. The SCS numerical simulations also show that there was some ammonia clearance from the liver with the synthesis of 1.643 × 10–6 pmol/cell of urea resulting in a final ammonia concentration of 4.553 mM, which is considerably higher than the normal intracellular ammonia concentration of 0.5 to 1 mM. During SCS pH rose from 7.7567 to 8.3452 due to the consumption of H+ ions in pyruvate fermentation to produce lactate and in the electron transport chain. Other key metabolites that underwent change during static cold storage simulations included glutathione, NAD+, ADP, and water. Glutathione consumption helped offset depletion of ATP. Synthesis of NAD+ resulted in an NAD+/NADH = 2.6752, which is below the normal range. Finally, it is important not to overlook the consumption of intracellular water during SCS due to urea synthesis and the synthesis of ADP.Here the net amount of ammonia produced was 4.728 × 10The methodology to convert NE iterations to time is described in detail in “The urea cycle and fatty acid synthesis dominate the dynamic behavior of the network because these pathways are the major consumers of ATP. The flux of ammonia in glutaminolysis is high as are the inter-pathway transport fluxes of ammonia to the urea cycle and pyruvate to pyruvate fermentation – as shown by the thicker red arrows on the left of Fig. http://equilibrator.weizmann.ac.il/), which also includes standard deviations, + given in the eQuilibrator database is The main model parameters used in the Nash Equilibrium approach are standard state Gibbs free energies, A mean value and variance, –8 while the percent variance is on the order 10–6 for 100 SCS simulations. The median value and interquartile range (IQR) for ATP content are 6.33595 × 10–4 mM and 1.54060 × 10–5 respectively.All quantities in Fig. entclass1pt{minima–5 means that 50% of the data points are within 1.54060 × 10–5 times the median consumption of ATP or in the range . The variances and percent variances for energy charge and pH are a bit larger than those for the metabolites and cofactors; however, all percent variances are less than 0.1%. The total time required for 100 SCS simulations was 30.96 s., giving an average liver metabolism SCS simulation time of ~ 0.31 s. Therefore, many SCS scenarios can be investigated very quickly using numerical simulation, something not feasible with experimentation.An IQR of 1.54060 × 10Inner Loops Iteration is required to sequentially converge individual pathways that contain feedback such as glutaminolysis, the Krebs cycle, oxidative phosphorylation, and the urea cycle. Within each outer loop iteration, pathways with feedback are converged to an accuracy of 10–5. Thus, at each outer loop iteration, all pathways are in (quasi-) chemical equilibrium.Outer Loop Iteration is also needed to converge the outer loop variables which consist of inter-pathway transportation fluxes. See the blue lines in Fig. The convergence behavior of the Nash equilibrium algorithm involves two levels of iteration:Given this algorithmic structure, it is the behavior of the inter-pathway transport fluxes that dictate the overall time evolution of the network and convergence performance. Table 41.There are many studies of ATP depletion for liver, kidney, heart, etc. in rats, pigs, and humans in warm ischemia and all studies show basically the same qualitative behavior—a rapid decrease in cellular ATP content, usually within 20–30 min. To further validate the Nash Equilibrium modeling framework, several numerical simulations were run using the exact same model of liver metabolism shown in Fig. 41 This, in turn, significantly increased the rate of glucose 6-phosphate (G6P) synthesis and the rate of ATP consumption in the preparatory phase of glycolysis. As in Martin et al.42, we observed a reduction in NAD+ concentration and higher accumulation of glyceraldehyde-3-phosphate (G3P) in the warm ischemia NE simulations, both of which impact the payoff phase of glycolysis. As a result, net ATP production was slightly less in WI than in SCS while net ATP consumption was 2.5 times higher in WI than in SCS.Note that the NE simulations agree with the experimental data quite well, capturing rapid ATP depletion within the first 20 min. However, it is important to note that while the pathways for WI were the same as those for SCS, the numerical behavior of glycogenolysis and glycolysis were markedly different. Most notably, the rate of glycogenolysis  from glycogen) was much higher in warm ischemia than in SCS. See Harrison et al.A metabolic pathway model for rat livers was presented along with an algorithm for Nash Equilibrium (NE) modeling and simulating metabolic networks. Numerical results have demonstrated that the NE approach can be used to successfully model and simulate UW flush plus static cold storage as well as warm ischemia in rat livers. Numerical results also showed that the NE framework can produce numerical behavior of SCS that compares favorably with experimental data. That is, NE simulations of SCS showed a marked decrease in both ATP content and energy charge along with concomitant generation of lactate, ammonia, and urea. Snapshots of the time evolution of static cold storage were presented and indicate that fluxes in the urea cycle, pyruvate fermentation, and fatty acid synthesis are higher than in other parts of the network throughout the entire SCS simulation and dominate the time behavior of SCS. Moreover, this dynamic behavior is precisely what one would expect. Finally, NE simulations of warm ischemia were conducted. Here, numerical results were in good agreement with experimental data, clearly showing a rapid depletion of ATP and energy charge in the cell.A major advantage of the Nash Equilibrium modeling of metabolic pathways is that standard state Gibbs free energies and enthalpies of formation are the key parameters used in the model, which is dramatically fewer compared to traditional Michaelis–Menten models which require an impractical number of kinetic constants in the context of an organ metabolism. In this sense, the NE model can be considered close to a first principles model. To ensure that the predictions of the model were robust against such literature thermodynamic data, a numerical study of parameter uncertainties was conducted. Results showed that percent variances associated with model parameter uncertainties were less than 0.1%. In addition, it was shown that inter-pathway transport fluxes control the convergence of the NE algorithm and that convergence was fast  requiring less than 1 CPU second of computer time. Overall, the minimal input parameter requirement and absence of any major sensitivity to parameter uncertainty are very attractive qualities for NE metabolic modeling, as opposed to those that require extensive reaction kinetic information which is difficult to gather for many biological systems. Similarly, the computational efficiency makes the model very practical for expanding to large problems and more complete metabolic modeling efforts.Supplementary Information.