FlexibleBiommassPkg exampleΒΆ
[4]:
import cobra
from cobra import Model, Reaction, Metabolite
import pandas as pd
import cplex
import optlang
import math
import json
import sys
from cobra.flux_analysis.parsimonious import pfba
import cobrakbase
sys.path.append("/Users/chenry/code/ModelSEEDpy")
#import modelseedpy.fbapkg
from modelseedpy import FlexibleBiomassPkg, ElementUptakePkg, KBaseMediaPkg
[6]:
kbase_api = cobrakbase.KBaseAPI(token = "5YAOMNFB7XOEKBKHRHJB4AIZSQ2EJGA5")
model = kbase_api.get_from_ws("C4_Calvin_Zmays_Model",25427)
#model = kbase_api.get_from_ws("E_iML1515.kb",40576)
model.solver = 'optlang-cplex'
#Applying uptake limit to total carbon uptake by model
eup = ElementUptakePkg(model)
eup.build_package({"C":60})
#Applying constraints based on KBase media
#media = kbase_api.get_from_ws("Btheta_Ecoli_minimal_media",40576)
kmp = KBaseMediaPkg(model)
#kmp.build_package(media)
kmp.build_package(None)
#Applying flexible biomass constraints
fbp = FlexibleBiomassPkg(model)
fbp.build_package({"bio_rxn_id":"bio1","use_rna_class":[-0.75,0.75],
"use_dna_class":[-0.75,0.75],
"use_protein_class":[-0.1052,-0.1052],
"use_energy_class":[-0.1,0.1]})
#Setting the objective to biomass
biomass_objective = model.problem.Objective(
1 * model.reactions.bio1.flux_expression,
direction='max')
model.objective = biomass_objective
#Printing LP file
with open('FlexibleBiomass.lp', 'w') as out:
out.write(str(model.solver))
#Solving
sol=model.optimize()
model.summary()
rna:cpd00052_c0:480.13250600000003:-12.483445156:-0.026
rna:cpd00038_c0:520.156606:-26.007516912:-0.026
rna:cpd00062_c0:481.117266:-38.997683093999996:-0.027
rna:cpd00012_x0:174.951264:-25.176533237999994:0.079
rna:cpd00001_d1:18.01528:-23.753326117999993:0.079
dna:cpd00115_c0:488.157806:-14.644734179999999:-0.03
dna:cpd00356_c0:464.133106:-26.712194935999996:-0.026
dna:cpd00241_c0:504.157206:-39.820282291999995:-0.026
dna:cpd00357_c0:479.144446:-54.194615672:-0.03
dna:cpd00012_x0:174.951264:-34.600074104:0.11199999999999999
dna:cpd00001_d1:18.01528:-32.582362744:0.11199999999999999
protein:cpd00023_c0:146.12132:-18.9957716:-0.13
protein:cpd00033_c0:75.0666:-30.2557616:-0.15
protein:cpd00035_c0:89.09318:-44.59976358:-0.161
protein:cpd00039_c0:147.1955:-58.730531580000005:-0.096
protein:cpd00041_c0:132.09474:-71.6758161:-0.098
protein:cpd00051_c0:175.2089:-90.94879510000001:-0.11
protein:cpd00053_c0:146.1445:-101.32505460000002:-0.071
protein:cpd00054_c0:105.09258:-111.83431260000002:-0.1
protein:cpd00060_c0:149.21134:-119.14566826000002:-0.049
protein:cpd00065_c0:204.22518:-124.04707258000002:-0.024
protein:cpd00066_c0:165.18913999999998:-136.27106894000002:-0.074
protein:cpd00069_c0:181.18854:-145.14930740000003:-0.049
protein:cpd00084_c0:121.15818:-148.66289462000003:-0.029
protein:cpd00107_c0:131.17291999999998:-171.22463686000003:-0.172
protein:cpd00119_c0:155.15456:-177.12051014000002:-0.038
protein:cpd00129_c0:115.13046:-188.1730343:-0.096
protein:cpd00132_c0:132.11792:-195.57163782:-0.056
protein:cpd00156_c0:117.14634:-210.44922300000002:-0.127
protein:cpd00161_c0:119.11916:-221.88466236000002:-0.096
protein:cpd00322_c0:131.17291999999998:-232.77201472000002:-0.083
protein:cpd00001_d1:18.01528:-200.18237320000003:1.809
energy:cpd00008_c0:425.18524399999995:12755.557319999998:30
energy:cpd00001_d1:18.01528:12215.098919999999:-30
energy:cpd00002_d1:504.157206:-2909.617260000001:-30
energy:cpd00009_d1:95.97930199999999:-30.238200000001143:30
energy:cpd00067_d1:1.00794:-1.1404210908949608e-12:30
[6]:
| IN_FLUXES | OUT_FLUXES | OBJECTIVES | ||||
|---|---|---|---|---|---|---|
| ID | FLUX | ID | FLUX | ID | FLUX | |
| 0 | cpd00076_e0 | 5.000000 | cpd00001_e0 | 8.212613 | bio1 | 3.142214 |
| 1 | cpd00013_e0 | 3.199010 | cpd00067_e0 | 4.180729 | NaN | NaN |
| 2 | cpd19001_c0 | 2.356661 | cpd11416_c0 | 3.142214 | NaN | NaN |
| 3 | cpd00014_c0 | 1.805202 | cpd00007_e0 | 2.685331 | NaN | NaN |
| 4 | cpd00205_e0 | 1.688155 | cpd00163_c0 | 1.602566 | NaN | NaN |
| 5 | cpd00009_e0 | 1.388617 | cpd00205_c0 | 0.723495 | NaN | NaN |
| 6 | cpd00604_c0 | 1.296163 | cpd00099_c0 | 0.494899 | NaN | NaN |
| 7 | cpd00099_e0 | 1.154764 | cpd00080_c0 | 0.306366 | NaN | NaN |
| 8 | cpd00214_c0 | 0.775341 | cpd00012_x0 | 0.263946 | NaN | NaN |
| 9 | cpd30321_c0 | 0.535198 | NaN | NaN | NaN | NaN |
| 10 | cpd11632_e0 | 0.319930 | NaN | NaN | NaN | NaN |
| 11 | cpd00048_e0 | 0.247965 | NaN | NaN | NaN | NaN |
| 12 | cpd00331_c0 | 0.202673 | NaN | NaN | NaN | NaN |
| 13 | cpd01059_c0 | 0.179106 | NaN | NaN | NaN | NaN |
| 14 | cpd00032_c0 | 0.178399 | NaN | NaN | NaN | NaN |
| 15 | cpd00159_c0 | 0.091910 | NaN | NaN | NaN | NaN |
| 16 | cpd16443_c0 | 0.088846 | NaN | NaN | NaN | NaN |
| 17 | cpd00130_c0 | 0.087196 | NaN | NaN | NaN | NaN |
[3]:
for reaction in fbp.new_reactions:
print(reaction+":"+str(fbp.new_reactions[reaction].forward_variable.primal-fbp.new_reactions[reaction].reverse_variable.primal))
FLEX_cpd00201_c0:-3.450255666989782e-05
FLEX_cpd24604_c0:-4.022719611736966e-06
FLEX_cpd03445_c0:-3.450255666989782e-05
FLEX_cpd24682_c0:-4.022719611736965e-05
FLEX_cpd00035_c0:0.0794779544089827
FLEX_cpd00017_c0:-3.450255666989782e-05
FLEX_cpd00051_c0:-0.04576493382288079
FLEX_cpd00132_c0:0.03729602600027901
FLEX_cpd00041_c0:0.03729602600027901
FLEX_cpd00104_c0:-3.0943997013361277e-07
FLEX_cpd00063_c0:0.0008053175222727272
FLEX_cpd00099_c0:0.0008053175222727272
FLEX_cpd00010_c0:-8.911871139848047e-05
FLEX_cpd00149_c0:3.86799962667016e-06
FLEX_cpd00052_c0:0.020656355766299185
FLEX_cpd00058_c0:0.00010969646941236572
FLEX_cpd00084_c0:-0.014169256232418128
FLEX_cpd00115_c0:-0.0040484031292580555
FLEX_cpd00356_c0:0.004180069836549908
FLEX_cpd00241_c0:-0.004180069836549908
FLEX_cpd00015_c0:-3.450255666989782e-05
FLEX_cpd10515_c0:0.0010389446997236048
FLEX_cpd10516_c0:0.0012080536434016242
FLEX_cpd00053_c0:0.040716111270180766
FLEX_cpd00023_c0:0.040716111270180766
FLEX_cpd00033_c0:-0.09478734221135812
FLEX_cpd00038_c0:-0.023642791862056332
FLEX_cpd00119_c0:-0.014657861945259103
FLEX_cpd00322_c0:-0.044950642541474184
FLEX_cpd00205_c0:0.030200258045145142
FLEX_cpd03586_e0:0.003010232029459785
FLEX_cpd00107_c0:0.06970614959213335
FLEX_cpd00039_c0:0.05309386479551034
FLEX_cpd00060_c0:-0.023778295624977203
FLEX_cpd00254_c0:0.0013421958704545453
FLEX_cpd00125_c0:-3.450255666989782e-05
FLEX_cpd00030_c0:0.00010691150968116322
FLEX_cpd11574_c0:1.0830398954676446e-06
FLEX_cpd15514_p0:-0.0021496794725182075
FLEX_cpd00003_c0:-0.00028329229265732246
FLEX_cpd00006_c0:-6.915983332486246e-05
FLEX_cpd00013_c0:0.0020133711656743518
FLEX_cpd00244_c0:4.997455517657846e-05
FLEX_cpd15531_p0:0.009873301127053181
FLEX_cpd15532_p0:0.011637108956814775
FLEX_cpd00066_c0:-0.028664198033401884
FLEX_cpd00028_c0:-3.450255666989782e-05
FLEX_cpd00129_c0:-0.03420162629894288
FLEX_cpd00016_c0:3.450255666989782e-05
FLEX_cpd00220_c0:-3.450255666989782e-05
FLEX_cpd00054_c0:0.03338733501753628
FLEX_cpd00557_c0:-3.450255666989782e-05
FLEX_cpd00048_c0:0.000671175295219806
FLEX_cpd00078_c0:-1.5162558536547025e-05
FLEX_cpd00087_c0:-3.450255666989782e-05
FLEX_cpd00056_c0:-3.450255666989782e-05
FLEX_cpd00161_c0:-0.018206546111615842
FLEX_cpd00065_c0:-0.008794748111152474
FLEX_cpd00069_c0:-0.02133526706077233
FLEX_cpd25775_c0:-8.509599178674351e-06
FLEX_cpd00034_c0:5.275951490778098e-05
rna_flex:-0.15471998506680637
dna_flex:0.010314665671120425
protein_flex:0.02475519761068902
energy_flex:-0.0412586626844817