{ "cells": [ { "cell_type": "markdown", "id": "a84fb367", "metadata": {}, "source": [ "# A full MFA analysis workflow" ] }, { "cell_type": "markdown", "id": "366a5363", "metadata": {}, "source": [ "This is a summary notebook of all the MFA methods. More in-depth descriptions, please " ] }, { "cell_type": "markdown", "id": "e20f6e3e", "metadata": {}, "source": [ "#### INCA script generation" ] }, { "cell_type": "code", "execution_count": 1, "id": "872c8152", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Determination of memory status is not supported on this \n", " platform, measuring for memoryleaks will never fail\n" ] } ], "source": [ "from BFAIR.mfa.INCA import INCA_script\n", "import pandas as pd\n", "import numpy as np\n", "import time\n", "import ast\n", "import matlab.engine" ] }, { "cell_type": "markdown", "id": "e8eacf37", "metadata": {}, "source": [ "#### Initialize the script" ] }, { "cell_type": "code", "execution_count": 2, "id": "a6ad35d2", "metadata": {}, "outputs": [], "source": [ "INCA_script = INCA_script()" ] }, { "cell_type": "markdown", "id": "1de80a02", "metadata": {}, "source": [ "#### Import the data" ] }, { "cell_type": "code", "execution_count": 3, "id": "6c9d2fd2", "metadata": {}, "outputs": [], "source": [ "# measured fragments/MS data, tracers and measured fluxes should be limited to one experiment\n", "\n", "atomMappingReactions_data_I = pd.read_csv('data/MFA_modelInputsData/data_stage02_isotopomer_atomMappingReactions2.csv')\n", "modelReaction_data_I = pd.read_csv('data/MFA_modelInputsData/data_stage02_isotopomer_modelReactions.csv')\n", "atomMappingMetabolite_data_I = pd.read_csv('data/MFA_modelInputsData/data_stage02_isotopomer_atomMappingMetabolites.csv')\n", "measuredFluxes_data_I = pd.read_csv('data/MFA_modelInputsData/data_stage02_isotopomer_measuredFluxes.csv')\n", "experimentalMS_data_I = pd.read_csv('data/MFA_modelInputsData/data-1604345289079.csv')\n", "tracer_I = pd.read_csv('data/MFA_modelInputsData/data_stage02_isotopomer_tracers.csv')" ] }, { "cell_type": "markdown", "id": "4fc0a6c0", "metadata": {}, "source": [ "#### Exclude data for irreleavnt experiments and models" ] }, { "cell_type": "code", "execution_count": 4, "id": "4ae92441", "metadata": {}, "outputs": [], "source": [ "# The files need to be limited by model id and mapping id, I picked \"ecoli_RL2013_02\" here\n", "atomMappingReactions_data_I = INCA_script.limit_to_one_model(atomMappingReactions_data_I, 'mapping_id', 'ecoli_RL2013_02')\n", "modelReaction_data_I = INCA_script.limit_to_one_model(modelReaction_data_I, 'model_id', 'ecoli_RL2013_02')\n", "atomMappingMetabolite_data_I = INCA_script.limit_to_one_model(atomMappingMetabolite_data_I, 'mapping_id', 'ecoli_RL2013_02')\n", "measuredFluxes_data_I = INCA_script.limit_to_one_model(measuredFluxes_data_I, 'model_id', 'ecoli_RL2013_02')\n", "\n", "# Limiting fluxes, fragments and tracers to one experiment\n", "measuredFluxes_data_I = INCA_script.limit_to_one_experiment(measuredFluxes_data_I, 'experiment_id', 'WTEColi_113C80_U13C20_01')\n", "experimentalMS_data_I = INCA_script.limit_to_one_experiment(experimentalMS_data_I, 'experiment_id', 'WTEColi_113C80_U13C20_01')\n", "tracer_I = INCA_script.limit_to_one_experiment(tracer_I, 'experiment_id', 'WTEColi_113C80_U13C20_01')" ] }, { "cell_type": "markdown", "id": "ce357111", "metadata": {}, "source": [ "## Generate the MATLAB script\n", "\n", "Save it in your working directory. The last argument in the script_generator function will name your future .mat file" ] }, { "cell_type": "code", "execution_count": 5, "id": "fde2ae87", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "There is no stoichimetriy given for: ATPM\n", "There is no stoichimetriy given for: Ec_Biomass_INCA\n", "There is no stoichimetriy given for: EX_nh4_LPAREN_e_RPAREN_\n", "There is no stoichimetriy given for: EX_o2_LPAREN_e_RPAREN_\n", "There is no stoichimetriy given for: EX_so4_LPAREN_e_RPAREN_\n", "There is no stoichimetriy given for: FADR_NADH_CYTBD_HYD_ATPS4r\n", "There is no stoichimetriy given for: NADH_CYTBD_HYD_ATPS4r\n", "There is no stoichimetriy given for: NADTRHD_THD2pp\n", "There is no stoichimetriy given for: NADTRHD_THD2pp_reverse\n" ] } ], "source": [ "script = INCA_script.script_generator(\n", " modelReaction_data_I,\n", " atomMappingReactions_data_I,\n", " atomMappingMetabolite_data_I,\n", " measuredFluxes_data_I,\n", " experimentalMS_data_I,\n", " tracer_I\n", ")\n", "INCA_script.save_INCA_script(script, \"testscript\")\n", "runner = INCA_script.runner_script_generator('TestFile', 10)\n", "INCA_script.save_runner_script(runner=runner, scriptname=\"testscript\")" ] }, { "cell_type": "markdown", "id": "18e56279", "metadata": {}, "source": [ "#### Provide the path to you INCA installation, your working directory and the name of the previously generated MATLAB script" ] }, { "cell_type": "code", "execution_count": 6, "id": "ad92c7a0", "metadata": {}, "outputs": [], "source": [ "INCA_base_directory = \"/Users/matmat/Documents/INCAv1.9\" # ADD YOUR BASE DIRECTORY HERE, e.g. \n", "script_folder = %pwd\n", "matlab_script = \"testscript\"\n", "runner_script = matlab_script + \"_runner\"" ] }, { "cell_type": "markdown", "id": "49366410", "metadata": {}, "source": [ "#### INCA will be started and your script run in MATLAB. This will produce the .mat file specified above" ] }, { "cell_type": "code", "execution_count": 7, "id": "05fa2db1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--- 186.927631855011 seconds -\n" ] } ], "source": [ "INCA_script.run_INCA_in_MATLAB(INCA_base_directory, script_folder, matlab_script, runner_script)" ] }, { "cell_type": "markdown", "id": "0cb1abea", "metadata": {}, "source": [ "# Reimport MFA data after calculation in INCA" ] }, { "cell_type": "markdown", "id": "74b0b1e1", "metadata": {}, "source": [ "This is an example notebook for the reimport module that is a part of the INCA processing tools of BFAIR. The calculated fluxes/fragments/etc. (other output of INCA), can be reimported and worked on here in Python." ] }, { "cell_type": "code", "execution_count": 8, "id": "a52adffe", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import time\n", "import ast\n", "import sys\n", "import escher\n", "from BFAIR.mfa.INCA import INCA_reimport" ] }, { "cell_type": "code", "execution_count": 9, "id": "abc3dede", "metadata": {}, "outputs": [], "source": [ "filename = 'data/MFA_modelInputsData/TestFile.mat'\n", "simulation_info = pd.read_csv('data/MFA_modelInputsData/Re-import/experimentalMS_data_I.csv')\n", "simulation_id = 'WTEColi_113C80_U13C20_01'" ] }, { "cell_type": "markdown", "id": "cfe310dd", "metadata": {}, "source": [ "### Stepwise import" ] }, { "cell_type": "code", "execution_count": 10, "id": "ff6a7926", "metadata": {}, "outputs": [], "source": [ "reimport_data = INCA_reimport()" ] }, { "cell_type": "code", "execution_count": 11, "id": "2f616125", "metadata": {}, "outputs": [], "source": [ "# Succession of functions\n", "info = reimport_data.extract_file_info(filename)\n", "parallel, non_stationary = reimport_data.det_simulation_type(simulation_info)\n", "m, f = reimport_data.data_extraction(filename)\n", "model_info = reimport_data.extract_model_info(m)\n", "simulationParameters = reimport_data.extract_sim_params(simulation_id, info, m, filename)\n", "fittedData = reimport_data.extract_base_stats(f, simulation_id, info)\n", "f_mnt_info = reimport_data.get_fit_info(f)\n", "fittedMeasuredFluxes, fittedMeasuredFragments = reimport_data.sort_fit_info(f_mnt_info, simulation_info, fittedData)\n", "f_mnt_res_info = reimport_data.get_residuals_info(f, simulation_info)\n", "fittedMeasuredFluxResiduals, fittedMeasuredFragmentResiduals = reimport_data.sort_residual_info(f_mnt_res_info, simulation_info, fittedData)\n", "f_par_info = reimport_data.get_fitted_parameters(f, simulation_info)\n", "fittedFluxes, fittedFragments = reimport_data.sort_parameter_info(f_par_info, simulation_info, fittedData)" ] }, { "cell_type": "markdown", "id": "f0724ee7", "metadata": {}, "source": [ "### Alternative shortcut" ] }, { "cell_type": "markdown", "id": "ab17abae", "metadata": {}, "source": [ "There is also a summary function that performes all the custom re-import functions subsequently" ] }, { "cell_type": "code", "execution_count": 12, "id": "c34c010d", "metadata": {}, "outputs": [], "source": [ "reimport_data_directly = INCA_reimport()" ] }, { "cell_type": "code", "execution_count": 13, "id": "deb854a0", "metadata": {}, "outputs": [], "source": [ "fittedData2, fittedFluxes2, fittedFragments2, fittedMeasuredFluxes2, fittedMeasuredFragments2, fittedMeasuredFluxResiduals2, fittedMeasuredFragmentResiduals2, simulationParameters2 = reimport_data_directly.reimport(filename, simulation_info, simulation_id)" ] }, { "cell_type": "markdown", "id": "3d2a6922", "metadata": {}, "source": [ "# Model compatibility" ] }, { "cell_type": "code", "execution_count": 14, "id": "21e6e7e3", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import cobra\n", "from BFAIR.mfa.INCA import INCA_reimport\n", "from BFAIR.mfa.sampling import (\n", " model_rxn_overlap,\n", " rxn_coverage,\n", " split_lumped_rxns,\n", " split_lumped_reverse_rxns,\n", " find_reverse_rxns,\n", " combine_split_rxns,\n", " cobra_add_split_rxns,\n", " find_biomass_reaction,\n", " replace_biomass_rxn_name,\n", ")" ] }, { "cell_type": "markdown", "id": "7926d4a4", "metadata": {}, "source": [ "Here we import the model" ] }, { "cell_type": "code", "execution_count": 15, "id": "583d9f74", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Academic license - for non-commercial use only - expires 2021-07-30\n", "Using license file /Users/matmat/gurobi.lic\n" ] } ], "source": [ "model = cobra.io.load_json_model('data/FIA_MS_example/database_files/iJO1366.json')" ] }, { "cell_type": "code", "execution_count": 16, "id": "c613e6f3", "metadata": {}, "outputs": [], "source": [ "fittedFluxes = replace_biomass_rxn_name(fittedFluxes, biomass_string='Biomass', biomass_rxn_name='BIOMASS_Ec_iJO1366_core_53p95M')" ] }, { "cell_type": "markdown", "id": "b5b75256", "metadata": {}, "source": [ "Next step, adjust the names of our MFA data so that they can be assigned to our model's reactions" ] }, { "cell_type": "markdown", "id": "ffd1ab78", "metadata": {}, "source": [ "Observations: \n", "1) some reaction names include more than one metabolite\n", "2) many unassigned amino acids end with `SYN` and\n", "3) some exchange reactions include `LPAREN_` and `RPAREN_`. Let's try to do something about that\n", "4) probably all `_reverse` reactions could not be assigned" ] }, { "cell_type": "markdown", "id": "4862960a", "metadata": {}, "source": [ "1) Split the lumped reactions and give all of them the same bounds" ] }, { "cell_type": "markdown", "id": "22323453", "metadata": {}, "source": [ "So let's pick the ones we want. Let's save the reverse reactions for a separate step" ] }, { "cell_type": "code", "execution_count": 17, "id": "18804fd3", "metadata": {}, "outputs": [], "source": [ "lumped_ids = [1, 21, 26, 27, 53, 54, 67, 74, 82]\n", "mask = []\n", "overlap = model_rxn_overlap(fittedFluxes, model)\n", "for i in overlap.iteritems():\n", " if i[0] in lumped_ids:\n", " mask.append(True)\n", " else:\n", " mask.append(False)" ] }, { "cell_type": "code", "execution_count": 18, "id": "38510a64", "metadata": {}, "outputs": [], "source": [ "lumped_rxns = model_rxn_overlap(fittedFluxes, model)[mask]\n", "fittedFluxes = split_lumped_rxns(lumped_rxns, fittedFluxes)" ] }, { "cell_type": "code", "execution_count": 19, "id": "9c77f1f1", "metadata": {}, "outputs": [], "source": [ "lumped_reverse_ids = [2, 28, 55, 68]\n", "mask_reverse = []\n", "for i in model_rxn_overlap(fittedFluxes, model).iteritems():\n", " if i[0] in lumped_reverse_ids:\n", " mask_reverse.append(True)\n", " else:\n", " mask_reverse.append(False)" ] }, { "cell_type": "code", "execution_count": 20, "id": "025cb1c9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ACONTa_ACONTb_reverse\n", "GAPD_PGK_reverse\n", "NADTRHD_THD2pp_reverse\n", "PTAr_ACKr_ACS_reverse\n" ] } ], "source": [ "lumped_reverse_rxns = model_rxn_overlap(fittedFluxes, model)[mask_reverse]\n", "fittedFluxes = split_lumped_reverse_rxns(lumped_reverse_rxns, fittedFluxes)" ] }, { "cell_type": "markdown", "id": "0e542dc5", "metadata": {}, "source": [ "2) SYN, these reactions might be lumped; let's investigate!" ] }, { "cell_type": "code", "execution_count": 21, "id": "42829d0e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ARGAGMt7pp\n", "ARGDC\n", "ARGDCpp\n", "ARGORNt7pp\n", "ARGSL\n", "ARGSS\n", "ARGTRS\n", "ARGabcpp\n", "ARGt3pp\n", "ARGtex\n" ] } ], "source": [ "for rxn in model.reactions:\n", " if 'ARG' in rxn.id:\n", " print(rxn.id)" ] }, { "cell_type": "markdown", "id": "051fd4ab", "metadata": {}, "source": [ "3) Let's remove the extra bits in the exchange reaction strings" ] }, { "cell_type": "code", "execution_count": 22, "id": "d0255d74", "metadata": {}, "outputs": [], "source": [ "for i, row in fittedFluxes.iterrows():\n", " if 'LPAREN_' in row['rxn_id']:\n", " fittedFluxes.at[i, 'rxn_id'] = row['rxn_id'].replace('LPAREN_', '').replace('_RPAREN_', '')" ] }, { "cell_type": "code", "execution_count": 23, "id": "a3a008b4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "50.0 %\n" ] } ], "source": [ "rxn_coverage(fittedFluxes, model)" ] }, { "cell_type": "markdown", "id": "651f1ec3", "metadata": {}, "source": [ "4) Reverse. Let's check if the forward and reverse fluxes are actually separate. If not, then the two of them will define the bounds together. If they are, then we should add new reverse reactions to the model." ] }, { "cell_type": "code", "execution_count": 24, "id": "26d99721", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "These reactions need to be split into two: ACONTa\n", "These reactions need to be split into two: FUM\n", "These reactions need to be split into two: GAPD\n", "These reactions need to be split into two: ICDHyr\n", "These reactions need to be split into two: MlthfSYN\n", "These reactions need to be split into two: PGM\n", "These reactions need to be split into two: PTAr\n", "These reactions need to be split into two: ACONTb\n", "These reactions need to be split into two: PGK\n", "These reactions need to be split into two: ACKr\n", "These reactions need to be split into two: ACS\n" ] } ], "source": [ "fittedFluxes, rxns_to_split = combine_split_rxns(fittedFluxes)" ] }, { "cell_type": "markdown", "id": "d00044de", "metadata": {}, "source": [ "The reactions that are acutally separate (i.e. non-overlapping bounds) are a problem. COBRA has some ways to account for that but they seem to be quite involved. An easier way to deal with that is that just add the reverse reaction as a separate reaction to the model; it's the same reaction, just with the inverse direction. The following method is \"destructive\", i.e. it will alter the model. Be aware of that." ] }, { "cell_type": "code", "execution_count": 25, "id": "251d4704", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "- Added ACONTa to model\n", "- Added FUM to model\n", "- Added GAPD to model\n", "- Added ICDHyr to model\n", "# Could not add MlthfSYN to model\n", "- Added PGM to model\n", "- Added PTAr to model\n", "- Added ACONTb to model\n", "- Added PGK to model\n", "- Added ACKr to model\n", "- Added ACS to model\n" ] } ], "source": [ "cobra_add_split_rxns(rxns_to_split, model)" ] }, { "cell_type": "code", "execution_count": 26, "id": "58b6da20", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "32.0 %\n" ] } ], "source": [ "rxn_coverage(fittedFluxes, model)" ] }, { "cell_type": "markdown", "id": "f990c980", "metadata": {}, "source": [ "# Sampling" ] }, { "cell_type": "code", "execution_count": 27, "id": "83bedce0", "metadata": {}, "outputs": [], "source": [ "import pickle\n", "import pandas as pd\n", "import escher\n", "import cobra\n", "from cobra import Reaction\n", "from tabulate import tabulate\n", "from gurobipy import Model as GRBModel\n", "from BFAIR.mfa.INCA import INCA_reimport\n", "from BFAIR.mfa.sampling import (\n", " add_constraints,\n", " add_feasible_constraints,\n", " find_biomass_reaction,\n", " get_min_solution_val,\n", " replace_biomass_rxn_name,\n", " bound_relaxation,\n", ")\n", "from BFAIR.mfa.visualization import (\n", " reshape_fluxes_escher,\n", ")" ] }, { "cell_type": "markdown", "id": "46c63f2c", "metadata": {}, "source": [ "Let's copy the model so we won't have to go through the pre-processing steps again" ] }, { "cell_type": "code", "execution_count": 28, "id": "e4a2b6c9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmp_chk2sx7.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpmxmauzs1.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n" ] } ], "source": [ "model_original = model.copy()" ] }, { "cell_type": "markdown", "id": "9704f777", "metadata": {}, "source": [ "#### Re-integration" ] }, { "cell_type": "code", "execution_count": 29, "id": "e02004d3", "metadata": {}, "outputs": [], "source": [ "original_solution = model.optimize()" ] }, { "cell_type": "markdown", "id": "ea87c8df", "metadata": {}, "source": [ "## Dealing with infeasible solutions - exclusion" ] }, { "cell_type": "markdown", "id": "cd5d277f", "metadata": {}, "source": [ "The easier way to deal with this issue is to simply exclude the constraints that render a model infeasible. We can do that by adding the calculated bounds one by one. If we come across a reaction whose bounds cause trouble, we restart the process and skip this one. This might have to be done a few times to exclude all troublemakers. the `add_feasible_constraints()` functions takes care of that for us. Let's reset the model first." ] }, { "cell_type": "code", "execution_count": 30, "id": "2a43ee30", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmp00zj94av.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpumlr_73d.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n" ] } ], "source": [ "model = model_original.copy()" ] }, { "cell_type": "code", "execution_count": 31, "id": "38cc72ac", "metadata": {}, "outputs": [], "source": [ "min_val = get_min_solution_val(fittedFluxes, biomass_string='BIOMASS')" ] }, { "cell_type": "code", "execution_count": 32, "id": "7d45312d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--- start ---\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmps03pnhwe.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpim6mqwqz.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Did not work for 26dap_DASH_MSYN\n", "Did not work for ArgSYN\n", "Solution infeasible if adding ASPTA\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpkrd0zf0i.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/matmat/opt/anaconda3/envs/bfair/lib/python3.8/site-packages/cobra/util/solver.py:430: UserWarning: solver status is 'infeasible'\n", " warn(\"solver status is '{}'\".format(status), UserWarning)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpvuxs0hal.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Did not work for 26dap_DASH_MSYN\n", "Did not work for ArgSYN\n", "Solution infeasible if adding DAPDC\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmper_uovdu.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmp6_vqe36_.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Did not work for 26dap_DASH_MSYN\n", "Did not work for ArgSYN\n", "Solution infeasible if adding BIOMASS_Ec_iJO1366_core_53p95M\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmp0s5w3d3i.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmp2a5zg8ta.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Did not work for 26dap_DASH_MSYN\n", "Did not work for ArgSYN\n", "Did not work for EX_co2_e_unlabeled\n", "Did not work for EX_glc_e\n", "Solution infeasible if adding EX_nh4_e\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpx_f0nfiu.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpxh11_j_f.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Did not work for 26dap_DASH_MSYN\n", "Did not work for ArgSYN\n", "Did not work for EX_co2_e_unlabeled\n", "Did not work for EX_glc_e\n", "Solution infeasible if adding EX_o2_e\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpbx4v7fay.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpmql7eha_.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Did not work for 26dap_DASH_MSYN\n", "Did not work for ArgSYN\n", "Did not work for EX_co2_e_unlabeled\n", "Did not work for EX_glc_e\n", "Solution infeasible if adding EX_so4_e\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmp23akxvi6.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmp_anm8730.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Did not work for 26dap_DASH_MSYN\n", "Did not work for ArgSYN\n", "Did not work for EX_co2_e_unlabeled\n", "Did not work for EX_glc_e\n", "Did not work for FADR\n", "Solution infeasible if adding GLNS\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpdez2kna4.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmp8265py9h.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Did not work for 26dap_DASH_MSYN\n", "Did not work for ArgSYN\n", "Did not work for EX_co2_e_unlabeled\n", "Did not work for EX_glc_e\n", "Did not work for FADR\n", "Did not work for GluSYN\n", "Did not work for HisSYN\n", "Did not work for IleSYN\n", "Did not work for LeuSYN\n", "Did not work for MetSYN\n", "Did not work for MlthfSYN\n", "Did not work for MlthfSYN_reverse\n", "Did not work for NADH\n", "Did not work for PheSYN\n", "Did not work for ProSYN\n", "Did not work for SerSYN\n", "Did not work for SUCCOAS\n", "Did not work for ThrSYN\n", "Did not work for TKT1a\n", "Did not work for TKT1b\n", "Did not work for TKT2a\n", "Did not work for TKT2b\n", "Did not work for TrpSYN\n", "Did not work for TyrSYN\n", "Did not work for ValSYN\n", "Did not work for CYTBD\n", "Did not work for HYD\n", "Did not work for ATPS4r\n", "---------------------------\n", "Total number of restarts: 7\n", "add_feasible_constraints takes 0h: 1min: 34sec to run\n", "--- end ---\n" ] } ], "source": [ "model, problems = add_feasible_constraints(model, fittedFluxes, min_val=min_val)" ] }, { "cell_type": "markdown", "id": "80941307", "metadata": {}, "source": [ "The `model` is our newly constrained model and the problematic reactions can be listed in `problems`." ] }, { "cell_type": "code", "execution_count": 33, "id": "477fdbd8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['ASPTA',\n", " 'DAPDC',\n", " 'BIOMASS_Ec_iJO1366_core_53p95M',\n", " 'EX_nh4_e',\n", " 'EX_o2_e',\n", " 'EX_so4_e',\n", " 'GLNS']" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "problems" ] }, { "cell_type": "markdown", "id": "7cebe2ca", "metadata": {}, "source": [ "Now let's see what an effect these new bounds had on the predicted growth rate (the objective value) of our model" ] }, { "cell_type": "code", "execution_count": 34, "id": "82a120df", "metadata": {}, "outputs": [ { "data": { "text/html": [ "Optimal solution with objective value 0.807
\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", "
fluxesreduced_costs
EX_cm_e0.0000000.0
EX_cmp_e0.000000-0.0
EX_co2_e15.000000-0.0
EX_cobalt2_e-0.000020-0.0
DM_4crsol_c0.0001800.0
.........
PTAr_reverse0.0000000.0
ACONTb_reverse0.0000000.0
PGK_reverse23.7068100.0
ACKr_reverse4.7839060.0
ACS_reverse0.0000000.0
\n", "

2593 rows × 2 columns

\n", "
" ], "text/plain": [ "" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_bounds_solution = model.optimize()\n", "new_bounds_solution" ] }, { "cell_type": "markdown", "id": "11525ebe", "metadata": {}, "source": [ "And here's the star of the show, our sampling method. We trust our models because... we have to! And because smart people that knew what they were doing set them up. So in order to gain more confidence in our MFA data, we sample the model after adding the calculated bound for some of the reactions and re-calculate the fluxes a number of time. Then, we take the mean and take that as the most trustworthy calculated flux. These fluxes can be visualized, for example in tools like `Escher`" ] }, { "cell_type": "code", "execution_count": 35, "id": "4805f67a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmp7x92cxly.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpkrlck1yf.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n" ] } ], "source": [ "sampled_fluxes = cobra.sampling.sample(model, n=100, processes=2)" ] }, { "cell_type": "code", "execution_count": 36, "id": "6e9e7311", "metadata": {}, "outputs": [ { "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", " \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", " \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", " \n", " \n", " \n", " \n", "
EX_cm_eEX_cmp_eEX_co2_eEX_cobalt2_eDM_4crsol_cDM_5drib_cDM_aacald_cDM_amob_cDM_mththf_cEX_colipa_e...ACONTa_reverseFUM_reverseGAPD_reverseICDHyr_reversePGM_reversePTAr_reverseACONTb_reversePGK_reverseACKr_reverseACS_reverse
00.00.014.999088-1.339147e-060.0000120.0000130.01.115956e-070.0000750.000199...2.4931872.4802050.0000152.40581921.3583131.0392912.49318723.1877285.0676470.024882
10.00.014.999084-1.339510e-060.0000120.0000130.01.116258e-070.0000760.000200...2.4938262.4808030.0000172.40650321.3582951.0392882.49382623.1876785.0676280.024827
20.00.014.998737-1.339462e-060.0000120.0000130.01.116218e-070.0004600.000200...2.4719872.4348500.0004142.36222321.3428290.9972762.47198723.1853575.0889010.046730
30.00.014.998857-1.339745e-060.0000120.0000150.01.116451e-070.0004600.000200...2.4706652.4257090.0003862.36220421.3428900.9960402.47066523.1851215.0885580.043674
40.00.014.999487-1.339599e-060.0000120.0000160.01.116330e-070.0004600.000191...2.4731412.4317520.0006602.37094621.3421241.0035842.47314123.1840755.0792210.040048
..................................................................
950.00.014.156739-5.957167e-070.0000050.0007390.04.950141e-080.0303640.004158...18.85417712.3958750.9040128.50957519.71856710.24486718.81338820.60521210.66198914.043184
960.00.014.164929-3.979189e-070.0000040.0008120.03.327362e-080.0302740.001995...19.21867213.1046701.0428899.32429619.97977110.36655919.17794320.59337010.52513013.664941
970.00.014.187878-4.555902e-070.0000040.0007810.03.790877e-080.0239980.002089...19.05709613.3270011.0236919.84867320.17534410.98036519.01757120.54557910.22727313.382844
980.00.014.219565-4.161341e-070.0000040.0007650.03.481715e-080.0052270.001707...18.89452013.0784251.0567919.57259320.41113910.63199318.85510420.77407010.18757813.051384
990.00.014.183204-3.975896e-070.0000040.0007680.03.330955e-080.1103670.002118...19.03963913.2984551.0332539.57185020.30073110.92234519.00020120.78548810.31717513.033961
\n", "

100 rows × 2593 columns

\n", "
" ], "text/plain": [ " EX_cm_e EX_cmp_e EX_co2_e EX_cobalt2_e DM_4crsol_c DM_5drib_c \\\n", "0 0.0 0.0 14.999088 -1.339147e-06 0.000012 0.000013 \n", "1 0.0 0.0 14.999084 -1.339510e-06 0.000012 0.000013 \n", "2 0.0 0.0 14.998737 -1.339462e-06 0.000012 0.000013 \n", "3 0.0 0.0 14.998857 -1.339745e-06 0.000012 0.000015 \n", "4 0.0 0.0 14.999487 -1.339599e-06 0.000012 0.000016 \n", ".. ... ... ... ... ... ... \n", "95 0.0 0.0 14.156739 -5.957167e-07 0.000005 0.000739 \n", "96 0.0 0.0 14.164929 -3.979189e-07 0.000004 0.000812 \n", "97 0.0 0.0 14.187878 -4.555902e-07 0.000004 0.000781 \n", "98 0.0 0.0 14.219565 -4.161341e-07 0.000004 0.000765 \n", "99 0.0 0.0 14.183204 -3.975896e-07 0.000004 0.000768 \n", "\n", " DM_aacald_c DM_amob_c DM_mththf_c EX_colipa_e ... ACONTa_reverse \\\n", "0 0.0 1.115956e-07 0.000075 0.000199 ... 2.493187 \n", "1 0.0 1.116258e-07 0.000076 0.000200 ... 2.493826 \n", "2 0.0 1.116218e-07 0.000460 0.000200 ... 2.471987 \n", "3 0.0 1.116451e-07 0.000460 0.000200 ... 2.470665 \n", "4 0.0 1.116330e-07 0.000460 0.000191 ... 2.473141 \n", ".. ... ... ... ... ... ... \n", "95 0.0 4.950141e-08 0.030364 0.004158 ... 18.854177 \n", "96 0.0 3.327362e-08 0.030274 0.001995 ... 19.218672 \n", "97 0.0 3.790877e-08 0.023998 0.002089 ... 19.057096 \n", "98 0.0 3.481715e-08 0.005227 0.001707 ... 18.894520 \n", "99 0.0 3.330955e-08 0.110367 0.002118 ... 19.039639 \n", "\n", " FUM_reverse GAPD_reverse ICDHyr_reverse PGM_reverse PTAr_reverse \\\n", "0 2.480205 0.000015 2.405819 21.358313 1.039291 \n", "1 2.480803 0.000017 2.406503 21.358295 1.039288 \n", "2 2.434850 0.000414 2.362223 21.342829 0.997276 \n", "3 2.425709 0.000386 2.362204 21.342890 0.996040 \n", "4 2.431752 0.000660 2.370946 21.342124 1.003584 \n", ".. ... ... ... ... ... \n", "95 12.395875 0.904012 8.509575 19.718567 10.244867 \n", "96 13.104670 1.042889 9.324296 19.979771 10.366559 \n", "97 13.327001 1.023691 9.848673 20.175344 10.980365 \n", "98 13.078425 1.056791 9.572593 20.411139 10.631993 \n", "99 13.298455 1.033253 9.571850 20.300731 10.922345 \n", "\n", " ACONTb_reverse PGK_reverse ACKr_reverse ACS_reverse \n", "0 2.493187 23.187728 5.067647 0.024882 \n", "1 2.493826 23.187678 5.067628 0.024827 \n", "2 2.471987 23.185357 5.088901 0.046730 \n", "3 2.470665 23.185121 5.088558 0.043674 \n", "4 2.473141 23.184075 5.079221 0.040048 \n", ".. ... ... ... ... \n", "95 18.813388 20.605212 10.661989 14.043184 \n", "96 19.177943 20.593370 10.525130 13.664941 \n", "97 19.017571 20.545579 10.227273 13.382844 \n", "98 18.855104 20.774070 10.187578 13.051384 \n", "99 19.000201 20.785488 10.317175 13.033961 \n", "\n", "[100 rows x 2593 columns]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sampled_fluxes" ] }, { "cell_type": "code", "execution_count": 37, "id": "e52f916f", "metadata": {}, "outputs": [], "source": [ "fluxes_sampling = reshape_fluxes_escher(sampled_fluxes)" ] }, { "cell_type": "code", "execution_count": 38, "id": "8470ab38", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "
\n", "\n", " \n" ], "text/plain": [ "" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sampled_flux_map = escher.Builder('e_coli_core.Core metabolism',\n", " reaction_data = fluxes_sampling).display_in_notebook()\n", "sampled_flux_map" ] }, { "cell_type": "markdown", "id": "85034a57", "metadata": {}, "source": [ "There are also other ways to cosolidate the MFA calculations and the constraint based flux predictions. One of these is lMOMA (linear Minimization Of Metabolic Adjustment). MOMA assumes that the fluxes before and after adding the new constraints should be similar, so it aims to predicting an optimum for the newly constrined model while keeping the differences to the original model small. We suggest using pFBA (parsimonious Flux Balance Analysis) instead of regular FBA for this step as pFBA aims to keep the overal fluxes low." ] }, { "cell_type": "markdown", "id": "a550baa8", "metadata": {}, "source": [ "## Dealing with infeasible solutions - relaxation" ] }, { "cell_type": "markdown", "id": "6af392ea", "metadata": {}, "source": [ "Another way of dealing with infeasible models is to relax the added constraints to the point that it works again. You will need to have the Gurobi solver installed for this. The same principle is used in the `BFAIR thermo` tools. For that we add our constraints to a model that will now be infeasible. Have I meantioned that this is much more elegant, better and that you should do that? It is. The other method is *fine* but you exclude reactions and, in general, it is always better to use as much as possible of the information that is available to you." ] }, { "cell_type": "code", "execution_count": 39, "id": "620d16cc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpvqr73dw6.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmphajgz79_.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n" ] } ], "source": [ "model = model_original.copy()" ] }, { "cell_type": "code", "execution_count": 40, "id": "b6931fb5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--- start ---\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmp56xf2ylp.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmp64r6tsdy.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Did not work for 26dap_DASH_MSYN\n", "Did not work for ArgSYN\n", "Did not work for EX_co2_e_unlabeled\n", "Did not work for EX_glc_e\n", "Did not work for FADR\n", "Did not work for GluSYN\n", "Did not work for HisSYN\n", "Did not work for IleSYN\n", "Did not work for LeuSYN\n", "Did not work for MetSYN\n", "Did not work for MlthfSYN\n", "Did not work for MlthfSYN_reverse\n", "Did not work for NADH\n", "Did not work for PheSYN\n", "Did not work for ProSYN\n", "Did not work for SerSYN\n", "Did not work for SUCCOAS\n", "Did not work for ThrSYN\n", "Did not work for TKT1a\n", "Did not work for TKT1b\n", "Did not work for TKT2a\n", "Did not work for TKT2b\n", "Did not work for TrpSYN\n", "Did not work for TyrSYN\n", "Did not work for ValSYN\n", "Did not work for CYTBD\n", "Did not work for HYD\n", "Did not work for ATPS4r\n", "add_constraints takes 0h: 0min: 11sec to run\n", "--- end ---\n" ] } ], "source": [ "model = add_constraints(model, fittedFluxes)" ] }, { "cell_type": "code", "execution_count": 41, "id": "14824c8d", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/matmat/opt/anaconda3/envs/bfair/lib/python3.8/site-packages/cobra/util/solver.py:430: UserWarning: solver status is 'infeasible'\n", " warn(\"solver status is '{}'\".format(status), UserWarning)\n" ] }, { "data": { "text/html": [ "infeasible solution" ], "text/plain": [ "" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.optimize()" ] }, { "cell_type": "markdown", "id": "e4c39a06", "metadata": {}, "source": [ "Then we make use of the handy `bound_relaxation()` function that will test our model to figure out which of these added bounds need to be adjusted and return a DataFrame that describes the affected functions and the gravity of the suggested changes. If we allow this function to be `desctructive` it will adjust the input model right away." ] }, { "cell_type": "code", "execution_count": 42, "id": "0d13bbcb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--- start ---\n", "bound_relaxation takes 0h: 0min: 0sec to run\n", "--- end ---\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", "
lb_changeub_changesubsystem
reaction
EX_o2_e-16.6105050.000000Extracellular exchange
ASPTA-3.8650620.000000Alanine and Aspartate Metabolism
GLNS0.0000000.767431Glutamate Metabolism
EX_nh4_e_reverse_f9cc60.00000012.360577Extracellular exchange
EX_so4_e_reverse_5c8ed0.0000000.376547Extracellular exchange
DAPDC_reverse_d3ab8-0.0402130.000000Threonine and Lysine Metabolism
\n", "
" ], "text/plain": [ " lb_change ub_change subsystem\n", "reaction \n", "EX_o2_e -16.610505 0.000000 Extracellular exchange\n", "ASPTA -3.865062 0.000000 Alanine and Aspartate Metabolism\n", "GLNS 0.000000 0.767431 Glutamate Metabolism\n", "EX_nh4_e_reverse_f9cc6 0.000000 12.360577 Extracellular exchange\n", "EX_so4_e_reverse_5c8ed 0.000000 0.376547 Extracellular exchange\n", "DAPDC_reverse_d3ab8 -0.040213 0.000000 Threonine and Lysine Metabolism" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cons_table = bound_relaxation(model, fittedFluxes, destructive=True, fluxes_to_ignore=['BIOMASS_Ec_iJO1366_core_53p95M'])\n", "cons_table" ] }, { "cell_type": "markdown", "id": "d254efb6", "metadata": {}, "source": [ "Let's see if our model is feasible now." ] }, { "cell_type": "code", "execution_count": 43, "id": "7996e59e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "Optimal solution with objective value 0.700
\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", "
fluxesreduced_costs
EX_cm_e0.0000000.0
EX_cmp_e0.000000-0.0
EX_co2_e14.6982320.0
EX_cobalt2_e-0.000017-0.0
DM_4crsol_c0.0001560.0
.........
PTAr_reverse0.0000000.0
ACONTb_reverse0.0000000.0
PGK_reverse23.0330300.0
ACKr_reverse4.8657070.0
ACS_reverse0.0000000.0
\n", "

2593 rows × 2 columns

\n", "
" ], "text/plain": [ "" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "relaxed_solution = model.optimize()\n", "relaxed_solution" ] }, { "cell_type": "code", "execution_count": 44, "id": "6a06cb51", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.7" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "relaxed_solution.fluxes[\"BIOMASS_Ec_iJO1366_core_53p95M\"]" ] }, { "cell_type": "markdown", "id": "e2259e1e", "metadata": {}, "source": [ "And here's the star of the show, our sampling method. We trust our models because... we have to! And because smart people that knew what they were doing set them up. So in order to gain more confidence in our MFA data, we sample the model after adding the calculated bound for some of the reactions and re-calculate the fluxes a number of time. Then, we take the mean and take that as the most trustworthy calculated flux. These fluxes can be visualized, for example in tools like `Escher`.\n", "So here is the point where we can let the power of constraint based models work for us and make use of the tools mentioned above in order to adjust the fluxes calculated using MFA so that they nicely fit into our model." ] }, { "cell_type": "code", "execution_count": 45, "id": "ca472188", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpdxjoiq2r.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmpwimsstip.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n" ] } ], "source": [ "relaxed_sampled_fluxes = cobra.sampling.sample(model, n=100, processes=2)" ] }, { "cell_type": "code", "execution_count": 46, "id": "916dfba0", "metadata": {}, "outputs": [], "source": [ "relaxed_fluxes_sampling = reshape_fluxes_escher(relaxed_sampled_fluxes)" ] }, { "cell_type": "code", "execution_count": 47, "id": "8e369c6c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "
\n", "\n", " \n" ], "text/plain": [ "" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "relaxed_flux_map = escher.Builder('e_coli_core.Core metabolism',\n", " reaction_data = relaxed_fluxes_sampling).display_in_notebook()\n", "relaxed_flux_map" ] }, { "cell_type": "markdown", "id": "121c5287", "metadata": {}, "source": [ "## Alternatives" ] }, { "cell_type": "markdown", "id": "1f36419c", "metadata": {}, "source": [ "There are also other ways to cosolidate the MFA calculations and the constraint based flux predictions. " ] }, { "cell_type": "markdown", "id": "33ba87be", "metadata": {}, "source": [ "#### MOMA" ] }, { "cell_type": "markdown", "id": "1778b0c9", "metadata": {}, "source": [ "One of these is lMOMA (linear Minimization Of Metabolic Adjustment). MOMA assumes that the fluxes before and after adding the new constraints should be similar, so it aims to predicting an optimum for the newly constrined model while keeping the differences to the original model small. We suggest using pFBA (parsimonious Flux Balance Analysis) instead of regular FBA for this step as pFBA aims to keep the overal fluxes low." ] }, { "cell_type": "markdown", "id": "8ba83713", "metadata": {}, "source": [ "From [Volkova, 2020](https://www.mdpi.com/2218-1989/10/8/303/htm):\n", "\n", "\"While FBA with the objective of maximizing growth results in reasonable solutions for wild-type cells, it does not so for (unevolved) gene knockout mutants. While in principle wild-type cells optimize their growth, unevolved cells with knockouts do not. Since homeostasis governs metabolic reprogramming, we cannot assume that the cell will follow a common objective, such as maximizing its growth. To acknowledge the requirement for metabolic homeostasis, the minimization of metabolic adjustment (MOMA) approach was proposed. The main idea behind this method is that, to maintain homeostasis, the difference in fluxes before and after the perturbation should be minimal. MOMA predicts the fluxes of a knockout strain by assuming that the cell will have a minimal redistribution of fluxes compared to its ancestor.\"\n", "We're using pFBA istead of FBA because, on top of optimizing the growth rate, it also minimizes the total sum of fluxes." ] }, { "cell_type": "code", "execution_count": 48, "id": "0706875c", "metadata": {}, "outputs": [], "source": [ "pfba_relaxed_solution = cobra.flux_analysis.pfba(model)" ] }, { "cell_type": "code", "execution_count": 49, "id": "cba63818", "metadata": {}, "outputs": [], "source": [ "moma_after_relaxed_MFA = cobra.flux_analysis.moma(\n", " model=model, solution=pfba_relaxed_solution, linear=True)" ] }, { "cell_type": "code", "execution_count": 50, "id": "474a50f9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.7" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "moma_after_relaxed_MFA.fluxes[\"BIOMASS_Ec_iJO1366_core_53p95M\"]" ] }, { "cell_type": "markdown", "id": "ee443dbe", "metadata": {}, "source": [ "#### ROOM" ] }, { "cell_type": "markdown", "id": "0524c6c6", "metadata": {}, "source": [ "From [Volkova, 2020](https://www.mdpi.com/2218-1989/10/8/303/htm):\n", "\n", "Another similar approach is the regulatory on/off minimization (ROOM), which minimizes the number of fluxes that are significantly different from the wild type. Wild-type fluxes, determined by FBA or other methods, need to be known in order to use these approaches. " ] }, { "cell_type": "code", "execution_count": 51, "id": "2b4f89a4", "metadata": {}, "outputs": [], "source": [ "room_after_relaxed_MFA = cobra.flux_analysis.room(\n", " model=model, solution=pfba_relaxed_solution, linear=True, delta=0.03, epsilon=0.001)" ] }, { "cell_type": "code", "execution_count": 52, "id": "87e6f778", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.7" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "room_after_relaxed_MFA.fluxes[\"BIOMASS_Ec_iJO1366_core_53p95M\"]" ] }, { "cell_type": "code", "execution_count": 53, "id": "929d7de5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Method Biomass function\n", "------------------------------ ------------------\n", "Before adding new constraints: 0.98\n", "New constraints relaxed FBA: 0.7\n", "New constraints relaxed pFBA: 0.7\n", "New constraints relaxed MOMA: 0.7\n", "New constraints relaxed ROOM: 0.7\n" ] } ], "source": [ "from tabulate import tabulate\n", "results = [['Before adding new constraints:', round(original_solution.objective_value, 2)],\n", " ['New constraints relaxed FBA:', round(relaxed_solution.objective_value, 2)],\n", " ['New constraints relaxed pFBA:', round(pfba_relaxed_solution.fluxes[\"BIOMASS_Ec_iJO1366_core_53p95M\"], 2)],\n", " ['New constraints relaxed MOMA:', round(moma_after_relaxed_MFA.fluxes[\"BIOMASS_Ec_iJO1366_core_53p95M\"], 2)],\n", " ['New constraints relaxed ROOM:', round(room_after_relaxed_MFA.fluxes[\"BIOMASS_Ec_iJO1366_core_53p95M\"], 2)]]\n", "print(tabulate(results, headers=[\"Method\", \"Biomass function\"]))" ] }, { "cell_type": "markdown", "id": "d08246ce", "metadata": {}, "source": [ "Of course also the MOMA results can be visualized with `Escher`. The `reshape_fluxes_escher()` can take both pandas DataFrames or cobra solutions as an input." ] }, { "cell_type": "code", "execution_count": 54, "id": "91c86129", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "
\n", "\n", " \n" ], "text/plain": [ "" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fluxes_relaxed_moma = reshape_fluxes_escher(moma_after_relaxed_MFA)\n", "moma_relaxed_flux_map = escher.Builder('e_coli_core.Core metabolism',\n", " reaction_data = fluxes_relaxed_moma).display_in_notebook()\n", "moma_relaxed_flux_map" ] }, { "cell_type": "code", "execution_count": 55, "id": "fe8687e0", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "
\n", "\n", " \n" ], "text/plain": [ "" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fluxes_relaxed_room = reshape_fluxes_escher(room_after_relaxed_MFA)\n", "room_relaxed_flux_map = escher.Builder('e_coli_core.Core metabolism',\n", " reaction_data = fluxes_relaxed_room).display_in_notebook()\n", "room_relaxed_flux_map" ] }, { "cell_type": "markdown", "id": "881326d9", "metadata": {}, "source": [ "# Pathway visualization" ] }, { "cell_type": "code", "execution_count": 56, "id": "8172011b", "metadata": {}, "outputs": [], "source": [ "from BFAIR.mfa.INCA import INCA_reimport\n", "from BFAIR.mfa.utils import (\n", " calculate_split_ratio,\n", " plot_split_ratio,\n", " get_observable_fluxes,\n", " percent_observable_fluxes,\n", " get_flux_precision,\n", ")\n", "from BFAIR.mfa.visualization import (\n", " reshape_fluxes_escher,\n", " sampled_fluxes_minrange,\n", " show_reactions,\n", " plot_sampled_reaction_fluxes,\n", " plot_all_subsystem_fluxes,\n", " get_subsytem_reactions,\n", " show_subsystems,\n", " plot_subsystem_fluxes,\n", ")" ] }, { "cell_type": "markdown", "id": "ac71744b", "metadata": {}, "source": [ "The following steps are detailed in the notebooks `MFA_compatibility` and `MFA_feasibility_and_sampling`." ] }, { "cell_type": "code", "execution_count": 57, "id": "5b76db5e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmp79wklwb_.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n", "Read LP format model from file /var/folders/mb/7cs2dcbn369_w97fqkfx47brjcxl49/T/tmp71xdwkpz.lp\n", "Reading time = 0.02 seconds\n", ": 1805 rows, 5186 columns, 20446 nonzeros\n" ] } ], "source": [ "model = model_original.copy()" ] }, { "cell_type": "markdown", "id": "2949a602", "metadata": {}, "source": [ "## Investigate the sampled fluxes" ] }, { "cell_type": "markdown", "id": "3e91335c", "metadata": {}, "source": [ "A few plots of the distribution of points per reaction to visually inspect how gaussian the sample distributions are. In rare cases, bimodal distributions can be found" ] }, { "cell_type": "markdown", "id": "650f8d79", "metadata": {}, "source": [ "#### Sampled value distributions per reaction" ] }, { "cell_type": "code", "execution_count": 58, "id": "ee4682fe", "metadata": {}, "outputs": [], "source": [ "reactions, _ = get_subsytem_reactions(model, 14)" ] }, { "cell_type": "code", "execution_count": 59, "id": "be23046d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0: ACALD\n", "1: ACKr\n", "2: ACS\n", "3: ALCD2x\n", "4: FHL\n", "5: LDH_D\n", "6: OAADC\n", "7: PFL\n", "8: POR5\n", "9: PTAr\n", "10: PTAr_reverse\n", "11: ACKr_reverse\n", "12: ACS_reverse\n" ] } ], "source": [ "show_reactions(reactions)" ] }, { "cell_type": "markdown", "id": "75e0704e", "metadata": {}, "source": [ "Here are some plotting methods to better understand what we just created. These plots include a check for normal distributions; if the sampled fluxes for a reaction are normal distributed, we see a green histogram with a kernel density distribution in red. If they are not then the colors are inverted. Here are some examples:" ] }, { "cell_type": "markdown", "id": "fbc499a2", "metadata": {}, "source": [ "Reaction with normally distributed sampled fluxes:" ] }, { "cell_type": "code", "execution_count": 60, "id": "86a2d882", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_sampled_reaction_fluxes(relaxed_sampled_fluxes, reactions, reaction_id=2)" ] }, { "cell_type": "markdown", "id": "7f623476", "metadata": {}, "source": [ "No normal distribution:" ] }, { "cell_type": "code", "execution_count": 61, "id": "663d7a1d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_sampled_reaction_fluxes(relaxed_sampled_fluxes, reactions, reaction_id=0)" ] }, { "cell_type": "markdown", "id": "7c4854c1", "metadata": {}, "source": [ "We can also produce a summary plot for all the sampled reactions in a selected subsystem:" ] }, { "cell_type": "code", "execution_count": 62, "id": "f38406e8", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plot_all_subsystem_fluxes(relaxed_sampled_fluxes, reactions, bins=10)" ] }, { "cell_type": "markdown", "id": "24bd1c14", "metadata": {}, "source": [ "#### Box plots for several reactions of interest to visualize the distribution of points" ] }, { "cell_type": "markdown", "id": "fc6d74f5", "metadata": {}, "source": [ "This is a different way to have a look at the distributions of sampled values for a selected subsystem" ] }, { "cell_type": "markdown", "id": "23b5b974", "metadata": {}, "source": [ "We can exclude some reactions if their sampled fluxes are very small in order not to crowd the plot. Here we exclude every reaction whose max value does not exceed 1 and whose min value does not go below -1" ] }, { "cell_type": "code", "execution_count": 63, "id": "d03322fd", "metadata": {}, "outputs": [], "source": [ "reduced_relaxed_sampled_fluxes = sampled_fluxes_minrange(relaxed_sampled_fluxes, min_val=-1, max_val=1)" ] }, { "cell_type": "code", "execution_count": 64, "id": "1079b5ab", "metadata": {}, "outputs": [ { "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", " \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", " \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", " \n", " \n", " \n", " \n", "
EX_co2_eEX_glc__D_eEX_h_eEX_h2o_eEX_ac_eEX_lac__D_eEX_nh4_eEX_o2_eEX_etoh_eABUTt2pp...ACONTa_reverseFUM_reverseGAPD_reverseICDHyr_reversePGM_reversePTAr_reverseACONTb_reversePGK_reverseACKr_reverseACS_reverse
014.244331-10.010.25201128.7896452.31.514657-7.560577-8.8105053.938788222.778481...11.9951768.2261205.2822464.63147321.9947015.89211011.83115623.2168583.96341112.370337
113.674453-10.010.82188928.7895702.32.084384-7.560577-8.8105053.368986339.844829...19.98736314.2500599.3774898.37261023.2616277.91936819.72063223.39105715.05477414.716577
214.437991-10.010.05835128.7896932.31.321094-7.560577-8.8105054.13240050.318682...26.15888425.25885021.04229723.18258829.0123982.53885826.10446024.1817212.73881825.692763
313.480835-10.011.01550728.7896622.32.278187-7.560577-8.8105053.175274300.773338...19.74661116.2642879.23299312.59795924.4534349.75682919.64896423.5549097.85651820.172503
413.701781-10.010.79456028.7895482.32.057013-7.560577-8.8105053.396335411.001516...23.46742814.30919710.4872607.56988322.5225536.18706123.23891223.28944714.54933519.759520
..................................................................
9513.162564-10.011.33377728.7895412.32.596215-7.560577-8.8105052.857126666.584976...23.78960622.54561517.7336853.27504521.5201944.70748223.64905223.1516375.62493421.937299
9613.021956-10.011.47438528.7895622.32.736865-7.560577-8.8105052.716497876.504743...25.34401017.00518413.0750381.16424020.8219613.42067625.05549623.05563111.14736124.027935
9714.566332-10.09.93001028.7897052.31.192777-7.560577-8.8105054.26072926.818849...1.2541680.8497260.4779050.20477220.9124990.5788151.23743823.0680595.1585391.153175
9814.597348-10.09.89899428.7897052.31.161760-7.560577-8.8105054.29174535.339544...1.9070851.3401390.8625180.90531221.0598851.1039061.91711923.0883226.1389641.294993
9914.578153-10.09.91818928.7897072.31.180960-7.560577-8.8105054.27254717.874264...2.0126461.8476751.0728600.90616021.1535601.6632581.78201023.1012015.9048321.412622
\n", "

100 rows × 157 columns

\n", "
" ], "text/plain": [ " EX_co2_e EX_glc__D_e EX_h_e EX_h2o_e EX_ac_e EX_lac__D_e \\\n", "0 14.244331 -10.0 10.252011 28.789645 2.3 1.514657 \n", "1 13.674453 -10.0 10.821889 28.789570 2.3 2.084384 \n", "2 14.437991 -10.0 10.058351 28.789693 2.3 1.321094 \n", "3 13.480835 -10.0 11.015507 28.789662 2.3 2.278187 \n", "4 13.701781 -10.0 10.794560 28.789548 2.3 2.057013 \n", ".. ... ... ... ... ... ... \n", "95 13.162564 -10.0 11.333777 28.789541 2.3 2.596215 \n", "96 13.021956 -10.0 11.474385 28.789562 2.3 2.736865 \n", "97 14.566332 -10.0 9.930010 28.789705 2.3 1.192777 \n", "98 14.597348 -10.0 9.898994 28.789705 2.3 1.161760 \n", "99 14.578153 -10.0 9.918189 28.789707 2.3 1.180960 \n", "\n", " EX_nh4_e EX_o2_e EX_etoh_e ABUTt2pp ... ACONTa_reverse \\\n", "0 -7.560577 -8.810505 3.938788 222.778481 ... 11.995176 \n", "1 -7.560577 -8.810505 3.368986 339.844829 ... 19.987363 \n", "2 -7.560577 -8.810505 4.132400 50.318682 ... 26.158884 \n", "3 -7.560577 -8.810505 3.175274 300.773338 ... 19.746611 \n", "4 -7.560577 -8.810505 3.396335 411.001516 ... 23.467428 \n", ".. ... ... ... ... ... ... \n", "95 -7.560577 -8.810505 2.857126 666.584976 ... 23.789606 \n", "96 -7.560577 -8.810505 2.716497 876.504743 ... 25.344010 \n", "97 -7.560577 -8.810505 4.260729 26.818849 ... 1.254168 \n", "98 -7.560577 -8.810505 4.291745 35.339544 ... 1.907085 \n", "99 -7.560577 -8.810505 4.272547 17.874264 ... 2.012646 \n", "\n", " FUM_reverse GAPD_reverse ICDHyr_reverse PGM_reverse PTAr_reverse \\\n", "0 8.226120 5.282246 4.631473 21.994701 5.892110 \n", "1 14.250059 9.377489 8.372610 23.261627 7.919368 \n", "2 25.258850 21.042297 23.182588 29.012398 2.538858 \n", "3 16.264287 9.232993 12.597959 24.453434 9.756829 \n", "4 14.309197 10.487260 7.569883 22.522553 6.187061 \n", ".. ... ... ... ... ... \n", "95 22.545615 17.733685 3.275045 21.520194 4.707482 \n", "96 17.005184 13.075038 1.164240 20.821961 3.420676 \n", "97 0.849726 0.477905 0.204772 20.912499 0.578815 \n", "98 1.340139 0.862518 0.905312 21.059885 1.103906 \n", "99 1.847675 1.072860 0.906160 21.153560 1.663258 \n", "\n", " ACONTb_reverse PGK_reverse ACKr_reverse ACS_reverse \n", "0 11.831156 23.216858 3.963411 12.370337 \n", "1 19.720632 23.391057 15.054774 14.716577 \n", "2 26.104460 24.181721 2.738818 25.692763 \n", "3 19.648964 23.554909 7.856518 20.172503 \n", "4 23.238912 23.289447 14.549335 19.759520 \n", ".. ... ... ... ... \n", "95 23.649052 23.151637 5.624934 21.937299 \n", "96 25.055496 23.055631 11.147361 24.027935 \n", "97 1.237438 23.068059 5.158539 1.153175 \n", "98 1.917119 23.088322 6.138964 1.294993 \n", "99 1.782010 23.101201 5.904832 1.412622 \n", "\n", "[100 rows x 157 columns]" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reduced_relaxed_sampled_fluxes" ] }, { "cell_type": "markdown", "id": "8ae95aba", "metadata": {}, "source": [ "Here is the pyruvate metabolism as an example" ] }, { "cell_type": "code", "execution_count": 65, "id": "b8adb4be", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_subsystem_fluxes(model, reduced_relaxed_sampled_fluxes, subsystem_id=14, no_zero_cols=True)" ] }, { "cell_type": "markdown", "id": "330a64bd", "metadata": {}, "source": [ "#### Calculating the flux splits at key branch points" ] }, { "cell_type": "markdown", "id": "24da995a", "metadata": {}, "source": [ "One important piece of information that can be extracted from calculated fluxes are the flux splits at branching points (e.g., glycolysis vs. PPP, TCA vs. acetate secretion, glyoxylate shunt vs. full TCA, etc.). This will provide information about which of the optional pathways branching off of a given intermediate will carry a higher flux that potentially interferes with a mapped out production strategy. Escher Maps as seen above can be used in order to identify the reactions leading to- and branching off these intermediates. Here we present the following splits as examples:" ] }, { "cell_type": "markdown", "id": "b7251f86", "metadata": {}, "source": [ "- Glycolysis/PPP: `EX_glc__D` compared to `PGI` and `G6PDH2r`\n", "- Glyoxylate shunt/full TCA: `ACONTb` compared to `ICDHyr` and `ICL`\n", "- TCA/acetate secretion: (`ACALD`, `PFL`, `PDH`) compared to `PTAr` and `CS`" ] }, { "cell_type": "markdown", "id": "35ef5235", "metadata": {}, "source": [ "These fluxes can either be single fluxes, selected by their IDs (see the first two examples) or a combination of multiple fluxes (see last example)" ] }, { "cell_type": "code", "execution_count": 66, "id": "80ad0eec", "metadata": {}, "outputs": [ { "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", "
MeanStdev
EX_glc__D_e/G6PDH2r0.4746110.000004
EX_glc__D_e/PGI0.4330080.069793
\n", "
" ], "text/plain": [ " Mean Stdev\n", "EX_glc__D_e/G6PDH2r 0.474611 0.000004\n", "EX_glc__D_e/PGI 0.433008 0.069793" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_split_ratio(relaxed_sampled_fluxes, 'EX_glc__D_e', 'G6PDH2r', 'PGI', branch_point_name=\"Glycolysis/PPP\")\n", "calculate_split_ratio(relaxed_sampled_fluxes, 'EX_glc__D_e', 'G6PDH2r', 'PGI', branch_point_name=\"Glycolysis/PPP\")" ] }, { "cell_type": "code", "execution_count": 67, "id": "50912bc0", "metadata": {}, "outputs": [ { "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", "
MeanStdev
ACONTb/ICDHyr5.123180e-012.516308e-01
ACONTb/ICL4.641178e-091.092640e-08
\n", "
" ], "text/plain": [ " Mean Stdev\n", "ACONTb/ICDHyr 5.123180e-01 2.516308e-01\n", "ACONTb/ICL 4.641178e-09 1.092640e-08" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_split_ratio(relaxed_sampled_fluxes, 'ACONTb', 'ICDHyr', 'ICL', branch_point_name=\"Glyoxylate shunt/full TCA\")\n", "calculate_split_ratio(relaxed_sampled_fluxes, 'ACONTb', 'ICDHyr', 'ICL', branch_point_name=\"Glyoxylate shunt/full TCA\")" ] }, { "cell_type": "code", "execution_count": 68, "id": "5b64f465", "metadata": {}, "outputs": [ { "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", "
MeanStdev
Glycolysis/PTAr1.4737400.991504
Glycolysis/CS0.1213420.012703
\n", "
" ], "text/plain": [ " Mean Stdev\n", "Glycolysis/PTAr 1.473740 0.991504\n", "Glycolysis/CS 0.121342 0.012703" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "glycolysis = abs(relaxed_sampled_fluxes['ACALD']) + abs(relaxed_sampled_fluxes['PFL']) + abs(relaxed_sampled_fluxes['PDH'])\n", "glycolysis.name = 'Glycolysis'\n", "plot_split_ratio(relaxed_sampled_fluxes, glycolysis, 'PTAr', 'CS', branch_point_name=\"TCA/acetate secretion\")\n", "calculate_split_ratio(relaxed_sampled_fluxes, glycolysis, 'PTAr', 'CS', branch_point_name=\"TCA/acetate secretion\")" ] }, { "cell_type": "markdown", "id": "77299acd", "metadata": {}, "source": [ "#### Calculating the flux resolution" ] }, { "cell_type": "markdown", "id": "5b93d0f7", "metadata": {}, "source": [ "First we want to calculate which fluxes qualify as \"observable fluxes\", i.e. flux value at least 4 times the confidence interval and 0 not included in the confidence interval." ] }, { "cell_type": "code", "execution_count": 69, "id": "1eed0819", "metadata": {}, "outputs": [ { "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", " \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", " \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", " \n", " \n", " \n", " \n", "
EX_cm_eEX_cmp_eEX_co2_eEX_cobalt2_eDM_4crsol_cDM_5drib_cDM_aacald_cDM_amob_cDM_mththf_cEX_colipa_e...ACONTa_reverseFUM_reverseGAPD_reverseICDHyr_reversePGM_reversePTAr_reverseACONTb_reversePGK_reverseACKr_reverseACS_reverse
00.00.014.244331-0.0000170.0001560.0001570.00.0000010.0003144.246613e-12...11.9951768.2261205.2822464.63147321.9947015.89211011.83115623.2168583.96341112.370337
10.00.013.674453-0.0000180.0001560.0001570.00.0000010.000314-7.712807e-13...19.98736314.2500599.3774898.37261023.2616277.91936819.72063223.39105715.05477414.716577
20.00.014.437991-0.0000180.0001560.0001580.00.0000010.000314-1.989870e-13...26.15888425.25885021.04229723.18258829.0123982.53885826.10446024.1817212.73881825.692763
30.00.013.480835-0.0000170.0001560.0001580.00.0000010.0003142.140148e-12...19.74661116.2642879.23299312.59795924.4534349.75682919.64896423.5549097.85651820.172503
40.00.013.701781-0.0000180.0001560.0001570.00.0000010.000314-8.604056e-13...23.46742814.30919710.4872607.56988322.5225536.18706123.23891223.28944714.54933519.759520
..................................................................
950.00.013.162564-0.0000180.0001560.0001580.00.0000010.000314-2.559196e-13...23.78960622.54561517.7336853.27504521.5201944.70748223.64905223.1516375.62493421.937299
960.00.013.021956-0.0000180.0001560.0001580.00.0000010.000314-1.927370e-12...25.34401017.00518413.0750381.16424020.8219613.42067625.05549623.05563111.14736124.027935
970.00.014.566332-0.0000170.0001560.0001570.00.0000010.0003141.112339e-12...1.2541680.8497260.4779050.20477220.9124990.5788151.23743823.0680595.1585391.153175
980.00.014.597348-0.0000170.0001560.0001580.00.0000010.0003141.488700e-12...1.9070851.3401390.8625180.90531221.0598851.1039061.91711923.0883226.1389641.294993
990.00.014.578153-0.0000170.0001560.0001580.00.0000010.0003141.999988e-12...2.0126461.8476751.0728600.90616021.1535601.6632581.78201023.1012015.9048321.412622
\n", "

100 rows × 2593 columns

\n", "
" ], "text/plain": [ " EX_cm_e EX_cmp_e EX_co2_e EX_cobalt2_e DM_4crsol_c DM_5drib_c \\\n", "0 0.0 0.0 14.244331 -0.000017 0.000156 0.000157 \n", "1 0.0 0.0 13.674453 -0.000018 0.000156 0.000157 \n", "2 0.0 0.0 14.437991 -0.000018 0.000156 0.000158 \n", "3 0.0 0.0 13.480835 -0.000017 0.000156 0.000158 \n", "4 0.0 0.0 13.701781 -0.000018 0.000156 0.000157 \n", ".. ... ... ... ... ... ... \n", "95 0.0 0.0 13.162564 -0.000018 0.000156 0.000158 \n", "96 0.0 0.0 13.021956 -0.000018 0.000156 0.000158 \n", "97 0.0 0.0 14.566332 -0.000017 0.000156 0.000157 \n", "98 0.0 0.0 14.597348 -0.000017 0.000156 0.000158 \n", "99 0.0 0.0 14.578153 -0.000017 0.000156 0.000158 \n", "\n", " DM_aacald_c DM_amob_c DM_mththf_c EX_colipa_e ... ACONTa_reverse \\\n", "0 0.0 0.000001 0.000314 4.246613e-12 ... 11.995176 \n", "1 0.0 0.000001 0.000314 -7.712807e-13 ... 19.987363 \n", "2 0.0 0.000001 0.000314 -1.989870e-13 ... 26.158884 \n", "3 0.0 0.000001 0.000314 2.140148e-12 ... 19.746611 \n", "4 0.0 0.000001 0.000314 -8.604056e-13 ... 23.467428 \n", ".. ... ... ... ... ... ... \n", "95 0.0 0.000001 0.000314 -2.559196e-13 ... 23.789606 \n", "96 0.0 0.000001 0.000314 -1.927370e-12 ... 25.344010 \n", "97 0.0 0.000001 0.000314 1.112339e-12 ... 1.254168 \n", "98 0.0 0.000001 0.000314 1.488700e-12 ... 1.907085 \n", "99 0.0 0.000001 0.000314 1.999988e-12 ... 2.012646 \n", "\n", " FUM_reverse GAPD_reverse ICDHyr_reverse PGM_reverse PTAr_reverse \\\n", "0 8.226120 5.282246 4.631473 21.994701 5.892110 \n", "1 14.250059 9.377489 8.372610 23.261627 7.919368 \n", "2 25.258850 21.042297 23.182588 29.012398 2.538858 \n", "3 16.264287 9.232993 12.597959 24.453434 9.756829 \n", "4 14.309197 10.487260 7.569883 22.522553 6.187061 \n", ".. ... ... ... ... ... \n", "95 22.545615 17.733685 3.275045 21.520194 4.707482 \n", "96 17.005184 13.075038 1.164240 20.821961 3.420676 \n", "97 0.849726 0.477905 0.204772 20.912499 0.578815 \n", "98 1.340139 0.862518 0.905312 21.059885 1.103906 \n", "99 1.847675 1.072860 0.906160 21.153560 1.663258 \n", "\n", " ACONTb_reverse PGK_reverse ACKr_reverse ACS_reverse \n", "0 11.831156 23.216858 3.963411 12.370337 \n", "1 19.720632 23.391057 15.054774 14.716577 \n", "2 26.104460 24.181721 2.738818 25.692763 \n", "3 19.648964 23.554909 7.856518 20.172503 \n", "4 23.238912 23.289447 14.549335 19.759520 \n", ".. ... ... ... ... \n", "95 23.649052 23.151637 5.624934 21.937299 \n", "96 25.055496 23.055631 11.147361 24.027935 \n", "97 1.237438 23.068059 5.158539 1.153175 \n", "98 1.917119 23.088322 6.138964 1.294993 \n", "99 1.782010 23.101201 5.904832 1.412622 \n", "\n", "[100 rows x 2593 columns]" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "relaxed_sampled_fluxes" ] }, { "cell_type": "code", "execution_count": 70, "id": "4e56ef3e", "metadata": {}, "outputs": [], "source": [ "observable_fluxes = get_observable_fluxes(fittedFluxes)" ] }, { "cell_type": "code", "execution_count": 71, "id": "01cf4ddf", "metadata": {}, "outputs": [ { "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", " \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", " \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", " \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", " \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", " \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", "
indexsimulation_idsimulation_dateAndTimerxn_idfluxflux_stdevflux_lbflux_ubflux_unitsfit_alffit_chi2sfit_corfit_covfreeused_comment_
00WTEColi_113C80_U13C20_012021-04-16 18:29:3726dap_DASH_MSYN0.2295040.0026080.2243920.234616mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
44WTEColi_113C80_U13C20_012021-04-16 18:29:37ALATA_L0.3435520.0039040.3359000.351204mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
55WTEColi_113C80_U13C20_012021-04-16 18:29:37ArgSYN0.1978240.0022480.1934180.202230mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
66WTEColi_113C80_U13C20_012021-04-16 18:29:37ASNN0.1612160.0018320.1576250.164807mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
77WTEColi_113C80_U13C20_012021-04-16 18:29:37ASPTA1.2798720.0145441.2513661.327850mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
1010WTEColi_113C80_U13C20_012021-04-16 18:29:37DAPDC0.2295040.0026080.2243920.234616mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
1111WTEColi_113C80_U13C20_012021-04-16 18:29:37BIOMASS_Ec_iJO1366_core_53p95M0.7040000.0080000.6883200.719680mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
1414WTEColi_113C80_U13C20_012021-04-16 18:29:37EX_ac_e2.1300000.5000001.9170002.343000mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
1717WTEColi_113C80_U13C20_012021-04-16 18:29:37EX_glc_e7.4000000.2000007.0079227.791993mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
1818WTEColi_113C80_U13C20_012021-04-16 18:29:37EX_nh4_e4.9019520.0557044.7927745.011130mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
2020WTEColi_113C80_U13C20_012021-04-16 18:29:37EX_so4_e0.1640320.0018640.1603790.167685mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
3133WTEColi_113C80_U13C20_012021-04-16 18:29:37GLNS0.4752000.0054000.4646160.485784mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
3234WTEColi_113C80_U13C20_012021-04-16 18:29:37GluSYN4.5967680.0522364.4943874.699149mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
3537WTEColi_113C80_U13C20_012021-04-16 18:29:37HisSYN0.0633600.0007200.0619490.064771mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
3941WTEColi_113C80_U13C20_012021-04-16 18:29:37IleSYN0.1943040.0022080.1899760.198632mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
4042WTEColi_113C80_U13C20_012021-04-16 18:29:37LeuSYN0.3013120.0034240.2946010.308023mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
4548WTEColi_113C80_U13C20_012021-04-16 18:29:37MetSYN0.1027840.0011680.1004950.105073mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
4851WTEColi_113C80_U13C20_012021-04-16 18:29:37MTHFC0.0633600.0007200.0619490.064771mmol*gDCW-1*hr-10.05NoneNoneNoneTrueTrueNone
4952WTEColi_113C80_U13C20_012021-04-16 18:29:37MTHFD0.1027840.0011680.1004950.105073mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
5762WTEColi_113C80_U13C20_012021-04-16 18:29:37PheSYN0.1239040.0014080.1211440.126664mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
6065WTEColi_113C80_U13C20_012021-04-16 18:29:37ProSYN0.1478400.0016800.1445470.151133mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
6166WTEColi_113C80_U13C20_012021-04-16 18:29:37PRPPS0.0633600.0007200.0619490.064771mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
6774WTEColi_113C80_U13C20_012021-04-16 18:29:37SERAT0.1640320.0018640.1603790.167685mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
7383WTEColi_113C80_U13C20_012021-04-16 18:29:37ThrSYN0.3639680.0041360.3558620.407275mmol*gDCW-1*hr-10.05NoneNoneNoneTrueTrueNone
7994WTEColi_113C80_U13C20_012021-04-16 18:29:37TrpSYN0.0380160.0004320.0371690.038863mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
8095WTEColi_113C80_U13C20_012021-04-16 18:29:37TyrSYN0.0922240.0010480.0901700.094278mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
8196WTEColi_113C80_U13C20_012021-04-16 18:29:37ValSYN0.2830080.0032160.2767050.289311mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
95110WTEColi_113C80_U13C20_012021-04-16 18:29:37CYSS0.1640320.0018640.1603790.167685mmol*gDCW-1*hr-10.05NoneNoneNoneFalseTrueNone
\n", "
" ], "text/plain": [ " index simulation_id simulation_dateAndTime \\\n", "0 0 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "4 4 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "5 5 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "6 6 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "7 7 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "10 10 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "11 11 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "14 14 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "17 17 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "18 18 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "20 20 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "31 33 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "32 34 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "35 37 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "39 41 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "40 42 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "45 48 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "48 51 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "49 52 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "57 62 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "60 65 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "61 66 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "67 74 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "73 83 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "79 94 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "80 95 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "81 96 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "95 110 WTEColi_113C80_U13C20_01 2021-04-16 18:29:37 \n", "\n", " rxn_id flux flux_stdev flux_lb flux_ub \\\n", "0 26dap_DASH_MSYN 0.229504 0.002608 0.224392 0.234616 \n", "4 ALATA_L 0.343552 0.003904 0.335900 0.351204 \n", "5 ArgSYN 0.197824 0.002248 0.193418 0.202230 \n", "6 ASNN 0.161216 0.001832 0.157625 0.164807 \n", "7 ASPTA 1.279872 0.014544 1.251366 1.327850 \n", "10 DAPDC 0.229504 0.002608 0.224392 0.234616 \n", "11 BIOMASS_Ec_iJO1366_core_53p95M 0.704000 0.008000 0.688320 0.719680 \n", "14 EX_ac_e 2.130000 0.500000 1.917000 2.343000 \n", "17 EX_glc_e 7.400000 0.200000 7.007922 7.791993 \n", "18 EX_nh4_e 4.901952 0.055704 4.792774 5.011130 \n", "20 EX_so4_e 0.164032 0.001864 0.160379 0.167685 \n", "31 GLNS 0.475200 0.005400 0.464616 0.485784 \n", "32 GluSYN 4.596768 0.052236 4.494387 4.699149 \n", "35 HisSYN 0.063360 0.000720 0.061949 0.064771 \n", "39 IleSYN 0.194304 0.002208 0.189976 0.198632 \n", "40 LeuSYN 0.301312 0.003424 0.294601 0.308023 \n", "45 MetSYN 0.102784 0.001168 0.100495 0.105073 \n", "48 MTHFC 0.063360 0.000720 0.061949 0.064771 \n", "49 MTHFD 0.102784 0.001168 0.100495 0.105073 \n", "57 PheSYN 0.123904 0.001408 0.121144 0.126664 \n", "60 ProSYN 0.147840 0.001680 0.144547 0.151133 \n", "61 PRPPS 0.063360 0.000720 0.061949 0.064771 \n", "67 SERAT 0.164032 0.001864 0.160379 0.167685 \n", "73 ThrSYN 0.363968 0.004136 0.355862 0.407275 \n", "79 TrpSYN 0.038016 0.000432 0.037169 0.038863 \n", "80 TyrSYN 0.092224 0.001048 0.090170 0.094278 \n", "81 ValSYN 0.283008 0.003216 0.276705 0.289311 \n", "95 CYSS 0.164032 0.001864 0.160379 0.167685 \n", "\n", " flux_units fit_alf fit_chi2s fit_cor fit_cov free used_ comment_ \n", "0 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "4 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "5 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "6 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "7 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "10 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "11 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "14 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "17 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "18 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "20 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "31 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "32 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "35 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "39 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "40 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "45 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "48 mmol*gDCW-1*hr-1 0.05 None None None True True None \n", "49 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "57 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "60 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "61 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "67 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "73 mmol*gDCW-1*hr-1 0.05 None None None True True None \n", "79 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "80 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "81 mmol*gDCW-1*hr-1 0.05 None None None False True None \n", "95 mmol*gDCW-1*hr-1 0.05 None None None False True None " ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "observable_fluxes" ] }, { "cell_type": "markdown", "id": "cd9725c0", "metadata": {}, "source": [ "The following amount of fluxes qualifies as being observalbe" ] }, { "cell_type": "code", "execution_count": 72, "id": "da1c5396", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "27.72 %\n" ] } ], "source": [ "percent_observable_fluxes(fittedFluxes)" ] }, { "cell_type": "markdown", "id": "3f82c10b", "metadata": {}, "source": [ "The flux precision is defined as the mean of the standard deviations of the fitted Fluxes" ] }, { "cell_type": "code", "execution_count": 73, "id": "33c1b1f2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.031311574686820484" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "get_flux_precision(fittedFluxes)" ] }, { "cell_type": "code", "execution_count": null, "id": "4e1d1666", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "bfair", "language": "python", "name": "bfair" }, "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.8.5" } }, "nbformat": 4, "nbformat_minor": 5 }