Reading ModelSEED Biochemistry from ModelSEED DatabaseΒΆ

This notebook provides examples to read data from the biochemistry database

The biochemistry database is represented by the modelseedpy.biochem.modelseed_biochem.ModelSEEDDatabase class

The database can be instantiated from either a local github copy of the database repository or loaded via web url from github.

  • from_local - from_local(path to repository)

    • Example:

      1. first we obtain a copy of the repository: git clone https://github.com/ModelSEED/ModelSEEDDatabase.git

      2. then we can load the repository with from_local: from_local('/home/user/ModelSEEDDatabase')

  • from_github - from_github(commit version)

    • Example:

      • load the dev branch from github (default: https://github.com/ModelSEED/ModelSEEDDatabase): from_github('dev')

      • load a specific commit version from github: from_github('194ac8afe48f8a606c0dd07ba3c7af10c02ba2fd')

      • load from another fork/repository: from_github('master', 'https://raw.githubusercontent.com/Fxe/ModelSEEDDatabase')

[1]:
import logging
import pandas as pd
from modelseedpy.biochem.modelseed_biochem import get_structures_from_df, get_aliases_from_df, get_names_from_df, process_aliases, load_metabolites_from_df
from modelseedpy.biochem.modelseed_biochem import ALIAS_RXN_IDENTIFIERS_ORG, ALIAS_MODELS
from modelseedpy.biochem.modelseed_biochem import from_local2, from_local, from_github
from modelseedpy.biochem.modelseed_reaction import ModelSEEDReaction, ModelSEEDReaction2
logger = logging.getLogger(__name__)
[2]:
%%time
modelseed_local2 = from_local2('/home/fliu/workspace/python/ModelSEEDDatabase/')
CPU times: user 16.8 s, sys: 668 ms, total: 17.5 s
Wall time: 17.5 s
[3]:
%%time
modelseed_local1 = from_local('/home/fliu/workspace/python/ModelSEEDDatabase/')
CPU times: user 42.2 s, sys: 503 ms, total: 42.7 s
Wall time: 42.7 s
[4]:
%%time
modelseed_git = from_github('dev')
CPU times: user 18.8 s, sys: 1.12 s, total: 19.9 s
Wall time: 24.3 s
[5]:
inchi_key_lookup = {}
for cpd in modelseed_git.compounds:
    inchi_key = cpd.inchi_key
    inchi_key = None if pd.isna(inchi_key) or len(inchi_key) == 0 else inchi_key
    cpd.inchi_key = inchi_key
    if cpd.inchi_key:
        a, b, p = cpd.inchi_key.split('-')
        if a not in inchi_key_lookup:
            inchi_key_lookup[a] = {}
        if b not in inchi_key_lookup[a]:
            inchi_key_lookup[a][b] = set()
        inchi_key_lookup[a][b].add((cpd.id, p))
[6]:
metabolite_reactions = {}
for rxn in modelseed_git.reactions:
    if not rxn.is_obsolete:
        for m in rxn.metabolites:
            if m.seed_id not in metabolite_reactions:
                metabolite_reactions[m.seed_id] = set()
            metabolite_reactions[m.seed_id].add(rxn.id)
[14]:
import cobrakbase
kbase = cobrakbase.KBaseAPI()
genome = kbase.get_from_ws('87388/3/1')
[38]:
genome.features.get_by_id('A3776_RS08395').data
[38]:
{'aliases': [['protein_id', 'WP_066378293.1'], ['locus_tag', 'A3776_RS08395']],
 'cdss': ['A3776_RS08395_CDS_1'],
 'dna_sequence': 'ATGATTGTACCCTTGCTATATCTGGCTTTAGCCGGAGCCTATCTATTAGTTGTCCCGGTGGCTTTAATGCTTTACCTCAACCTACGCTGGTATACGGCTGGCTCGATTGAGCGCACCGTCATGTATTTTTTTGTATTTTTGTTCTTTCCCGGACTGTTGGTTTTGTCGCCGTTTGTGAATCTGCGACCCAAACCCCGCAAAATTGAAGTTTAA',
 'dna_sequence_length': 213,
 'functions': ['NADH dehydrogenase subunit', 'NdhL'],
 'id': 'A3776_RS08395',
 'location': [['NZ_LUHI01000036.1', 21434, '-', 213]],
 'md5': '1ae8b7b3d705b63184c99a9711785d23',
 'protein_md5': '1ae8b7b3d705b63184c99a9711785d23',
 'protein_translation': 'MIVPLLYLALAGAYLLVVPVALMLYLNLRWYTAGSIERTVMYFFVFLFFPGLLVLSPFVNLRPKPRKIEV',
 'protein_translation_length': 70,
 'quality': {'hit_count': 5, 'weighted_hit_count': 5.5205}}
[221]:
import json
data = None
with open('/home/fliu/workspace/data/sbml/iAnC892/iAnC892_single.json', 'r') as fh:
    data = json.load(fh)
[222]:
%run /home/fliu/workspace/data/sbml/iAnC892/tools.py
integrate_to_seed(data)
[161]:
with open('/home/fliu/workspace/data/sbml/iAnC892/iAnC892_single_mapped.json', 'w') as fh:
    fh.write(json.dumps(data, indent=4, sort_keys=True))
[162]:

[163]:

[223]:

[224]:
model_mapped.metabolites.cpd00011_p
[224]:
Metabolite identifiercpd00011_p
NameCO2
Memory address 0x07fcba66f68e0
FormulaCO2
Compartmentp
In 2 reaction(s) cpd00011exccc_p, cpd00011excpp_e
[225]:
model_mapped = cobra.io.load_json_model('/home/fliu/workspace/data/sbml/iAnC892/iAnC892_single_mapped.json')
from modelseedpy import MSBuilder
from cobra.core import Reaction
MSBuilder.build_exchanges(model_mapped, 'e')
atp_obj = Reaction('obj_ATP', 'ATP objective function', 'objetive function', 0, 1000)
atp_obj.add_metabolites({
    model_mapped.metabolites.cpd00001_c: -1,
    model_mapped.metabolites.cpd00002_c: -1,
    model_mapped.metabolites.cpd00008_c: 1,
    model_mapped.metabolites.cpd00009_c: 1,
    model_mapped.metabolites.cpd00067_c: 1,
})
model_mapped.add_reactions([atp_obj])
model_mapped.objective = 'obj_ATP'
model_mapped.medium = {
    #'EX_cpd00067_e': 1,
    'EX_cpd11632_e': 0.5,
    #'EX_hvphoton2_e': 0.5,
    'EX_hvphoton1_e': 0.5
}
#1.0 obj_ATP = 0.8035714285714285
model_mapped.summary()
[225]:

Objective

1.0 obj_ATP = 0.8035714285714285

Uptake

Metabolite Reaction Flux C-Number C-Flux
cpd11632_e EX_cpd11632_e 0.5 0 0.00%
hvphoton1_e EX_hvphoton1_e 0.5 0 0.00%

Secretion

Metabolite Reaction Flux C-Number C-Flux
[197]:
model_mapped.medium = {
        'EX_cpd00067_e': 1
    }
sol = cobra.flux_analysis.pfba(model_mapped)
[ ]:
for a in [{'EX_cpd11632_e': 1}, {'EX_hvphoton1_e': 1}]:
    model_mapped.medium = {
        k.id: 1,
    }
    sol = cobra.flux_analysis.pfba(model_mapped)

    print(model_mapped.medium)
    ss = f"{cpd.id}\t{cpd.name}\t{sol.fluxes['obj_ATP']}\t{sol.status}"
    print(ss)
[ ]:
#glc/O2 22.857142857142854
#glc 0
[218]:
model_mapped.medium = {
    'EX_cpd00067_e': 1000,
    'EX_cpd00001_e': 1000,
    'EX_cpd00242_e': 1, #H2CO3
    'EX_cpd00528_e': 1000, #N2
    'EX_cpd00011_e': 1000, #co2
    'EX_cpd00007_e': 0, #O2
    'EX_cpd11632_e': 0,
    'EX_hvphoton1_e': 0,
    'EX_cpd00027_e': 1,
    'EX_cpd00048_e': 1,
    'EX_cpd00209_e': 1,
    'EX_cpd11640_e': 1, #H2
    'EX_cpd00268_e': 10
    }
model_mapped.summary()
[218]:

Objective

1.0 obj_ATP = 0.0

Uptake

Metabolite Reaction Flux C-Number C-Flux

Secretion

Metabolite Reaction Flux C-Number C-Flux
[203]:
for k in model_mapped.exchanges:
    cpd = list(k.metabolites)[0]
    model_mapped.medium = {
        k.id: 1,
    }
    sol = cobra.flux_analysis.pfba(model_mapped)
    ss = f"{cpd.id}\t{cpd.name}\t{sol.fluxes['obj_ATP']}\t{sol.status}"
    print(ss)
cpd11632_e      Photosystem 2 photon    0.8571428571428571      optimal
hvphoton1_e     Photosystem 1 photon    0.75    optimal
cpd00067_e      H+      0.0     optimal
cpd00001_e      H2O     0.0     optimal
cpd00007_e      O2      0.0     optimal
cpd00009_e      Phosphate       0.0     optimal
cpd00048_e      Sulfate 0.0     optimal
cpd00209_e      Nitrate 0.0     optimal
cpd00254_e      Mg      0.0     optimal
cpd10515_e      Fe+2    0.0     optimal
cpd00149_e      Co2+    0.0     optimal
cpd00034_e      Zn2+    0.0     optimal
cpd00058_e      Cu2+    0.0     optimal
cpd20863_e      Mn2+    0.0     optimal
cpd00063_e      Ca2+    0.0     optimal
cpd00205_e      K+      0.0     optimal
cpd00971_e      Na+     0.0     optimal
cpd11574_e      Molybdate       0.0     optimal
cpd00011_e      CO2     0.0     optimal
cpd00528_e      N2      0.0     optimal
cpd00027_e      D-Glucose       0.0     optimal
cpd00053_e      L-Glutamine     0.0     optimal
cpd00107_e      L-Leucine       0.0     optimal
cpd00118_e      Putrescine      0.0     optimal
cpd00129_e      L-Proline       0.0     optimal
cpd00156_e      L-Valine        0.0     optimal
cpd00179_e      Maltose 0.0     optimal
cpd00264_e      Spermidine      0.0     optimal
cpd00268_e      H2S2O3  0.0     optimal
cpd00322_e      L-Isoleucine    0.0     optimal
cpd03725_e      Fe(III)dicitrate        0.0     optimal
cpd00060_e      L-Methionine    0.0     optimal
cpd00104_e      BIOT    0.0     optimal
cpd01012_e      Cd2+    0.0     optimal
cpd11593_e      ala-L-asp-L     0.0     optimal
cpd00159_e      L-Lactate       0.0     optimal
cpd01262_e      Amylotriose     0.0     optimal
cpd01329_e      Maltohexaose    0.0     optimal
cpd00242_e      H2CO3   0.0     optimal
cpd00013_e      cpd00013[e]     0.0     optimal
cpd11640_e      H2      0.0     optimal
[43]:
for k in ['A3776_RS12690', 'A3776_RS16110']:
    for o in genome.features.get_by_id(k).functions:
        print(o)

Dihydroorotate dehydrogenase (quinone) (EC 1.3.5.2)
Putative dihydropyrimidine dehydrogenase [NADP+], similar to dihydroorotate dehydrogenase
[19]:
for rxn_id in super_c:
    if rxn_id in model.reactions:
        stoich_key, compartment_setup = super_c[rxn_id]
        rxn_model = model.reactions.get_by_id(rxn_id)
        print(rxn_model.id, rxn_model.gene_reaction_rule)
NDH1_1u_k A3776_RS06230 and A3776_RS16180 and A3776_RS20905 and A3776_RS06215 and A3776_RS06220 and A3776_RS19180 and ( A3776_RS06225 or A3776_RS21975 ) and A3776_RS20895 and A3776_RS20900 and A3776_RS08395 and A3776_RS11390 and A3776_RS03245 and A3776_RS09810 and A3776_RS09805 and A3776_RS09800 and ( A3776_RS08060 or A3776_RS10415 or A3776_RS22280 ) and ( A3776_RS03760 or A3776_RS08065 or A3776_RS18720 )
NDH1_1p_p A3776_RS06230 and A3776_RS16180 and A3776_RS20905 and A3776_RS06215 and A3776_RS06220 and A3776_RS19180 and ( A3776_RS06225 or A3776_RS21975 ) and A3776_RS20895 and A3776_RS20900 and A3776_RS08395 and A3776_RS11390 and A3776_RS03245 and A3776_RS09810 and A3776_RS09805 and A3776_RS09800 and ( A3776_RS08060 or A3776_RS10415 or A3776_RS22280 ) and ( A3776_RS03760 or A3776_RS08065 or A3776_RS18720 )
NDH1_4pp_p A3776_RS06230 and A3776_RS16180 and A3776_RS20905 and A3776_RS06215 and A3776_RS06220 and A3776_RS19180 and ( A3776_RS06225 or A3776_RS21975 ) and A3776_RS20895 and A3776_RS20900 and A3776_RS08395 and A3776_RS11390 and A3776_RS03245 and A3776_RS09810 and A3776_RS09805 and A3776_RS09800 and ( A3776_RS03765 or A3776_RS18715 ) and ( A3776_RS03760 or A3776_RS08065 or A3776_RS18720 ) and A3776_RS03770
NDH1_3u_k A3776_RS06230 and A3776_RS16180 and A3776_RS20905 and A3776_RS06215 and A3776_RS06220 and A3776_RS19180 and ( A3776_RS06225 or A3776_RS21975 ) and A3776_RS20895 and A3776_RS20900 and A3776_RS08395 and A3776_RS11390 and A3776_RS03245 and A3776_RS09810 and A3776_RS09805 and A3776_RS09800 and ( A3776_RS08060 or A3776_RS10415 or A3776_RS22280 ) and ( A3776_RS03760 or A3776_RS08065 or A3776_RS18720 ) and A3776_RS18710 and A3776_RS04105
NDH1_2p_p A3776_RS06230 and A3776_RS16180 and A3776_RS20905 and A3776_RS06215 and A3776_RS06220 and A3776_RS19180 and ( A3776_RS06225 or A3776_RS21975 ) and A3776_RS20895 and A3776_RS20900 and A3776_RS08395 and A3776_RS11390 and A3776_RS03245 and A3776_RS09810 and A3776_RS09805 and A3776_RS09800 and ( A3776_RS08060 or A3776_RS10415 or A3776_RS22280 ) and ( A3776_RS03760 or A3776_RS08065 or A3776_RS18720 )
NDH1_2u_k A3776_RS06230 and A3776_RS16180 and A3776_RS20905 and A3776_RS06215 and A3776_RS06220 and A3776_RS19180 and ( A3776_RS06225 or A3776_RS21975 ) and A3776_RS20895 and A3776_RS20900 and A3776_RS08395 and A3776_RS11390 and A3776_RS03245 and A3776_RS09810 and A3776_RS09805 and A3776_RS09800 and ( A3776_RS08060 or A3776_RS10415 or A3776_RS22280 ) and ( A3776_RS03760 or A3776_RS08065 or A3776_RS18720 )
rxn08335_p_p A3776_RS12690
DHORD_PQ9_k A3776_RS12690 or A3776_RS16110
[7]:
import cobra
model = cobra.io.load_json_model('/home/fliu/workspace/data/sbml/iAnC892/iAnC892_single.json')
[64]:
model.reactions.CBFCu_k
[64]:
Reaction identifierCBFCu_k
Namecytochrome b6/f complex
Memory address 0x07fcbbf9f9f70
Stoichiometry

2.0 cpd00067_c + 2.0 cpd12265_k + cpd16503_k --> 4.0 cpd00067_k + cpd07274_k + 2.0 cpd12239_k

2.0 H+ + 2.0 Oxidized plastocyanin + Plastoquinol-9 --> 4.0 H+ + Plastoquinone A + 2.0 Reduced plastocyanin

GPRA3776_RS13955 or A3776_RS22750
Lower bound0.0
Upper bound1000.0
[62]:
seed_build = {
    'PSII_k': ('rxn46370', {'0': 'k', '1': 'c'}),
}
modelseed_git.reactions.rxn46370.to_template_reaction({'0': 'k', '1': 'c'})
cpd00007_0 0 cpd00007_k
-1.0
cpd00067_0 0 cpd00067_k
-4.0
cpd16503_0 0 cpd16503_k
-2.0
cpd00001_0 0 cpd00001_k
2.0
cpd00067_1 1 cpd00067_c
4.0
cpd07274_0 0 cpd07274_k
2.0
cpd11632_0 0 cpd11632_k
1.0
[62]:
Reaction identifierrxn46370_k
Namenan
Memory address 0x07fcbbc01f790
Stoichiometry

cpd00007_k + 4.0 cpd00067_k + 2.0 cpd16503_k <=> 2.0 cpd00001_k + 4.0 cpd00067_c + 2.0 cpd07274_k + cpd11632_k

O2 + 4.0 H+ + 2.0 Plastoquinol-9 <=> 2.0 H2O + 4.0 H+ + 2.0 Plastoquinone A + hn

GPR
Lower bound-1000
Upper bound1000
[ ]:

[170]:
#rxn37623: cpd00005_0 + 3.0 cpd00067_0 + cpd07274_0 <=> cpd00006_0 + cpd29046_0
#rxn37623 NADPH + 3.0 H+ + Plastoquinone A <=> NADP + plastoquinol A
#rxn36824 NADPH + H+ + Plastoquinone A <=> NADP + Plastoquinol-9
#rxn36824: cpd00005_0 + cpd00067_0 + cpd07274_0 <=> cpd00006_0 + cpd16503_0
super_c = {
    'NDH1_1u_k': ('NDH1_1u_k', {'0': 'c', '1': 'k'}),
    'NDH1_1p_p': ('NDH1_1u_k', {'0': 'c', '1': 'p'}),
    'NDH1_4pp_p': ('NDH1_3u_k', {'0': 'c', '1': 'p'}),
    'NDH1_3u_k': ('NDH1_3u_k', {'0': 'c', '1': 'k'}),
    'NDH1_2p_p': ('NDH1_2u_k', {'0': 'c', '1': 'p'}),
    'NDH1_2u_k': ('NDH1_2u_k', {'0': 'c', '1': 'k'}),

    'rxn08335_p_p': ('DHORD_PQ9_k', {'0': 'c', '1': 'p'}),
    'DHORD_PQ9_k': ('DHORD_PQ9_k', {'0': 'c', '1': 'k'}),
    'FQR_k': ('FQR_k', {'0': 'c', '1': 'k'}),
    'CBFCu_k': ('CBFCu_k', {'0': 'c', '1': 'k'}),
}
#           cpd00005_c + 4.0 cpd00067_c + cpd07274_k --> cpd00006_c + 3.0 cpd00067_k + cpd16503_k
#NDH1_1p_p: cpd00005_c + 4.0 cpd00067_c + cpd07274_p --> cpd00006_c + 3.0 cpd00067_p + cpd16503_p
#NDH1_1u_k: cpd00005_c + 4.0 cpd00067_c + cpd07274_k --> cpd00006_c + 3.0 cpd00067_k + cpd16503_k
super_s = {
    'NDH1_1u_k': {
        ('cpd00005', '0'): -1,
        ('cpd00067', '0'): -4,
        ('cpd07274', '1'): -1,
        ('cpd00006', '0'): 1,
        ('cpd00067', '1'): 3,
        ('cpd16503', '1'): 1
    },

#NDH1_4pp_p: cpd00001_c + cpd00005_c + cpd00011_p + 3.0 cpd00067_c + cpd07274_p --> cpd00006_c + 3.0 cpd00067_p + cpd00242_c + cpd16503_p
#NDH1_3u_k : cpd00001_c + cpd00005_c + cpd00011_p + 3.0 cpd00067_c + cpd07274_k --> cpd00006_c + 3.0 cpd00067_k + cpd00242_c + cpd16503_k
    'NDH1_3u_k': {
        ('cpd00001', '0'): -1,
        ('cpd00005', '0'): -1,
        ('cpd00011', '0'): -1,
        ('cpd00067', '0'): -3,
        ('cpd07274', '1'): -1,
        ('cpd00006', '0'): 1,
        ('cpd00067', '1'): 3,
        ('cpd00242', '0'): 1,
        ('cpd16503', '1'): 1
    },
#NDH1_2p_p: cpd00004_c + 4.0 cpd00067_c + cpd07274_p --> cpd00003_c + 3.0 cpd00067_p + cpd16503_p
#NDH1_2u_k: cpd00004_c + 4.0 cpd00067_c + cpd07274_k --> cpd00003_c + 3.0 cpd00067_k + cpd16503_k
    'NDH1_2u_k': {
        ('cpd00004', '0'): -1,
        ('cpd00067', '0'): -4,
        ('cpd07274', '1'): -1,
        ('cpd00003', '0'): 1,
        ('cpd00067', '1'): 3,
        ('cpd16503', '1'): 1
    },
#NDH2_syn_k: cpd00004_c + cpd00067_c + cpd07274_k --> cpd00003_c + cpd16503_k
    'NDH2_syn_k': {
        ('cpd00004', 'c'): -1,
        ('cpd00067', 'c'): -1,
        ('cpd07274', 'k'): -1,
        ('cpd00003', 'c'): 1,
        ('cpd16503', 'k'): 1
    },
#rxn08335_p_p: cpd00282_c + cpd07274_p --> cpd00247_c + cpd16503_p
#DHORD_PQ9_k : cpd00282_c + cpd07274_k --> cpd00247_c + cpd16503_k
    'DHORD_PQ9_k': {
        ('cpd00282', '0'): -1,
        ('cpd07274', '1'): -1,
        ('cpd00247', '0'): 1,
        ('cpd16503', '1'): 1
    },
#FQR_k: 2.0 cpd00067_c + cpd07274_k + 2.0 cpd11620_c --> 2.0 cpd11621_c + cpd16503_k
    'FQR_k': {
        ('cpd00067', '0'): -2,
        ('cpd07274', '1'): -1,
        ('cpd11620', '0'): -2,
        ('cpd11621', '0'): 2,
        ('cpd16503', '1'): 1
    },
#CBFCu_k: 2.0 cpd00067_c + 2.0 cpd12265_k + cpd16503_k --> 4.0 cpd00067_k + cpd07274_k + 2.0 cpd12239_k
    'CBFCu_k': {
        ('cpd00067', '0'): -2,
        ('cpd12265', '1'): -2,
        ('cpd16503', '1'): -1,
        ('cpd00067', '1'): 4,
        ('cpd07274', '1'): 1,
        ('cpd12239', '1'): 2
    },
}
[150]:
# CYTBDu_k -> DB with pq9
[ ]:

[174]:
def test(model_mapped):
    for rxn_id in super_c:
        if rxn_id in model_mapped.reactions:
            stoich_key, compartment_setup = super_c[rxn_id]
            rxn_model = model_mapped.reactions.get_by_id(rxn_id)
            #print(rxn_id, rxn_model)
            #
            rxn_s_model = dict(map(lambda x: (x[0].id, x[1]), rxn_model.metabolites.items()))
            rxn_s_match = {}
            for (cpd_id, cmp_token), v in super_s[stoich_key].items():
                _cpd_id = f'{cpd_id}_{compartment_setup[cmp_token]}'
                rxn_s_match[_cpd_id] = v

            valid = rxn_s_model == rxn_s_match
            print(rxn_id, valid)
            if not valid:
                print(rxn_id, compartment_setup)
                print('rxn_s_match', rxn_s_match)
                print('rxn_s_model', rxn_s_model)
test(model_mapped)
NDH1_1u_k True
NDH1_1p_p True
NDH1_4pp_p True
NDH1_3u_k True
NDH1_2p_p True
NDH1_2u_k True
rxn08335_p_p True
DHORD_PQ9_k True
FQR_k True
CBFCu_k True
[ ]:

[ ]:
rxn14159: cpd00006_0 + cpd00067_0 + 2.0 cpd11620_0 <=> cpd00005_0 + 2.0 cpd11621_0
rxn14159 NADP + H+ + 2.0 Reducedferredoxin <=> NADPH + 2.0 Oxidizedferredoxin

rxn05937: cpd00006_0 + cpd00067_0 + cpd11620_0 <=> cpd00005_0 + cpd11621_0
rxn05937 NADP + H+ + Reducedferredoxin <=> NADPH + Oxidizedferredoxin
[228]:
def finddd(a, b):
    c = set(a) | set(b)
    super_match = None
    for i in c:
        if i in metabolite_reactions:
            if super_match is None:
                super_match = set(metabolite_reactions[i])
            super_match &= set(metabolite_reactions[i])
    return super_match

#finddd(['cpd00003'], ['cpd00004'])
#cpd00001_k + 2.0 cpd00067_c + cpd07274_k + 2.0 hvphoton2_c --> 0.5 cpd00007_k + 2.0 cpd00067_k + cpd16503_k
#2 cpd00001_k + 4.0 cpd00067_c + 2 cpd07274_k + 4.0 hvphoton2_c --> 1 cpd00007_k + 4.0 cpd00067_k + 2 cpd16503_k
for r in finddd(['cpd00006', 'cpd11620'], ['cpd00005', 'cpd11621']):
    rxn = modelseed_git.reactions.get_by_id(r)
    print(rxn, rxn.compartments)
    print(rxn.id, rxn.build_reaction_string(True))
    print()
    break
rxn34892: 4.0 cpd00005_0 + cpd00007_0 + cpd11621_0 + cpd30237_0 <=> 2.0 cpd00001_0 + 4.0 cpd00006_0 + cpd11620_0 + cpd30238_0 {'0'}
rxn34892 4.0 NADPH + O2 + Oxidizedferredoxin + Digalactosyldiacylglycerol (1-(9Z)-octadecenoyl,2-(7Z,10Z)-hexadecadienoyl, 18:1(9Z)/16:2(7Z,10Z)) <=> 2.0 H2O + 4.0 NADP + Reducedferredoxin + Digalactosyldiacylglycerol (1-(9Z)-octadecenoyl,2-(4Z,7Z,10Z)-hexadecatrienoyl, 18:1(9Z)/16:3(4Z,7Z,10Z))

[ ]:
#2 cpd00001_0 + 4.0 cpd00067_1 + 2 cpd07274_0 + cpd11632_0      --> 1 cpd00007_0 + 4.0 cpd00067_0 + 2 cpd16503_0
#2 cpd00001_k + 4.0 cpd00067_c + 2 cpd07274_k + 4.0 hvphoton2_c --> 1 cpd00007_k + 4.0 cpd00067_k + 2 cpd16503_k
[48]:
modelseed_git.reactions.rxn05937
[48]:
Reaction identifierrxn05937
NameFerredoxin:NADP+ oxidoreductase
Memory address 0x07fcbbd112c70
Stoichiometry

cpd00006_0 + cpd00067_0 + cpd11620_0 <=> cpd00005_0 + cpd11621_0

NADP + H+ + Reducedferredoxin <=> NADPH + Oxidizedferredoxin

GPR
Lower bound-1000
Upper bound1000
[283]:
model_full.reactions.EX_cpd00027[e]
[283]:
Reaction identifierATP_syn_l__hc
NameATP synthetase(u)
Memory address 0x07fcb9a4b07f0
Stoichiometry

3.0 cpd00008[hc] + 3.0 cpd00009[hc] + 14.0 cpd00067[hl] --> 3.0 cpd00001[hc] + 3.0 cpd00002[hc] + 11.0 cpd00067[hc]

3.0 ADP + 3.0 Phosphate + 14.0 H+ --> 3.0 H2O + 3.0 ATP + 11.0 H+

GPR( A3776_RS10860 or A3776_RS13440 ) and ( A3776_RS10820 or A3776_RS10980 ) and ( A3776_RS10975 or...
Lower bound0.0
Upper bound1000.0
[759]:
model_full_mapped = cobra.io.load_json_model('/home/fliu/workspace/data/sbml/iAnC892/iAnC892_mapped.json')
from cobra.core import Reaction
ex_hn = Reaction('EX_cpd11632_e0', 'Exchange for photon', '', -1000, 1000)
ex_hn.add_metabolites({
    model_full_mapped.metabolites.cpd11632_e0: -1
})
model_full_mapped.add_reactions([ex_hn])
model_full_mapped
[759]:
Name M_iAnC892
Memory address 0x07fcb9861eee0
Number of metabolites 1811
Number of reactions 1848
Number of groups 0
Objective expression 1.0*biomass_eq_33047_c0 - 1.0*biomass_eq_33047_c0_reverse_4b9c5
Compartments Vegetative cytoplasm, Vegetative lumen, Vegetative periplasm, Extracellular space, Vegetative carboxysome, Heterocyst cytoplasm, Heterocyst lumen, Heterocyst periplasm, Pseudo compartment
[ ]:

[769]:
for m in model_full.metabolites:
    if m.compartment == 'vp':
        print(m, m.name)
        for r in m.reactions:
            print('\t', r)
        print()
        print()
cpd00001[vp] H2O
         CYO1b2pp_syn__vc: 0.5 cpd00007[vp] + 4.0 cpd00067[vc] + 2.0 cpd12239[vp] --> cpd00001[vp] + 2.0 cpd00067[vp] + 2.0 cpd12265[vp]
         CYTBDpp__vc: 0.5 cpd00007[vp] + cpd16503[vp] --> cpd00001[vp] + cpd07274[vp]
         rxn08687__vc: cpd00001[vp] <=> cpd00001[vc]
         CYO1bpp_syn__vc: 0.5 cpd00007[vp] + 4.0 cpd00067[vc] + 2.0 focytc_6[vp] --> cpd00001[vp] + 2.0 cpd00067[vp] + 2.0 ficytc_6[vp]
         rxn08686__vc: cpd00001[e] <=> cpd00001[vp]


cpd00007[vp] O2
         CYO1b2pp_syn__vc: 0.5 cpd00007[vp] + 4.0 cpd00067[vc] + 2.0 cpd12239[vp] --> cpd00001[vp] + 2.0 cpd00067[vp] + 2.0 cpd12265[vp]
         CYTBDpp__vc: 0.5 cpd00007[vp] + cpd16503[vp] --> cpd00001[vp] + cpd07274[vp]
         rxn09031__vc: cpd00007[e] <=> cpd00007[vp]
         CYO1bpp_syn__vc: 0.5 cpd00007[vp] + 4.0 cpd00067[vc] + 2.0 focytc_6[vp] --> cpd00001[vp] + 2.0 cpd00067[vp] + 2.0 ficytc_6[vp]
         O2tpp__vc: cpd00007[vp] <=> cpd00007[vc]


cpd00067[vp] H+
         CBFC2pp__vc: 2.0 cpd00067[vc] + cpd16503[vp] + 2.0 ficytc_6[vp] --> 4.0 cpd00067[vp] + cpd07274[vp] + 2.0 focytc_6[vp]
         CBFCpp__vc: 2.0 cpd00067[vc] + 2.0 cpd12265[vp] + cpd16503[vp] --> 4.0 cpd00067[vp] + cpd07274[vp] + 2.0 cpd12239[vp]
         rxn05312__vc: cpd00009[vp] + cpd00067[vp] <=> cpd00009[vc] + cpd00067[vc]
         rxn05602__vc: cpd00067[vp] + cpd00159[vp] <=> cpd00067[vc] + cpd00159[vc]
         H+tex__vc: cpd00067[e] <=> cpd00067[vp]
         NDH1_2p__vc: cpd00004[vc] + 4.0 cpd00067[vc] + cpd07274[vp] --> cpd00003[vc] + 3.0 cpd00067[vp] + cpd16503[vp]
         rxn05209__vc: cpd00067[vc] + cpd00971[vp] <=> cpd00067[vp] + cpd00971[vc]
         CYO1b2pp_syn__vc: 0.5 cpd00007[vp] + 4.0 cpd00067[vc] + 2.0 cpd12239[vp] --> cpd00001[vp] + 2.0 cpd00067[vp] + 2.0 cpd12265[vp]
         NDH1_4pp__vc: cpd00001[vc] + cpd00005[vc] + cpd00011[vp] + 3.0 cpd00067[vc] + cpd07274[vp] --> cpd00006[vc] + 3.0 cpd00067[vp] + cpd00242[vc] + cpd16503[vp]
         NDH1_1p__vc: cpd00005[vc] + 4.0 cpd00067[vc] + cpd07274[vp] --> cpd00006[vc] + 3.0 cpd00067[vp] + cpd16503[vp]
         THD2__vc: cpd00004[vc] + cpd00006[vc] + 2.0 cpd00067[vp] --> cpd00003[vc] + cpd00005[vc] + 2.0 cpd00067[vc]
         CYO1bpp_syn__vc: 0.5 cpd00007[vp] + 4.0 cpd00067[vc] + 2.0 focytc_6[vp] --> cpd00001[vp] + 2.0 cpd00067[vp] + 2.0 ficytc_6[vp]
         ATP_syn_p__vc: 3.0 cpd00008[vc] + 3.0 cpd00009[vc] + 14.0 cpd00067[vp] --> 3.0 cpd00001[vc] + 3.0 cpd00002[vc] + 11.0 cpd00067[vc]


cpd07274[vp] Plastoquinone A
         CBFC2pp__vc: 2.0 cpd00067[vc] + cpd16503[vp] + 2.0 ficytc_6[vp] --> 4.0 cpd00067[vp] + cpd07274[vp] + 2.0 focytc_6[vp]
         CBFCpp__vc: 2.0 cpd00067[vc] + 2.0 cpd12265[vp] + cpd16503[vp] --> 4.0 cpd00067[vp] + cpd07274[vp] + 2.0 cpd12239[vp]
         CYTBDpp__vc: 0.5 cpd00007[vp] + cpd16503[vp] --> cpd00001[vp] + cpd07274[vp]
         NDH1_2p__vc: cpd00004[vc] + 4.0 cpd00067[vc] + cpd07274[vp] --> cpd00003[vc] + 3.0 cpd00067[vp] + cpd16503[vp]
         rxn09272_p__vc: cpd00036[vc] + cpd07274[vp] --> cpd00106[vc] + cpd16503[vp]
         NDH1_4pp__vc: cpd00001[vc] + cpd00005[vc] + cpd00011[vp] + 3.0 cpd00067[vc] + cpd07274[vp] --> cpd00006[vc] + 3.0 cpd00067[vp] + cpd00242[vc] + cpd16503[vp]
         rxn08335_p__vc: cpd00282[vc] + cpd07274[vp] --> cpd00247[vc] + cpd16503[vp]
         NDH1_1p__vc: cpd00005[vc] + 4.0 cpd00067[vc] + cpd07274[vp] --> cpd00006[vc] + 3.0 cpd00067[vp] + cpd16503[vp]


cpd12239[vp] Reduced plastocyanin
         CYO1b2pp_syn__vc: 0.5 cpd00007[vp] + 4.0 cpd00067[vc] + 2.0 cpd12239[vp] --> cpd00001[vp] + 2.0 cpd00067[vp] + 2.0 cpd12265[vp]
         CBFCpp__vc: 2.0 cpd00067[vc] + 2.0 cpd12265[vp] + cpd16503[vp] --> 4.0 cpd00067[vp] + cpd07274[vp] + 2.0 cpd12239[vp]


cpd12265[vp] Oxidized plastocyanin
         CYO1b2pp_syn__vc: 0.5 cpd00007[vp] + 4.0 cpd00067[vc] + 2.0 cpd12239[vp] --> cpd00001[vp] + 2.0 cpd00067[vp] + 2.0 cpd12265[vp]
         CBFCpp__vc: 2.0 cpd00067[vc] + 2.0 cpd12265[vp] + cpd16503[vp] --> 4.0 cpd00067[vp] + cpd07274[vp] + 2.0 cpd12239[vp]


cpd16503[vp] Plastoquinol-9
         CBFC2pp__vc: 2.0 cpd00067[vc] + cpd16503[vp] + 2.0 ficytc_6[vp] --> 4.0 cpd00067[vp] + cpd07274[vp] + 2.0 focytc_6[vp]
         CBFCpp__vc: 2.0 cpd00067[vc] + 2.0 cpd12265[vp] + cpd16503[vp] --> 4.0 cpd00067[vp] + cpd07274[vp] + 2.0 cpd12239[vp]
         CYTBDpp__vc: 0.5 cpd00007[vp] + cpd16503[vp] --> cpd00001[vp] + cpd07274[vp]
         NDH1_2p__vc: cpd00004[vc] + 4.0 cpd00067[vc] + cpd07274[vp] --> cpd00003[vc] + 3.0 cpd00067[vp] + cpd16503[vp]
         rxn09272_p__vc: cpd00036[vc] + cpd07274[vp] --> cpd00106[vc] + cpd16503[vp]
         NDH1_4pp__vc: cpd00001[vc] + cpd00005[vc] + cpd00011[vp] + 3.0 cpd00067[vc] + cpd07274[vp] --> cpd00006[vc] + 3.0 cpd00067[vp] + cpd00242[vc] + cpd16503[vp]
         rxn08335_p__vc: cpd00282[vc] + cpd07274[vp] --> cpd00247[vc] + cpd16503[vp]
         NDH1_1p__vc: cpd00005[vc] + 4.0 cpd00067[vc] + cpd07274[vp] --> cpd00006[vc] + 3.0 cpd00067[vp] + cpd16503[vp]


ficytc_6[vp] Ferricytochrome c6
         CBFC2pp__vc: 2.0 cpd00067[vc] + cpd16503[vp] + 2.0 ficytc_6[vp] --> 4.0 cpd00067[vp] + cpd07274[vp] + 2.0 focytc_6[vp]
         CYO1bpp_syn__vc: 0.5 cpd00007[vp] + 4.0 cpd00067[vc] + 2.0 focytc_6[vp] --> cpd00001[vp] + 2.0 cpd00067[vp] + 2.0 ficytc_6[vp]


focytc_6[vp] Ferrocytochrome c6
         CBFC2pp__vc: 2.0 cpd00067[vc] + cpd16503[vp] + 2.0 ficytc_6[vp] --> 4.0 cpd00067[vp] + cpd07274[vp] + 2.0 focytc_6[vp]
         CYO1bpp_syn__vc: 0.5 cpd00007[vp] + 4.0 cpd00067[vc] + 2.0 focytc_6[vp] --> cpd00001[vp] + 2.0 cpd00067[vp] + 2.0 ficytc_6[vp]


hvphoton2[vp] Photosystem 2 photon
         PHOtpp2__vc: hvphoton2[vp] <=> hvphoton2[vc]
         PHOtex2__vc: hvphoton2[e] <=> hvphoton2[vp]


hvphoton1[vp] Photosystem 1 photon
         PHOtpp1__vc: hvphoton1[vp] <=> hvphoton1[vc]
         PHOtex1__vc: hvphoton1[e] <=> hvphoton1[vp]


cpd00011[vp] CO2
         NDH1_3u__vc: cpd00001[vc] + cpd00005[vc] + cpd00011[vp] + 3.0 cpd00067[vc] + cpd07274[vl] --> cpd00006[vc] + 3.0 cpd00067[vl] + cpd00242[vc] + cpd16503[vl]
         NDH1_4pp__vc: cpd00001[vc] + cpd00005[vc] + cpd00011[vp] + 3.0 cpd00067[vc] + cpd07274[vp] --> cpd00006[vc] + 3.0 cpd00067[vp] + cpd00242[vc] + cpd16503[vp]
         cpd00011excpp__vc: cpd00011[vp] <=> cpd00011[e]
         cpd00011exccc__vc: cpd00011[vc] <=> cpd00011[vp]


cpd00009[vp] Phosphate
         cpd00009excpp__vc: cpd00009[vp] <=> cpd00009[e]
         rxn05312__vc: cpd00009[vp] + cpd00067[vp] <=> cpd00009[vc] + cpd00067[vc]
         rxn05145__vc: cpd00001[vc] + cpd00002[vc] + cpd00009[vp] --> cpd00008[vc] + 2.0 cpd00009[vc] + cpd00067[vc]


cpd00048[vp] Sulfate
         cpd00048excpp__vc: cpd00048[vp] <=> cpd00048[e]
         rxn05153__vc: cpd00001[vc] + cpd00002[vc] + cpd00048[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00048[vc] + cpd00067[vc]


cpd00209[vp] Nitrate
         cpd00209excpp__vc: cpd00209[vp] <=> cpd00209[e]
         NO3abcpp__vc: cpd00001[vc] + cpd00002[vc] + cpd00209[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd00209[vc]


cpd00254[vp] Mg
         rxn05616__vc: cpd00254[vc] <=> cpd00254[vp]
         cpd00254excpp__vc: cpd00254[vp] <=> cpd00254[e]


cpd10515[vp] Fe+2
         Fe+2abc__vc: cpd00001[vc] + cpd00002[vc] + cpd10515[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd10515[vc]
         cpd10515excpp__vc: cpd10515[vp] <=> cpd10515[e]


cpd00149[vp] Co2+
         cpd00149excpp__vc: cpd00149[vp] <=> cpd00149[e]
         rxn10474__vc: cpd00149[vc] <=> cpd00149[vp]


cpd00034[vp] Zn2+
         cpd00034excpp__vc: cpd00034[vp] <=> cpd00034[e]
         Znabc__vc: cpd00001[vc] + cpd00002[vc] + cpd00034[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00034[vc] + cpd00067[vc]


cpd00058[vp] Cu2+
         rxn05528__vc: cpd00001[vc] + cpd00002[vc] + cpd00058[vc] --> cpd00008[vc] + cpd00009[vc] + cpd00058[vp] + cpd00067[vc]
         cpd00058excpp__vc: cpd00058[vp] <=> cpd00058[e]
         rxn10481__vc: cpd00001[vc] + cpd00002[vc] + cpd00058[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00058[vc] + cpd00067[vc]


cpd20863[vp] Mn2+
         cpd20863excpp__vc: cpd20863[vp] <=> cpd20863[e]
         Mn+2abc__vc: cpd00001[vc] + cpd00002[vc] + cpd20863[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd20863[vc]


cpd00063[vp] Ca2+
         rxn05513__vc: cpd00001[vc] + cpd00002[vc] + cpd00063[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00063[vc] + cpd00067[vc]
         cpd00063excpp__vc: cpd00063[vp] <=> cpd00063[e]


cpd00205[vp] K+
         cpd00205excpp__vc: cpd00205[vp] <=> cpd00205[e]
         Kabc__vc: cpd00001[vc] + cpd00002[vc] + cpd00205[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd00205[vc]
         rxn05206__vc: cpd00205[vp] <=> cpd00205[vc]


cpd00971[vp] Na+
         H2CO3_NAt_syn__vc: cpd00242[vp] + cpd00971[vp] --> cpd00242[vc] + cpd00971[vc]
         rxn05209__vc: cpd00067[vc] + cpd00971[vp] <=> cpd00067[vp] + cpd00971[vc]
         cpd00971excpp__vc: cpd00971[vp] <=> cpd00971[e]


cpd11574[vp] Molybdate
         cpd11574excpp__vc: cpd11574[vp] <=> cpd11574[e]
         rxn05619__vc: cpd00001[vc] + cpd00002[vc] + cpd11574[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd11574[vc]


cpd00027[vp] D-Glucose
         cpd00027excpp__vc: cpd00027[vp] <=> cpd00027[e]
         rxn05147__vc: cpd00001[vc] + cpd00002[vc] + cpd00027[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00027[vc] + cpd00067[vc]


cpd00053[vp] L-Glutamine
         rxn05155__vc: cpd00001[vc] + cpd00002[vc] + cpd00053[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00053[vc] + cpd00067[vc]
         cpd00053excpp__vc: cpd00053[vp] <=> cpd00053[e]


cpd00107[vp] L-Leucine
         cpd00107excpp__vc: cpd00107[vp] <=> cpd00107[e]
         rxn05161__vc: cpd00001[vc] + cpd00002[vc] + cpd00107[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd00107[vc]


cpd00118[vp] Putrescine
         rxn05163__vc: cpd00001[vc] + cpd00002[vc] + cpd00118[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd00118[vc]
         cpd00118excpp__vc: cpd00118[vp] <=> cpd00118[e]


cpd00129[vp] L-Proline
         rxn05165__vc: cpd00001[vc] + cpd00002[vc] + cpd00129[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd00129[vc]
         cpd00129excpp__vc: cpd00129[vp] <=> cpd00129[e]


cpd00156[vp] L-Valine
         rxn05168__vc: cpd00001[vc] + cpd00002[vc] + cpd00156[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd00156[vc]
         cpd00156excpp__vc: cpd00156[vp] <=> cpd00156[e]


cpd00179[vp] Maltose
         cpd00179excpp__vc: cpd00179[vp] <=> cpd00179[e]
         rxn05170__vc: cpd00001[vc] + cpd00002[vc] + cpd00179[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd00179[vc]


cpd00264[vp] Spermidine
         cpd00264excpp__vc: cpd00264[vp] <=> cpd00264[e]
         rxn05175__vc: cpd00001[vc] + cpd00002[vc] + cpd00264[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd00264[vc]


cpd00268[vp] H2S2O3
         cpd00268excpp__vc: cpd00268[vp] <=> cpd00268[e]
         rxn05176__vc: cpd00001[vc] + cpd00002[vc] + cpd00268[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd00268[vc]


cpd00322[vp] L-Isoleucine
         cpd00322excpp__vc: cpd00322[vp] <=> cpd00322[e]
         rxn05179__vc: cpd00001[vc] + cpd00002[vc] + cpd00322[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd00322[vc]


cpd03725[vp] Fe(III)dicitrate
         rxn05189__vc: cpd00001[vc] + cpd00002[vc] + cpd03725[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd03725[vc]
         cpd03725excpp__vc: cpd03725[vp] <=> cpd03725[e]


cpd00060[vp] L-Methionine
         rxn05219__vc: cpd00001[vc] + cpd00002[vc] + cpd00060[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00060[vc] + cpd00067[vc]
         cpd00060excpp__vc: cpd00060[vp] <=> cpd00060[e]


cpd00104[vp] BIOT
         rxn05223__vc: cpd00001[vc] + cpd00002[vc] + cpd00104[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd00104[vc]
         cpd00104excpp__vc: cpd00104[vp] <=> cpd00104[e]


cpd01012[vp] Cd2+
         rxn05516__vc: cpd00001[vc] + cpd00002[vc] + cpd01012[vc] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd01012[vp]
         cpd01012excpp__vc: cpd01012[vp] <=> cpd01012[e]


cpd11593[vp] ala-L-asp-L
         cpd11593excpp__vc: cpd11593[vp] <=> cpd11593[e]
         rxn05533__vc: cpd00001[vc] + cpd00002[vc] + cpd11593[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd11593[vc]


cpd00159[vp] L-Lactate
         cpd00159excpp__vc: cpd00159[vp] <=> cpd00159[e]
         rxn05602__vc: cpd00067[vp] + cpd00159[vp] <=> cpd00067[vc] + cpd00159[vc]


cpd01262[vp] Amylotriose
         cpd01262excpp__vc: cpd01262[vp] <=> cpd01262[e]
         rxn05608__vc: cpd00001[vc] + cpd00002[vc] + cpd01262[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd01262[vc]


cpd01329[vp] Maltohexaose
         rxn10174__vc: cpd00001[vc] + cpd00002[vc] + cpd01329[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd01329[vc]
         cpd01329excpp__vc: cpd01329[vp] <=> cpd01329[e]


cpd00099[vp] Cl-
         rxn10473__vc: cpd00099[vp] <=> cpd00099[vc]


cpd00242[vp] H2CO3
         H2CO3_abc__vc: cpd00001[vc] + cpd00002[vc] + cpd00242[vp] --> cpd00008[vc] + cpd00009[vc] + cpd00067[vc] + cpd00242[vc]
         H2CO3_NAt_syn__vc: cpd00242[vp] + cpd00971[vp] --> cpd00242[vc] + cpd00971[vc]
         cpd00242excpp__vc: cpd00242[vp] <=> cpd00242[e]


cpd00013[vp] cpd00013[p]
         cpd00013excpp__vc: cpd00013[vp] --> cpd00013[e]
         cpd00013exccc__vc: cpd00013[vc] <=> cpd00013[vp]


cpd11640[vp] H2
         cpd11640excpp_vc: cpd11640[vp] <=> cpd11640[e]
         cpd11640exccc_vc: cpd11640[vc] <=> cpd11640[vp]


[ ]:

[ ]:

[633]:
#model_full_mapped.summary()
#0.18240098144906972
#cpd00242_e0        EX_cpd00242[e]  8.486
#hvphoton1_e0       EX_PHO1 61.35
#hvphoton2_e0       EX_PHO2 51.03
sol = cobra.flux_analysis.pfba(model_full_mapped)
[629]:
sol.fluxes.to_csv('/home/fliu/workspace/data/sbml/iAnC892/solution_wt.csv')
[733]:
model_full_json = None
with open('/home/fliu/workspace/data/sbml/iAnC892/iAnC892.json', 'r') as fh:
    model_full_json = json.load(fh)
[734]:
%run /home/fliu/workspace/data/sbml/iAnC892/tools.py
[735]:
model_full_json_copy = copy.deepcopy(model_full_json)
[736]:
MyIntegrator.rename_compound('hvphoton1[vp]', 'cpd11632[e]', model_full_json_copy)
MyIntegrator.rename_compound('hvphoton1[hp]', 'cpd11632[e]', model_full_json_copy)
MyIntegrator.rename_compound('hvphoton2[vp]', 'cpd11632[e]', model_full_json_copy)
MyIntegrator.rename_compound('hvphoton1[vc]', 'cpd11632[vc]', model_full_json_copy)
MyIntegrator.rename_compound('hvphoton1[hc]', 'cpd11632[hc]', model_full_json_copy)
MyIntegrator.rename_compound('hvphoton2[vc]', 'cpd11632[vc]', model_full_json_copy)
MyIntegrator.delete_reaction('PHOtex1__vc', model_full_json_copy)
MyIntegrator.delete_reaction('PHOtex1__hc', model_full_json_copy)
MyIntegrator.delete_reaction('PHOtex2__vc', model_full_json_copy)
MyIntegrator.delete_reaction('EX_PHO2', model_full_json_copy)
MyIntegrator.delete_reaction('EX_PHO1', model_full_json_copy)
MyIntegrator.rename_compound('cpd00011[hp]', 'cpd00011[e]', model_full_json_copy)
MyIntegrator.rename_compound('cpd00011[vp]', 'cpd00011[e]', model_full_json_copy)
MyIntegrator.delete_reaction('cpd00011excpp__vc', model_full_json_copy)
MyIntegrator.delete_reaction('cpd00011excpp__hc', model_full_json_copy)
MyIntegrator.delete_reaction('EX_cpd00011[e]', model_full_json_copy)
[771]:
remove_periplasm_rename = {
    'cpd07274[hp]': 'cpd07274[hc]',
    'cpd16503[hp]': 'cpd16503[hc]',
    'ficytc_6[hp]': 'ficytc_6[hc]',
    'focytc_6[hp]': 'focytc_6[hc]',
    'cpd12239[hp]': 'cpd12239[hc]',
    'cpd12265[hp]': 'cpd12265[hc]',
    'cpd07274[vp]': 'cpd07274[vc]',
    'cpd16503[vp]': 'cpd16503[vc]',
    'cpd12239[vp]': 'cpd12239[vc]',
    'cpd12265[vp]': 'cpd12265[vc]',
    'ficytc_6[vp]': 'ficytc_6[vc]',
    'focytc_6[vp]': 'focytc_6[vc]'
}
for i in remove_periplasm_rename:
    MyIntegrator.rename_compound(i, remove_periplasm_rename[i], model_full_json_copy)
[ ]:

[737]:
dups = MyIntegrator.dups(model_full_json_copy)
print(dups.keys())
deleted = MyIntegrator.filter_dups(model_full_json_copy)
print(len(deleted))
dups = MyIntegrator.dups(model_full_json_copy)
print(dups.keys())
dict_keys(['cpd11632[vc]', 'cpd11632[e]'])
3
dict_keys([])
[738]:
integrate = MyIntegrator(model_full_json_copy)
[739]:
model_full_json_mapped = integrate.integrate_full_model_to_seed()
EX_PHO2
EX_PHO1
suc_vc_hc_exch
glu_vc_hc_exch
akg_vc_hc_exch
gln_vc_hc_exch
cpd11640exccc_hc
cpd11640excpp_hc
cpd11640exccc_vc
cpd11640excpp_vc
[ ]:

[ ]:

[ ]:

[709]:
list(filter(lambda x: x[1] == 'hvphoton1_e0', integrate.compound_rename.items()))
[709]:
[('hvphoton1[e]', 'hvphoton1_e0')]
[740]:
from modelseedpy.core.msmodel import get_cmp_token
ids = set()
for rxn_from in integrate.reaction_rename:
    rxn_to = integrate.reaction_rename[rxn_from]
    if rxn_to in ids:
        print('!')
    ids.add(rxn_to)
    integrate.data_reactions[rxn_from]['id'] = rxn_to
[ ]:

[744]:
import math
data_metabolites = dict(map(lambda x: (x['id'], x), model_full_json_mapped['metabolites']))
for r in model_full_json_mapped['reactions']:
    #print(r['id'])
    metabolites = list(map(lambda x: data_metabolites[x], r['metabolites']))
    indexes = set(map(lambda x: x['index'], metabolites))
    cmps = set(map(lambda x: x['compartment'][:-1], metabolites))
    rxn_cmp = get_cmp_token(cmps)
    if cmps == {'e', 'p'}:
        rxn_cmp = 'p'
    if cmps == {'c', 'k', 'p'}:
        rxn_cmp = 'k'
    if rxn_cmp is None:
        print(r['id'], cmps, rxn_cmp)
    elif len(indexes) == 1:
        suffix = rxn_cmp + list(indexes)[0]
        if not r['id'].endswith(suffix):
            #print(r['id'], suffix)
            pass
    flux = sol.fluxes[r['id']]
    if len(indexes) > 1 and math.fabs(flux) > 0:
        print(r['id'], cmps, indexes, flux)
PHOtpp1_c1 {'c', 'e'} {'1', '0'} 16.433701168825166
H+tex_c1 {'e', 'p'} {'0', '1'} 1.8604672397566566
rxn08686_c1 {'e', 'p'} {'0', '1'} -0.6301653188076215
rxn09031_c1 {'e', 'p'} {'0', '1'} 0.007060133469360138
cpd00011excpp_c1 {'e', 'p'} {'0', '1'} 0.9082375363436314
cpd00528excpp_c1 {'e', 'p'} {'1', '0'} -0.6772462674375839
cpd00009excpp_c1 {'e', 'p'} {'0', '1'} -0.007102530301648417
cpd00048excpp_c1 {'e', 'p'} {'0', '1'} -0.006401000613388471
cpd00254excpp_c1 {'e', 'p'} {'0', '1'} -0.0005122802570501466
cpd10515excpp_c1 {'e', 'p'} {'1', '0'} -0.0002548326163591996
cpd00149excpp_c1 {'e', 'p'} {'0', '1'} -5.7935855860126646e-05
cpd00034excpp_c1 {'e', 'p'} {'0', '1'} -5.395734017578539e-05
cpd00058excpp_c1 {'e', 'p'} {'0', '1'} -5.395734017578539e-05
cpd20863excpp_c1 {'e', 'p'} {'0', '1'} -5.395734017578539e-05
cpd00063excpp_c1 {'e', 'p'} {'0', '1'} -8.084697174853654e-05
cpd00205excpp_c1 {'e', 'p'} {'0', '1'} -0.0030344325960243667
cpd00971excpp_c1 {'e', 'p'} {'0', '1'} -6.749119447730253e-05
cpd11574excpp_c1 {'e', 'p'} {'0', '1'} -5.395734017578539e-05
suc_vc_hc_exch {'c'} {'1', '0'} -0.21715810373903982
glu_vc_hc_exch {'c', 'z'} {'1', '0'} -1.2313574522131312
akg_vc_hc_exch {'c'} {'1', '0'} 0.18524178733858515
gln_vc_hc_exch {'c', 'z'} {'1', '0'} 1.2313574522131312
[ ]:

[745]:
list(filter(lambda x: x[1] == 'EX_cpd0000_e0', integrate.reaction_rename.items()))
[745]:
[]
[746]:
for k in integrate.reaction_rename:
    print(k, integrate.reaction_rename[k])
    break
ATP_syn_l__vc ATP_syn_l_c0
[760]:
model_full_mapped.reactions.cpd00011excpp_c1
[760]:
Reaction identifiercpd00011excpp_c1
Namecpd00011excpp
Memory address 0x07fcb94191fd0
Stoichiometry

cpd00011_p1 <=> cpd00011_e0

CO2 <=> CO2

GPR
Lower bound-1000.0
Upper bound1000.0
[ ]:

[ ]:

[ ]:

[ ]:

[ ]:

[ ]:

[747]:
with open('/home/fliu/workspace/data/sbml/iAnC892/iAnC892_mapped.json', 'w') as fh:
    fh.write(json.dumps(model_full_json_mapped))
[343]:
model_full = cobra.io.load_json_model('/home/fliu/workspace/data/sbml/iAnC892/iAnC892.json')
[324]:
model_full.medium = {
    'EX_PHO2': 0, #Photosystem 2 photon
'EX_PHO1': 100, #Photosystem 1 photon
'EX_cpd00067[e]': 1000, #H+
'EX_cpd00001[e]': 1000, #H2O
'EX_cpd00007[e]': 1000, #O2
'EX_cpd00009[e]': 1000, #Phosphate
'EX_cpd00048[e]': 1000, #Sulfate
'EX_cpd00209[e]': 1000, #Nitrate
'EX_cpd00254[e]': 1000, #Mg
'EX_cpd10515[e]': 1000, #Fe+2
'EX_cpd00149[e]': 1000, #Co2+
'EX_cpd00034[e]': 1000, #Zn2+
'EX_cpd00058[e]': 1000, #Cu2+
'EX_cpd20863[e]': 1000, #Mn2+
'EX_cpd00063[e]': 1000, #Ca2+
'EX_cpd00205[e]': 1000, #K+
'EX_cpd00971[e]': 1000, #Na+
'EX_cpd11574[e]': 1000, #Molybdate
'EX_cpd00011[e]': 1000, #CO2
'EX_cpd00528[e]': 0, #N2
'EX_cpd00027[e]': 1000, #D-Glucose
'EX_cpd00053[e]': 1000, #L-Glutamine
'EX_cpd00107[e]': 1000, #L-Leucine
'EX_cpd00118[e]': 1000, #Putrescine
'EX_cpd00129[e]': 1000, #L-Proline
'EX_cpd00156[e]': 1000, #L-Valine
'EX_cpd00179[e]': 1000, #Maltose
'EX_cpd00264[e]': 1000, #Spermidine
'EX_cpd00268[e]': 1000, #H2S2O3
'EX_cpd00322[e]': 1000, #L-Isoleucine
'EX_cpd03725[e]': 1000, #Fe(III)dicitrate
'EX_cpd00060[e]': 1000, #L-Methionine
'EX_cpd00104[e]': 1000, #BIOT
'EX_cpd01012[e]': 1000, #Cd2+
'EX_cpd11593[e]': 1000, #ala-L-asp-L
'EX_cpd00159[e]': 1000, #L-Lactate
'EX_cpd01262[e]': 1000, #Amylotriose
'EX_cpd01329[e]': 1000, #Maltohexaose
'EX_cpd00242[e]': 1000, #H2CO3
'EX_cpd00013[e]': 1000, #cpd00013[e]
'EX_cpd11640[e]': 1000, #H2
}
model_full.summary()
[324]:

Objective

1.0 biomass_eq_33047__vc = 19.82460353465784

Uptake

Metabolite Reaction Flux C-Number C-Flux
hvphoton1[e] EX_PHO1 100 0 0.00%
cpd00007[e] EX_cpd00007[e] 325 0 0.00%
cpd00009[e] EX_cpd00009[e] 7.601 0 0.00%
cpd00013[e] EX_cpd00013[e] 74.52 0 0.00%
cpd00027[e] EX_cpd00027[e] 164.6 6 81.61%
cpd00034[e] EX_cpd00034[e] 0.0587 0 0.00%
cpd00048[e] EX_cpd00048[e] 1.315 0 0.00%
cpd00053[e] EX_cpd00053[e] 16.06 5 6.63%
cpd00058[e] EX_cpd00058[e] 0.0587 0 0.00%
cpd00060[e] EX_cpd00060[e] 5.523 5 2.28%
cpd00063[e] EX_cpd00063[e] 0.08795 0 0.00%
cpd00067[e] EX_cpd00067[e] 1000 0 0.00%
cpd00107[e] EX_cpd00107[e] 3.375 6 1.67%
cpd00118[e] EX_cpd00118[e] 0.62 4 0.20%
cpd00129[e] EX_cpd00129[e] 5.886 5 2.43%
cpd00149[e] EX_cpd00149[e] 0.06303 0 0.00%
cpd00156[e] EX_cpd00156[e] 3.8 5 1.57%
cpd00205[e] EX_cpd00205[e] 3.301 0 0.00%
cpd00254[e] EX_cpd00254[e] 0.5573 0 0.00%
cpd00264[e] EX_cpd00264[e] 0.1261 7 0.07%
cpd00322[e] EX_cpd00322[e] 7.114 6 3.53%
cpd00971[e] EX_cpd00971[e] 0.07342 0 0.00%
cpd10515[e] EX_cpd10515[e] 0.2772 0 0.00%
cpd11574[e] EX_cpd11574[e] 0.0587 0 0.00%
cpd20863[e] EX_cpd20863[e] 0.0587 0 0.00%

Secretion

Metabolite Reaction Flux C-Number C-Flux
cpd15380[hc] DM_cpd15380__hc -0.0007828 5 0.00%
cpd15380[vc] DM_cpd15380__vc -0.004324 5 0.01%
dialurate[hc] DM_dialurate__hc -3.979E-06 4 0.00%
dialurate[vc] DM_dialurate__vc -0.004324 4 0.00%
cpd00001[e] EX_cpd00001[e] -687 0 0.00%
cpd00011[e] EX_cpd00011[e] -372 1 99.99%
[301]:
base_n2_light1_2 = {
    'EX_PHO2': 100.0,
    'EX_PHO1': 100.0,
    'EX_cpd00528[e]': 10.0,
    'EX_cpd00067[e]': 1000.0,
    'EX_cpd00001[e]': 1000.0,
    'EX_cpd00009[e]': 1000.0,
    'EX_cpd00048[e]': 1000.0,
    'EX_cpd00254[e]': 1000.0,
    'EX_cpd10515[e]': 1000.0,
    'EX_cpd00149[e]': 1000.0,
    'EX_cpd00034[e]': 1000.0,
    'EX_cpd00058[e]': 1000.0,
    'EX_cpd20863[e]': 1000.0,
    'EX_cpd00063[e]': 1000.0,
    'EX_cpd00205[e]': 1000.0,
    'EX_cpd00971[e]': 1000.0,
    'EX_cpd11574[e]': 1000.0,
}
default_medium = {
    'EX_PHO2': 100.0,
    'EX_PHO1': 100.0,
    'EX_cpd00067[e]': 1000.0,
    'EX_cpd00001[e]': 1000.0,
    'EX_cpd00009[e]': 1000.0,
    'EX_cpd00048[e]': 1000.0,
    'EX_cpd00254[e]': 1000.0,
    'EX_cpd10515[e]': 1000.0,
    'EX_cpd00149[e]': 1000.0,
    'EX_cpd00034[e]': 1000.0,
    'EX_cpd00058[e]': 1000.0,
    'EX_cpd20863[e]': 1000.0,
    'EX_cpd00063[e]': 1000.0,
    'EX_cpd00205[e]': 1000.0,
    'EX_cpd00971[e]': 1000.0,
    'EX_cpd11574[e]': 1000.0,
    'EX_cpd00528[e]': 10.0,
    'EX_cpd00242[e]': 8.486
}
for k in default_medium:
    cpd = list(model_full.reactions.get_by_id(k).metabolites)[0]
    print(cpd.id, cpd.name)
hvphoton2[e] Photosystem 2 photon
hvphoton1[e] Photosystem 1 photon
cpd00067[e] H+
cpd00001[e] H2O
cpd00009[e] Phosphate
cpd00048[e] Sulfate
cpd00254[e] Mg
cpd10515[e] Fe+2
cpd00149[e] Co2+
cpd00034[e] Zn2+
cpd00058[e] Cu2+
cpd20863[e] Mn2+
cpd00063[e] Ca2+
cpd00205[e] K+
cpd00971[e] Na+
cpd11574[e] Molybdate
cpd00528[e] N2
cpd00242[e] H2CO3
[323]:
for e in model_full.exchanges:
    cpd = list(e.metabolites)[0]
    print(f"'{e.id}': 1000, #{cpd.name}")
'EX_PHO2': 1000, #Photosystem 2 photon
'EX_PHO1': 1000, #Photosystem 1 photon
'EX_cpd00067[e]': 1000, #H+
'EX_cpd00001[e]': 1000, #H2O
'EX_cpd00007[e]': 1000, #O2
'EX_cpd00009[e]': 1000, #Phosphate
'EX_cpd00048[e]': 1000, #Sulfate
'EX_cpd00209[e]': 1000, #Nitrate
'EX_cpd00254[e]': 1000, #Mg
'EX_cpd10515[e]': 1000, #Fe+2
'EX_cpd00149[e]': 1000, #Co2+
'EX_cpd00034[e]': 1000, #Zn2+
'EX_cpd00058[e]': 1000, #Cu2+
'EX_cpd20863[e]': 1000, #Mn2+
'EX_cpd00063[e]': 1000, #Ca2+
'EX_cpd00205[e]': 1000, #K+
'EX_cpd00971[e]': 1000, #Na+
'EX_cpd11574[e]': 1000, #Molybdate
'EX_cpd00011[e]': 1000, #CO2
'EX_cpd00528[e]': 1000, #N2
'EX_cpd00027[e]': 1000, #D-Glucose
'EX_cpd00053[e]': 1000, #L-Glutamine
'EX_cpd00107[e]': 1000, #L-Leucine
'EX_cpd00118[e]': 1000, #Putrescine
'EX_cpd00129[e]': 1000, #L-Proline
'EX_cpd00156[e]': 1000, #L-Valine
'EX_cpd00179[e]': 1000, #Maltose
'EX_cpd00264[e]': 1000, #Spermidine
'EX_cpd00268[e]': 1000, #H2S2O3
'EX_cpd00322[e]': 1000, #L-Isoleucine
'EX_cpd03725[e]': 1000, #Fe(III)dicitrate
'EX_cpd00060[e]': 1000, #L-Methionine
'EX_cpd00104[e]': 1000, #BIOT
'EX_cpd01012[e]': 1000, #Cd2+
'EX_cpd11593[e]': 1000, #ala-L-asp-L
'EX_cpd00159[e]': 1000, #L-Lactate
'EX_cpd01262[e]': 1000, #Amylotriose
'EX_cpd01329[e]': 1000, #Maltohexaose
'EX_cpd00242[e]': 1000, #H2CO3
'EX_cpd00013[e]': 1000, #cpd00013[e]
'EX_cpd11640[e]': 1000, #H2
[312]:
import copy
for e in model_full.exchanges:
    if e.id not in base_n2_light1_2:
        cpd = list(e.metabolites)[0]
        m = copy.deepcopy(base_n2_light1_2)
        m.update({'EX_cpd00007[e]': 1000})
        m.update({e.id: 1})
        model_full.medium = m
        v = model_full.slim_optimize()
        print(e.id, cpd.name, v)
EX_cpd00007[e] O2 nan
EX_cpd00209[e] Nitrate nan
EX_cpd00011[e] CO2 0.005403764017101146
EX_cpd00027[e] D-Glucose 0.12362258410257106
EX_cpd00053[e] L-Glutamine 0.09997882008547625
EX_cpd00107[e] L-Leucine nan
EX_cpd00118[e] Putrescine nan
EX_cpd00129[e] L-Proline nan
EX_cpd00156[e] L-Valine nan
EX_cpd00179[e] Maltose nan
EX_cpd00264[e] Spermidine nan
EX_cpd00268[e] H2S2O3 nan
EX_cpd00322[e] L-Isoleucine nan
EX_cpd03725[e] Fe(III)dicitrate nan
EX_cpd00060[e] L-Methionine nan
EX_cpd00104[e] BIOT nan
EX_cpd01012[e] Cd2+ nan
EX_cpd11593[e] ala-L-asp-L nan
EX_cpd00159[e] L-Lactate nan
EX_cpd01262[e] Amylotriose nan
EX_cpd01329[e] Maltohexaose nan
EX_cpd00242[e] H2CO3 0.005403764017096219
EX_cpd00013[e] cpd00013[e] nan
EX_cpd11640[e] H2 nan
[304]:
import copy
for e in model_full.exchanges:
    if e.id not in base_n2_light1_2:
        cpd = list(e.metabolites)[0]
        m = copy.deepcopy(base_n2_light1_2)
        m.update({e.id: 1})
        model_full.medium = m
        v = model_full.slim_optimize()
        print(e.id, cpd.name, v)
EX_cpd00007[e] O2 nan
EX_cpd00209[e] Nitrate nan
EX_cpd00011[e] CO2 0.005403764017095576
EX_cpd00027[e] D-Glucose 0.12362258410257534
EX_cpd00053[e] L-Glutamine 0.09997882008547528
EX_cpd00107[e] L-Leucine nan
EX_cpd00118[e] Putrescine nan
EX_cpd00129[e] L-Proline nan
EX_cpd00156[e] L-Valine nan
EX_cpd00179[e] Maltose nan
EX_cpd00264[e] Spermidine nan
EX_cpd00268[e] H2S2O3 nan
EX_cpd00322[e] L-Isoleucine nan
EX_cpd03725[e] Fe(III)dicitrate nan
EX_cpd00060[e] L-Methionine nan
EX_cpd00104[e] BIOT nan
EX_cpd01012[e] Cd2+ nan
EX_cpd11593[e] ala-L-asp-L nan
EX_cpd00159[e] L-Lactate nan
EX_cpd01262[e] Amylotriose nan
EX_cpd01329[e] Maltohexaose nan
EX_cpd00242[e] H2CO3 0.005403764017095296
EX_cpd00013[e] cpd00013[e] nan
EX_cpd11640[e] H2 nan
[300]:
model_full.medium = default_medium
# 61.35 51.03 0.18240098144906766
sol = cobra.flux_analysis.pfba(model_full)
for r in ['ATP_syn_l__hc', 'ATP_syn_p__hc', 'ATP_syn_l__vc', 'ATP_syn_p__vc']:
    print(r, sol.fluxes[r])

model_full.summary(sol)
ATP_syn_l__hc 4.075736423833654
ATP_syn_p__hc 0.13238801433210912
ATP_syn_l__vc 11.591623093233354
ATP_syn_p__vc 1.5455133470271156
[300]:

Objective

1.0 biomass_eq_33047__vc = 0.18240098144907063

Uptake

Metabolite Reaction Flux C-Number C-Flux
hvphoton1[e] EX_PHO1 61.35 0 0.00%
hvphoton2[e] EX_PHO2 51.03 0 0.00%
cpd00009[e] EX_cpd00009[e] 0.07813 0 0.00%
cpd00034[e] EX_cpd00034[e] 0.0005935 0 0.00%
cpd00048[e] EX_cpd00048[e] 0.07041 0 0.00%
cpd00058[e] EX_cpd00058[e] 0.0005935 0 0.00%
cpd00063[e] EX_cpd00063[e] 0.0008893 0 0.00%
cpd00067[e] EX_cpd00067[e] 19.48 0 0.00%
cpd00149[e] EX_cpd00149[e] 0.0006373 0 0.00%
cpd00205[e] EX_cpd00205[e] 0.03338 0 0.00%
cpd00242[e] EX_cpd00242[e] 8.486 1 100.00%
cpd00254[e] EX_cpd00254[e] 0.005635 0 0.00%
cpd00528[e] EX_cpd00528[e] 0.6772 0 0.00%
cpd00971[e] EX_cpd00971[e] 0.0007424 0 0.00%
cpd10515[e] EX_cpd10515[e] 0.002803 0 0.00%
cpd11574[e] EX_cpd11574[e] 0.0005935 0 0.00%
cpd20863[e] EX_cpd20863[e] 0.0005935 0 0.00%

Secretion

Metabolite Reaction Flux C-Number C-Flux
cpd02791[hc] DM_cpd02791__hc -0.0001159 6 8.65%
cpd02791[vc] DM_cpd02791__vc -0.001159 6 86.46%
cpd15380[hc] DM_cpd15380__hc -3.979E-06 5 0.25%
cpd15380[vc] DM_cpd15380__vc -3.979E-05 5 2.47%
dialurate[hc] DM_dialurate__hc -3.979E-06 4 0.20%
dialurate[vc] DM_dialurate__vc -3.979E-05 4 1.98%
cpd00001[e] EX_cpd00001[e] -2.027 0 0.00%
cpd00007[e] EX_cpd00007[e] -10.28 0 0.00%
[231]:
ws = 87388 # Anabaena sp. ATCC 33047
genome = kbase.get_from_ws('GCF_001597855.1.RAST', ws)
[233]:
from modelseedpy import RastClient, MSBuilder
rast = RastClient()
rast.annotate_genome(genome)
[233]:
[{'parameters': ['-a',
   '-g',
   200,
   '-m',
   5,
   '-d',
   '/opt/patric-common/data/kmer_metadata_v2',
   '-u',
   'http://pear.mcs.anl.gov:6100/query'],
  'id': '2D3A7502-0132-11EC-BA47-A5E5BBF382BD',
  'hostname': 'pear',
  'tool_name': 'kmer_search',
  'execution_time': 1629407556.04401},
 {'tool_name': 'KmerAnnotationByFigfam',
  'execution_time': 1629407556.23076,
  'hostname': 'pear',
  'parameters': ['annotate_hypothetical_only=1',
   'dataset_name=Release70',
   'kmer_size=8'],
  'id': '2D56F4FC-0132-11EC-BA47-A5E5BBF382BD'},
 {'id': '2F2423F4-0132-11EC-BBE9-4688BCF382BD',
  'parameters': [],
  'tool_name': 'annotate_proteins_similarity',
  'hostname': 'pear',
  'execute_time': 1629407559.25314}]
[234]:
template_core = kbase.get_from_ws('CoreBacteriaTest_FIX', 82183)
[237]:
builder = MSBuilder(genome, template_core)
[238]:
model_test = builder.build('m', '0', False, False)
[277]:
model_full.reactions.ATP_syn_p_p
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
/usr/local/lib/python3.8/site-packages/cobra/core/dictlist.py in __getattr__(self, attr)
    454         try:
--> 455             return DictList.get_by_id(self, attr)
    456         except KeyError:

/usr/local/lib/python3.8/site-packages/cobra/core/dictlist.py in get_by_id(self, id)
     57         """return the element with a matching id"""
---> 58         return list.__getitem__(self, self._dict[id])
     59

KeyError: 'ATP_syn_p_p'

During handling of the above exception, another exception occurred:

AttributeError                            Traceback (most recent call last)
<ipython-input-277-93ab54e08f28> in <module>
----> 1 model_full.reactions.ATP_syn_p_p

/usr/local/lib/python3.8/site-packages/cobra/core/dictlist.py in __getattr__(self, attr)
    455             return DictList.get_by_id(self, attr)
    456         except KeyError:
--> 457             raise AttributeError("DictList has no attribute or entry %s" % attr)
    458
    459     def __dir__(self):

AttributeError: DictList has no attribute or entry ATP_syn_p_p
[262]:
genome.features.A3776_RS09565.ontology_terms
[262]:
{'RAST': ['Pyruvate decarboxylase (EC 4.1.1.1)',
  'Indole-3-pyruvate decarboxylase (EC 4.1.1.74)']}
[335]:
from cobra.core.gene import parse_gpr
expr, variables = parse_gpr("a or (b and c)")
[ ]:
import pyea
[342]:
expr.body.values
[342]:
[<_ast.Name at 0x7fcbc4c76f40>, <_ast.BoolOp at 0x7fcbc4c768e0>]
[325]:
for r in model_test.reactions:
    i = r.id
    seed_id = i[:-3]
    print(r, r.gene_reaction_rule)
    if f'{seed_id}__vc' in model_full.reactions:
        rxn_other = model_full.reactions.get_by_id(f'{seed_id}__vc')
        print(rxn_other, rxn_other.gene_reaction_rule)
    if f'{seed_id}__hc' in model_full.reactions:
        rxn_other = model_full.reactions.get_by_id(f'{seed_id}__hc')
        print(rxn_other, rxn_other.gene_reaction_rule)
    print()
rxn00549_c0: cpd00001_c0 + cpd00290_c0 --> cpd00009_c0 + cpd00072_c0 (A3776_RS07680) or (A3776_RS19020)
rxn00549__vc: cpd00001[vc] + cpd00290[vc] --> cpd00009[vc] + cpd00072[vc] A3776_RS07680 or A3776_RS19020
rxn00549__hc: cpd00001[hc] + cpd00290[hc] --> cpd00009[hc] + cpd00072[hc] A3776_RS07680 or A3776_RS19020

rxn14427_c0: 4 cpd00067_c0 + cpd00209_c0 + cpd18074_c0 --> cpd00001_c0 + 2 cpd00067_e0 + cpd00075_c0 + cpd18072_c0 (A3776_RS11430) or (A3776_RS11430)

rxn05040_c0: cpd00171_c0 --> cpd00047_c0 + cpd00067_c0 + cpd11225_c0 (A3776_RS22120)
rxn05040__vc: cpd00171[vc] --> cpd00047[vc] + cpd00067[vc] + cpd11225[vc] A3776_RS22120
rxn05040__hc: cpd00171[hc] --> cpd00047[hc] + cpd00067[hc] + cpd11225[hc] A3776_RS22120

rxn00545_c0: cpd00002_c0 + cpd00072_c0 --> cpd00008_c0 + cpd00067_c0 + cpd00290_c0 (A3776_RS16105)

rxn08977_c0: cpd00005_c0 + cpd00067_c0 + cpd15560_c0 --> cpd00006_c0 + cpd15561_c0 (A3776_RS00950)

rxn01333_c0: cpd00102_c0 + cpd00238_c0 <=> cpd00072_c0 + cpd00236_c0 (A3776_RS22325) or (A3776_RS19015) or (A3776_RS04325)
rxn01333__vc: cpd00102[vc] + cpd00238[vc] <=> cpd00072[vc] + cpd00236[vc] A3776_RS19015 or A3776_RS22325 or A3776_RS04325
rxn01333__hc: cpd00102[hc] + cpd00238[hc] <=> cpd00072[hc] + cpd00236[hc] A3776_RS19015 or A3776_RS22325 or A3776_RS04325

rxn00224_c0: cpd01476_c0 + cpd10515_c0 <=> cpd00028_c0 + 2 cpd00067_c0 (A3776_RS09410) or (A3776_RS07385)
rxn00224__vc: cpd01476[vc] + cpd10515[vc] --> cpd00028[vc] + 2.0 cpd00067[vc] A3776_RS09410 or A3776_RS07385
rxn00224__hc: cpd01476[hc] + cpd10515[hc] --> cpd00028[hc] + 2.0 cpd00067[hc] A3776_RS09410 or A3776_RS07385

rxn00256_c0: cpd00010_c0 + cpd00067_c0 + cpd00137_c0 <-- cpd00001_c0 + cpd00022_c0 + cpd00032_c0 (A3776_RS06235)
rxn00256__vc: cpd00001[vc] + cpd00022[vc] + cpd00032[vc] --> cpd00010[vc] + cpd00067[vc] + cpd00137[vc] A3776_RS06235
rxn00256__hc: cpd00001[hc] + cpd00022[hc] + cpd00032[hc] --> cpd00010[hc] + cpd00067[hc] + cpd00137[hc] A3776_RS06235

rxn00011_c0: cpd00011_c0 + cpd03049_c0 <-- cpd00020_c0 + cpd00056_c0 + cpd00067_c0 (A3776_RS09565) or (A3776_RS09185 and A3776_RS21415) or (A3776_RS15740 and A3776_RS20500)
rxn00011__vc: cpd00020[vc] + cpd00056[vc] + cpd00067[vc] --> cpd00011[vc] + cpd03049[vc] A3776_RS09185 and ( A3776_RS21415 or A3776_RS06445 )
rxn00011__hc: cpd00020[hc] + cpd00056[hc] + cpd00067[hc] --> cpd00011[hc] + cpd03049[hc] A3776_RS09185 and ( A3776_RS21415 or A3776_RS06445 )

rxn09272_c0: cpd00036_c0 + cpd15560_c0 --> cpd00106_c0 + cpd15561_c0 (A3776_RS02410) or (A3776_RS03685) or (A3776_RS21955)
rxn09272__vc: cpd00036[vc] + cpd07274[vl] --> cpd00106[vc] + cpd16503[vl] A3776_RS02410 and A3776_RS21955
rxn09272__hc: cpd00036[hc] + cpd07274[hl] --> cpd00106[hc] + cpd16503[hl] A3776_RS02410 and A3776_RS21955

rxn00747_c0: cpd00102_c0 <=> cpd00095_c0 (A3776_RS10895)
rxn00747__vc: cpd00102[vc] <=> cpd00095[vc] A3776_RS10895
rxn00747__hc: cpd00102[hc] <=> cpd00095[hc] A3776_RS10895

rxn05602_c0: cpd00067_e0 + cpd00159_e0 <=> cpd00067_c0 + cpd00159_c0 (A3776_RS08485)
rxn05602__vc: cpd00067[vp] + cpd00159[vp] <=> cpd00067[vc] + cpd00159[vc] A3776_RS08485
rxn05602__hc: cpd00067[hp] + cpd00159[hp] <=> cpd00067[hc] + cpd00159[hc] A3776_RS08485

rxn05937_c0: cpd00006_c0 + cpd00067_c0 + cpd11620_c0 --> cpd00005_c0 + cpd11621_c0 (A3776_RS06700)
rxn05937__vc: cpd00006[vc] + cpd00067[vc] + 2.0 cpd11620[vc] <=> cpd00005[vc] + 2.0 cpd11621[vc] A3776_RS06700
rxn05937__hc: cpd00006[hc] + cpd00067[hc] + 2.0 cpd11620[hc] <=> cpd00005[hc] + 2.0 cpd11621[hc] A3776_RS06700

rxn00785_c0: cpd00072_c0 + cpd00102_c0 <=> cpd00198_c0 + cpd00236_c0 (A3776_RS03700) or (A3776_RS10870) or (A3776_RS08320)
rxn00785__vc: cpd00072[vc] + cpd00102[vc] <=> cpd00198[vc] + cpd00236[vc] A3776_RS03700 or A3776_RS10870 or A3776_RS08320
rxn00785__hc: cpd00072[hc] + cpd00102[hc] <=> cpd00198[hc] + cpd00236[hc] A3776_RS03700 or A3776_RS10870 or A3776_RS08320

rxn00974_c0: cpd00137_c0 <=> cpd00001_c0 + cpd00331_c0 (A3776_RS00425)

rxn05209_c0: cpd00067_c0 + cpd00971_e0 <=> cpd00067_e0 + cpd00971_c0 (A3776_RS10835) or (A3776_RS13785) or (A3776_RS10605) or (A3776_RS09210) or (A3776_RS05940) or (A3776_RS03490) or (A3776_RS03495) or (A3776_RS10835) or (A3776_RS13785) or (A3776_RS10605) or (A3776_RS09210) or (A3776_RS05940) or (A3776_RS03480) or (A3776_RS03470) or (A3776_RS14385) or (A3776_RS15950) or (A3776_RS03475) or (A3776_RS03465) or (A3776_RS03485)
rxn05209__vc: cpd00067[vc] + cpd00971[vp] <=> cpd00067[vp] + cpd00971[vc] Unknown
rxn05209__hc: cpd00067[hc] + cpd00971[hp] <=> cpd00067[hp] + cpd00971[hc] Unknown

rxn01116_c0: cpd00171_c0 <=> cpd00198_c0 (A3776_RS21850)
rxn01116__vc: cpd00171[vc] <=> cpd00198[vc] A3776_RS21850
rxn01116__hc: cpd00171[hc] <=> cpd00198[hc] A3776_RS21850

rxn00777_c0: cpd00101_c0 <=> cpd00171_c0 (A3776_RS09340)
rxn00777__vc: cpd00101[vc] <=> cpd00171[vc] A3776_RS09340
rxn00777__hc: cpd00101[hc] <=> cpd00171[hc] A3776_RS09340

rxn00285_c0: cpd00002_c0 + cpd00010_c0 + cpd00036_c0 <=> cpd00008_c0 + cpd00009_c0 + cpd00078_c0 (A3776_RS12785 and A3776_RS12790)
rxn00285__vc: cpd00002[vc] + cpd00010[vc] + cpd00036[vc] <=> cpd00008[vc] + cpd00009[vc] + cpd00078[vc] A3776_RS12785 and A3776_RS12790
rxn00285__hc: cpd00002[hc] + cpd00010[hc] + cpd00036[hc] <=> cpd00008[hc] + cpd00009[hc] + cpd00078[hc] A3776_RS12785 and A3776_RS12790

rxn01115_c0: cpd00006_c0 + cpd00284_c0 --> cpd00005_c0 + cpd00011_c0 + cpd00171_c0 (A3776_RS16830)
rxn01115__vc: cpd00006[vc] + cpd00284[vc] --> cpd00005[vc] + cpd00011[vc] + cpd00171[vc] A3776_RS16830
rxn01115__hc: cpd00006[hc] + cpd00284[hc] --> cpd00005[hc] + cpd00011[hc] + cpd00171[hc] A3776_RS16830

rxn00147_c0: cpd00001_c0 + cpd00002_c0 + cpd00020_c0 --> cpd00009_c0 + cpd00018_c0 + cpd00061_c0 + 3 cpd00067_c0 (A3776_RS16060) or (A3776_RS01500) or (A3776_RS18135)
rxn00147__vc: cpd00001[vc] + cpd00002[vc] + cpd00020[vc] --> cpd00009[vc] + cpd00018[vc] + cpd00061[vc] + 3.0 cpd00067[vc] A3776_RS01500 or A3776_RS16060 or A3776_RS18135 or A3776_RS15970
rxn00147__hc: cpd00001[hc] + cpd00002[hc] + cpd00020[hc] --> cpd00009[hc] + cpd00018[hc] + cpd00061[hc] + 3.0 cpd00067[hc] A3776_RS01500 or A3776_RS16060 or A3776_RS18135 or A3776_RS15970

rxn01241_c0: cpd00003_c0 + cpd00449_c0 <=> cpd00004_c0 + cpd00067_c0 + cpd00213_c0 (A3776_RS19200) or (A3776_RS19200)
rxn01241__vc: cpd00003[vc] + cpd00449[vc] <=> cpd00004[vc] + cpd00067[vc] + cpd00213[vc] A3776_RS19200
rxn01241__hc: cpd00003[hc] + cpd00449[hc] <=> cpd00004[hc] + cpd00067[hc] + cpd00213[hc] A3776_RS19200

rxn01187_c0: cpd00009_c0 + cpd00198_c0 --> cpd00001_c0 + cpd00102_c0 + cpd00196_c0 (A3776_RS22340)
rxn01187__vc: cpd00009[vc] + cpd00198[vc] --> cpd00001[vc] + cpd00102[vc] + cpd00196[vc] A3776_RS22340
rxn01187__hc: cpd00009[hc] + cpd00198[hc] --> cpd00001[hc] + cpd00102[hc] + cpd00196[hc] A3776_RS22340

rxn00122_c0: cpd00002_c0 + cpd00050_c0 --> cpd00012_c0 + cpd00015_c0 (A3776_RS01880)
rxn00122__vc: cpd00002[vc] + cpd00050[vc] --> cpd00012[vc] + cpd00015[vc] A3776_RS01880
rxn00122__hc: cpd00002[hc] + cpd00050[hc] --> cpd00012[hc] + cpd00015[hc] A3776_RS01880

rxn04794_c0: cpd00010_c0 + cpd00094_c0 <=> cpd00047_c0 + cpd00086_c0 (A3776_RS06860)

rxn00543_c0: cpd00003_c0 + cpd00363_c0 <=> cpd00004_c0 + cpd00067_c0 + cpd00071_c0 (A3776_RS09485) or (A3776_RS06850)
rxn00543__vc: cpd00004[vc] + cpd00067[vc] + cpd00071[vc] --> cpd00003[vc] + cpd00363[vc] A3776_RS06850 or A3776_RS09485
rxn00543__hc: cpd00004[hc] + cpd00067[hc] + cpd00071[hc] --> cpd00003[hc] + cpd00363[hc] A3776_RS06850 or A3776_RS09485

rxn00506_c0: cpd00001_c0 + cpd00003_c0 + cpd00071_c0 --> cpd00004_c0 + cpd00029_c0 + 2 cpd00067_c0 (A3776_RS19000) or (A3776_RS02000) or (A3776_RS06130)
rxn00506__vc: cpd00004[vc] + cpd00029[vc] + 2.0 cpd00067[vc] --> cpd00001[vc] + cpd00003[vc] + cpd00071[vc] A3776_RS02000 or A3776_RS19000
rxn00506__hc: cpd00004[hc] + cpd00029[hc] + 2.0 cpd00067[hc] --> cpd00001[hc] + cpd00003[hc] + cpd00071[hc] A3776_RS02000 or A3776_RS19000

rxn00225_c0: cpd00002_c0 + cpd00029_c0 <=> cpd00008_c0 + cpd00196_c0 (A3776_RS22320)
rxn00225__vc: cpd00002[vc] + cpd00029[vc] --> cpd00008[vc] + cpd00196[vc] A3776_RS22320
rxn00225__hc: cpd00002[hc] + cpd00029[hc] --> cpd00008[hc] + cpd00196[hc] A3776_RS22320

rxn05145_c0: cpd00001_c0 + cpd00002_c0 + cpd00009_e0 --> cpd00008_c0 + 2 cpd00009_c0 + cpd00067_c0 (A3776_RS18750) or (A3776_RS05535) or (A3776_RS21700) or (A3776_RS20835) or (A3776_RS00795) or (A3776_RS15490) or (A3776_RS15165) or (A3776_RS15495) or (A3776_RS15160) or (A3776_RS15500) or (A3776_RS15155) or (A3776_RS15505) or (A3776_RS15170) or (A3776_RS02990) or (A3776_RS15485)
rxn05145__vc: cpd00001[vc] + cpd00002[vc] + cpd00009[vp] --> cpd00008[vc] + 2.0 cpd00009[vc] + cpd00067[vc] ( A3776_RS15160 or A3776_RS15495 ) and ( A3776_RS15155 or A3776_RS15500 or A3776_RS15505 ) and ( A3776_RS15165 or A3776_RS15490 ) and ( A3776_RS02990 or A3776_RS15170 or A3776_RS15485 )
rxn05145__hc: cpd00001[hc] + cpd00002[hc] + cpd00009[hp] --> cpd00008[hc] + 2.0 cpd00009[hc] + cpd00067[hc] ( A3776_RS15160 or A3776_RS15495 ) and ( A3776_RS15155 or A3776_RS15500 or A3776_RS15505 ) and ( A3776_RS15165 or A3776_RS15490 ) and ( A3776_RS02990 or A3776_RS15170 or A3776_RS15485 )

rxn01106_c0: cpd00482_c0 <=> cpd00169_c0 (A3776_RS15870) or (A3776_RS03430)
rxn01106__vc: cpd00482[vc] <=> cpd00169[vc] A3776_RS03430 or A3776_RS15870
rxn01106__hc: cpd00482[hc] <=> cpd00169[hc] A3776_RS03430 or A3776_RS15870

rxn01334_c0: cpd00349_c0 <=> cpd00095_c0 + cpd00236_c0 (A3776_RS20005) or (A3776_RS20480)
rxn01334__vc: cpd00349[vc] <=> cpd00095[vc] + cpd00236[vc] A3776_RS20005 or A3776_RS20480
rxn01334__hc: cpd00349[hc] <=> cpd00095[hc] + cpd00236[hc] A3776_RS20005 or A3776_RS20480

rxn00786_c0: cpd00290_c0 <=> cpd00095_c0 + cpd00102_c0 (A3776_RS20005) or (A3776_RS20480)
rxn00786__vc: cpd00290[vc] <=> cpd00095[vc] + cpd00102[vc] A3776_RS20005 or A3776_RS20480
rxn00786__hc: cpd00290[hc] <=> cpd00095[hc] + cpd00102[hc] A3776_RS20005 or A3776_RS20480

rxn00869_c0: cpd00003_c0 + cpd00010_c0 + cpd01011_c0 <-- cpd00004_c0 + cpd00067_c0 + cpd00120_c0 (A3776_RS06850)
rxn00869__vc: cpd00003[vc] + cpd00010[vc] + cpd01011[vc] <=> cpd00004[vc] + cpd00067[vc] + cpd00120[vc] A3776_RS06850
rxn00869__hc: cpd00003[hc] + cpd00010[hc] + cpd01011[hc] <=> cpd00004[hc] + cpd00067[hc] + cpd00120[hc] A3776_RS06850

rxn05627_c0: cpd00067_e0 + cpd00209_e0 --> cpd00067_c0 + cpd00209_c0 (A3776_RS11430) or (A3776_RS11430)

rxn01343_c0: cpd00002_c0 + cpd00238_c0 --> cpd00008_c0 + cpd00067_c0 + cpd00349_c0 (A3776_RS16105)
rxn01343__vc: cpd00002[vc] + cpd00238[vc] --> cpd00008[vc] + cpd00067[vc] + cpd00349[vc] A3776_RS16105
rxn01343__hc: cpd00002[hc] + cpd00238[hc] --> cpd00008[hc] + cpd00067[hc] + cpd00349[hc] A3776_RS16105

rxn05528_c0: cpd00001_c0 + cpd00002_c0 + cpd00058_c0 --> cpd00008_c0 + cpd00009_c0 + cpd00058_e0 + cpd00067_c0 (A3776_RS17745) or (A3776_RS18685) or (A3776_RS17740) or (A3776_RS12080) or (A3776_RS06845)
rxn05528__vc: cpd00001[vc] + cpd00002[vc] + cpd00058[vc] --> cpd00008[vc] + cpd00009[vc] + cpd00058[vp] + cpd00067[vc] A3776_RS06845 or A3776_RS12890 or A3776_RS17740 or A3776_RS17745
rxn05528__hc: cpd00001[hc] + cpd00002[hc] + cpd00058[hc] --> cpd00008[hc] + cpd00009[hc] + cpd00058[hp] + cpd00067[hc] A3776_RS06845 or A3776_RS12890 or A3776_RS17740 or A3776_RS17745

rxn02342_c0: cpd00213_c0 + cpd03049_c0 --> cpd00056_c0 + cpd00836_c0 (A3776_RS15740 and A3776_RS20500)

rxn00148_c0: cpd00002_c0 + cpd00020_c0 <-- cpd00008_c0 + cpd00061_c0 + cpd00067_c0 (A3776_RS05300) or (A3776_RS22330)
rxn00148__vc: cpd00008[vc] + cpd00061[vc] + cpd00067[vc] --> cpd00002[vc] + cpd00020[vc] A3776_RS05300 or A3776_RS22330 or A3776_RS16050
rxn00148__hc: cpd00008[hc] + cpd00061[hc] + cpd00067[hc] --> cpd00002[hc] + cpd00020[hc] A3776_RS05300 or A3776_RS22330 or A3776_RS16050

rxn00199_c0: cpd00067_c0 + cpd03187_c0 --> cpd00011_c0 + cpd00024_c0 (A3776_RS20350)

rxn00615_c0: cpd00002_c0 + cpd00100_c0 --> cpd00008_c0 + cpd00067_c0 + cpd00080_c0 (A3776_RS19965)
rxn00615__vc: cpd00002[vc] + cpd00100[vc] --> cpd00008[vc] + cpd00067[vc] + cpd00080[vc] A3776_RS19965
rxn00615__hc: cpd00002[hc] + cpd00100[hc] --> cpd00008[hc] + cpd00067[hc] + cpd00080[hc] A3776_RS19965

rxn00392_c0: cpd00002_c0 + cpd00220_c0 <=> cpd00008_c0 + cpd00050_c0 + cpd00067_c0 (A3776_RS01880)
rxn00392__vc: cpd00002[vc] + cpd00220[vc] --> cpd00008[vc] + cpd00050[vc] A3776_RS01880
rxn00392__hc: cpd00002[hc] + cpd00220[hc] --> cpd00008[hc] + cpd00050[hc] A3776_RS01880

rxn00083_c0: cpd00003_c0 + cpd00005_c0 --> cpd00004_c0 + cpd00006_c0 (A3776_RS04700) or (A3776_RS04690) or (A3776_RS04695)

rxn00161_c0: cpd00006_c0 + cpd00130_c0 --> cpd00005_c0 + cpd00011_c0 + cpd00020_c0 (A3776_RS21625)
rxn00161__vc: cpd00006[vc] + cpd00130[vc] --> cpd00005[vc] + cpd00011[vc] + cpd00020[vc] A3776_RS21625
rxn00161__hc: cpd00006[hc] + cpd00130[hc] --> cpd00005[hc] + cpd00011[hc] + cpd00020[hc] A3776_RS21625

rxn00985_c0: cpd00002_c0 + cpd00141_c0 <=> cpd00008_c0 + cpd01844_c0 (A3776_RS22320)

rxn14418_c0: cpd15561_c0 + cpd18075_c0 --> 2 cpd00067_e0 + cpd15560_c0 + cpd18076_c0 (A3776_RS02530) or (A3776_RS02530) or (A3776_RS02530 and A3776_RS02525) or (A3776_RS02525)

rxn00171_c0: cpd00003_c0 + cpd00010_c0 + cpd00071_c0 <=> cpd00004_c0 + cpd00022_c0 + cpd00067_c0 (A3776_RS06850) or (A3776_RS09485) or (A3776_RS06850)
rxn00171__vc: cpd00004[vc] + cpd00022[vc] + cpd00067[vc] --> cpd00003[vc] + cpd00010[vc] + cpd00071[vc] A3776_RS06850
rxn00171__hc: cpd00004[hc] + cpd00022[hc] + cpd00067[hc] --> cpd00003[hc] + cpd00010[hc] + cpd00071[hc] A3776_RS06850

rxn14420_c0: cpd15499_c0 + cpd18075_c0 --> 2 cpd00067_e0 + cpd15500_c0 + cpd18076_c0 (A3776_RS02530) or (A3776_RS02530 and A3776_RS02525) or (A3776_RS08000)

rxn00248_c0: cpd00003_c0 + cpd00130_c0 <=> cpd00004_c0 + cpd00032_c0 + cpd00067_c0 (A3776_RS07725)
rxn00248__vc: cpd00003[vc] + cpd00130[vc] <=> cpd00004[vc] + cpd00032[vc] + cpd00067[vc] A3776_RS07725
rxn00248__hc: cpd00003[hc] + cpd00130[hc] <=> cpd00004[hc] + cpd00032[hc] + cpd00067[hc] A3776_RS07725

rxn00604_c0: cpd00006_c0 + cpd00079_c0 --> cpd00005_c0 + cpd00067_c0 + cpd00911_c0 (A3776_RS19010)
rxn00604__vc: cpd00006[vc] + cpd00079[vc] --> cpd00005[vc] + cpd00067[vc] + cpd00911[vc] A3776_RS19010
rxn00604__hc: cpd00006[hc] + cpd00079[hc] --> cpd00005[hc] + cpd00067[hc] + cpd00911[hc] A3776_RS19010

rxn00371_c0: cpd00003_c0 + cpd00047_c0 --> cpd00004_c0 + cpd00011_c0 (A3776_RS10715)

rxn01100_c0: cpd00002_c0 + cpd00169_c0 <=> cpd00008_c0 + cpd00203_c0 (A3776_RS01285)
rxn01100__vc: cpd00002[vc] + cpd00169[vc] <=> cpd00008[vc] + cpd00203[vc] A3776_RS01285
rxn01100__hc: cpd00002[hc] + cpd00169[hc] <=> cpd00008[hc] + cpd00203[hc] A3776_RS01285

rxn00216_c0: cpd00002_c0 + cpd00027_c0 <=> cpd00008_c0 + cpd00067_c0 + cpd00079_c0 (A3776_RS11205)
rxn00216__vc: cpd00002[vc] + cpd00027[vc] --> cpd00008[vc] + cpd00067[vc] + cpd00079[vc] A3776_RS02165 or A3776_RS03075 or A3776_RS11205
rxn00216__hc: cpd00002[hc] + cpd00027[hc] --> cpd00008[hc] + cpd00067[hc] + cpd00079[hc] A3776_RS02165 or A3776_RS03075 or A3776_RS11205

rxn08655_c0: cpd00139_c0 + cpd15560_c0 --> cpd00040_c0 + cpd15561_c0 (A3776_RS17185 and A3776_RS17180 and A3776_RS21160)

rxn00175_c0: cpd00002_c0 + cpd00010_c0 + cpd00029_c0 --> cpd00012_c0 + cpd00018_c0 + cpd00022_c0 + cpd00067_c0 (A3776_RS18320)
rxn00175__vc: cpd00002[vc] + cpd00010[vc] + cpd00029[vc] --> cpd00012[vc] + cpd00018[vc] + cpd00022[vc] + cpd00067[vc] A3776_RS18320
rxn00175__hc: cpd00002[hc] + cpd00010[hc] + cpd00029[hc] --> cpd00012[hc] + cpd00018[hc] + cpd00022[hc] + cpd00067[hc] A3776_RS18320

rxn00763_c0: cpd00003_c0 + cpd00100_c0 <=> cpd00004_c0 + cpd00067_c0 + cpd00448_c0 (A3776_RS09485) or (A3776_RS06850)
rxn00763__vc: cpd00004[vc] + cpd00067[vc] + cpd00448[vc] --> cpd00003[vc] + cpd00100[vc] A3776_RS01770 or A3776_RS06850 or A3776_RS09485
rxn00763__hc: cpd00004[hc] + cpd00067[hc] + cpd00448[hc] --> cpd00003[hc] + cpd00100[hc] A3776_RS01770 or A3776_RS06850 or A3776_RS09485

rxn01476_c0: cpd00001_c0 + cpd00911_c0 --> cpd00067_c0 + cpd00284_c0 (A3776_RS11870)
rxn01476__vc: cpd00001[vc] + cpd00911[vc] --> cpd00067[vc] + cpd00284[vc] A3776_RS11870
rxn01476__hc: cpd00001[hc] + cpd00911[hc] --> cpd00067[hc] + cpd00284[hc] A3776_RS11870

rxn05625_c0: cpd00067_e0 + cpd00075_e0 <=> cpd00067_c0 + cpd00075_c0 (A3776_RS11430) or (A3776_RS11430)

rxn06493_c0: cpd00003_c0 + cpd12225_c0 <=> cpd00004_c0 + cpd00067_c0 + cpd12005_c0 (A3776_RS19200) or (A3776_RS14650 and A3776_RS14655) or (A3776_RS14655)
rxn06493__vc: cpd00003[vc] + cpd12225[vc] <=> cpd00004[vc] + cpd00067[vc] + cpd12005[vc] A3776_RS19200
rxn06493__hc: cpd00003[hc] + cpd12225[hc] <=> cpd00004[hc] + cpd00067[hc] + cpd12005[hc] A3776_RS19200

rxn01388_c0: cpd00260_c0 <=> cpd00001_c0 + cpd00331_c0 (A3776_RS00425)

rxn00459_c0: cpd00482_c0 <=> cpd00001_c0 + cpd00061_c0 (A3776_RS22110)
rxn00459__vc: cpd00482[vc] <=> cpd00001[vc] + cpd00061[vc] A3776_RS22110
rxn00459__hc: cpd00482[hc] <=> cpd00001[hc] + cpd00061[hc] A3776_RS22110

rxn01275_c0: cpd00002_c0 + cpd00222_c0 --> cpd00008_c0 + cpd00067_c0 + cpd00284_c0 (A3776_RS23010)
rxn01275__vc: cpd00002[vc] + cpd00222[vc] --> cpd00008[vc] + cpd00067[vc] + cpd00284[vc] A3776_RS23010
rxn01275__hc: cpd00002[hc] + cpd00222[hc] --> cpd00008[hc] + cpd00067[hc] + cpd00284[hc] A3776_RS23010

rxn01871_c0: cpd00022_c0 + cpd00449_c0 <-- cpd00010_c0 + cpd00836_c0 (A3776_RS19785)
rxn01871__vc: cpd00022[vc] + cpd00449[vc] <=> cpd00010[vc] + cpd00836[vc] A3776_RS19785
rxn01871__hc: cpd00022[hc] + cpd00449[hc] <=> cpd00010[hc] + cpd00836[hc] A3776_RS19785

rxn01870_c0: cpd00802_c0 <=> cpd00095_c0 + cpd00448_c0 (A3776_RS20480)
rxn01870__vc: cpd00802[vc] <=> cpd00095[vc] + cpd00448[vc] A3776_RS20005 or A3776_RS20480
rxn01870__hc: cpd00802[hc] <=> cpd00095[hc] + cpd00448[hc] A3776_RS20005 or A3776_RS20480

rxn01200_c0: cpd00102_c0 + cpd00238_c0 <=> cpd00101_c0 + cpd00198_c0 (A3776_RS03700) or (A3776_RS10870) or (A3776_RS08320)
rxn01200__vc: cpd00102[vc] + cpd00238[vc] <=> cpd00101[vc] + cpd00198[vc] A3776_RS03700 or A3776_RS10870 or A3776_RS08320
rxn01200__hc: cpd00102[hc] + cpd00238[hc] <=> cpd00101[hc] + cpd00198[hc] A3776_RS03700 or A3776_RS10870 or A3776_RS08320

rxn14419_c0: 0.5 cpd00007_c0 + 4 cpd00067_c0 + cpd18076_c0 --> cpd00001_c0 + 2 cpd00067_e0 + cpd18075_c0 (A3776_RS02530) or (A3776_RS02530) or (A3776_RS02530 and A3776_RS02525) or (A3776_RS02525)

rxn00548_c0: cpd00009_c0 + cpd00072_c0 <=> cpd00001_c0 + cpd00196_c0 + cpd00236_c0 (A3776_RS22340)
rxn00548__vc: cpd00009[vc] + cpd00072[vc] --> cpd00001[vc] + cpd00196[vc] + cpd00236[vc] A3776_RS09675 or A3776_RS22340
rxn00548__hc: cpd00009[hc] + cpd00072[hc] --> cpd00001[hc] + cpd00196[hc] + cpd00236[hc] A3776_RS09675 or A3776_RS22340

rxn00558_c0: cpd00079_c0 <=> cpd00072_c0 (A3776_RS07090) or (A3776_RS07710)
rxn00558__vc: cpd00079[vc] <=> cpd00072[vc] A3776_RS07710 or A3776_RS07090
rxn00558__hc: cpd00079[hc] <=> cpd00072[hc] A3776_RS07710 or A3776_RS07090

rxn00544_c0: cpd00056_c0 + cpd00071_c0 <-- cpd03049_c0 (A3776_RS09565)

rxn00157_c0: cpd00022_c0 + cpd00047_c0 <-- cpd00010_c0 + cpd00020_c0 (A3776_RS06855) or (A3776_RS06860)
rxn00157__vc: cpd00022[vc] + cpd00047[vc] <=> cpd00010[vc] + cpd00020[vc] A3776_RS06860
rxn00157__hc: cpd00022[hc] + cpd00047[hc] <=> cpd00010[hc] + cpd00020[hc] A3776_RS06860

rxn10122_c0: cpd00004_c0 + 4.5 cpd00067_c0 + cpd15560_c0 --> cpd00003_c0 + 3.5 cpd00067_e0 + cpd15561_c0 (A3776_RS00950)

rxn00568_c0: 2 cpd00001_c0 + 3 cpd00003_c0 + cpd00013_c0 <-- 3 cpd00004_c0 + 5 cpd00067_c0 + cpd00075_c0 (A3776_RS11430)

rxn02314_c0: cpd00002_c0 + cpd00805_c0 <=> cpd00008_c0 + cpd00067_c0 + cpd02371_c0 (A3776_RS16105)

rxn03884_c0: cpd02711_c0 --> cpd00020_c0 + cpd00102_c0 (A3776_RS10780)
rxn03884__vc: cpd02711[vc] <=> cpd00020[vc] + cpd00102[vc] A3776_RS10780
rxn03884__hc: cpd02711[hc] <=> cpd00020[hc] + cpd00102[hc] A3776_RS10780

rxn08971_c0: cpd00004_c0 + cpd00067_c0 + cpd15500_c0 --> cpd00003_c0 + cpd15499_c0 (A3776_RS10740) or (A3776_RS17150) or (A3776_RS16420) or (A3776_RS02065) or (A3776_RS17155)

rxn00770_c0: cpd00002_c0 + cpd00101_c0 <=> cpd00018_c0 + cpd00067_c0 + cpd00103_c0 (A3776_RS04015)
rxn00770__vc: cpd00002[vc] + cpd00101[vc] --> cpd00018[vc] + cpd00067[vc] + cpd00103[vc] A3776_RS04015
rxn00770__hc: cpd00002[hc] + cpd00101[hc] --> cpd00018[hc] + cpd00067[hc] + cpd00103[hc] A3776_RS04015

rxn00077_c0: cpd00002_c0 + cpd00003_c0 <=> cpd00006_c0 + cpd00008_c0 + cpd00067_c0 (A3776_RS19230) or (A3776_RS06210)
rxn00077__vc: cpd00002[vc] + cpd00003[vc] --> cpd00006[vc] + cpd00008[vc] + cpd00067[vc] A3776_RS06210 or A3776_RS19230
rxn00077__hc: cpd00002[hc] + cpd00003[hc] --> cpd00006[hc] + cpd00008[hc] + cpd00067[hc] A3776_RS06210 or A3776_RS19230

rxn00251_c0: cpd00009_c0 + cpd00032_c0 + cpd00067_c0 <=> cpd00001_c0 + cpd00011_c0 + cpd00061_c0 (A3776_RS20435) or (A3776_RS07835) or (A3776_RS16425)
rxn00251__vc: cpd00001[vc] + cpd00011[vc] + cpd00061[vc] --> cpd00009[vc] + cpd00032[vc] + cpd00067[vc] A3776_RS20435 or A3776_RS07835 or A3776_RS16425
rxn00251__hc: cpd00001[hc] + cpd00011[hc] + cpd00061[hc] --> cpd00009[hc] + cpd00032[hc] + cpd00067[hc] A3776_RS20435 or A3776_RS07835 or A3776_RS16425

rxn08975_c0: cpd00004_c0 + cpd00067_c0 + cpd15560_c0 --> cpd00003_c0 + cpd15561_c0 (A3776_RS10740) or (A3776_RS17150) or (A3776_RS16420) or (A3776_RS02065) or (A3776_RS17155)

rxn00781_c0: cpd00003_c0 + cpd00009_c0 + cpd00102_c0 <=> cpd00004_c0 + cpd00067_c0 + cpd00203_c0 (A3776_RS22210) or (A3776_RS02985)
rxn00781__vc: cpd00003[vc] + cpd00009[vc] + cpd00102[vc] --> cpd00004[vc] + cpd00067[vc] + cpd00203[vc] A3776_RS02985 or A3776_RS22335
rxn00781__hc: cpd00003[hc] + cpd00009[hc] + cpd00102[hc] --> cpd00004[hc] + cpd00067[hc] + cpd00203[hc] A3776_RS02985 or A3776_RS22335

rxn08656_c0: cpd00139_c0 + cpd15500_c0 --> cpd00040_c0 + cpd15499_c0 (A3776_RS17185 and A3776_RS17180 and A3776_RS21160)

rxn00762_c0: cpd00003_c0 + cpd00100_c0 <=> cpd00004_c0 + cpd00067_c0 + cpd00157_c0 (A3776_RS03005)
rxn00762__vc: cpd00003[vc] + cpd00100[vc] --> cpd00004[vc] + cpd00067[vc] + cpd00157[vc] A3776_RS03005
rxn00762__hc: cpd00003[hc] + cpd00100[hc] --> cpd00004[hc] + cpd00067[hc] + cpd00157[hc] A3776_RS03005

rxn01387_c0: cpd00006_c0 + cpd00260_c0 <=> cpd00005_c0 + cpd00067_c0 + cpd03187_c0 (A3776_RS20350)

rxn00799_c0: cpd00130_c0 <=> cpd00001_c0 + cpd00106_c0 (A3776_RS00630)
rxn00799__vc: cpd00130[vc] <=> cpd00001[vc] + cpd00106[vc] A3776_RS00630
rxn00799__hc: cpd00130[hc] <=> cpd00001[hc] + cpd00106[hc] A3776_RS00630

rxn08734_c0: 2 cpd00067_c0 + cpd11640_c0 + cpd15560_c0 --> 2 cpd00067_e0 + cpd15561_c0 (A3776_RS12315) or (A3776_RS02530) or (A3776_RS12320)

rxn09001_c0: 2 cpd00067_c0 + cpd00209_c0 + cpd15561_c0 --> cpd00001_c0 + 2 cpd00067_e0 + cpd00075_c0 + cpd15560_c0 (A3776_RS11430)

rxn09003_c0: 2 cpd00067_c0 + cpd00209_c0 + cpd15499_c0 --> cpd00001_c0 + 2 cpd00067_e0 + cpd00075_c0 + cpd15500_c0 (A3776_RS11430)

rxn08173_c0: cpd00008_c0 + cpd00009_c0 + 4 cpd00067_e0 <=> cpd00001_c0 + cpd00002_c0 + 3 cpd00067_c0 (A3776_RS13435 and A3776_RS10975 and A3776_RS13440 and A3776_RS13445 and A3776_RS10980 and A3776_RS13470) or (A3776_RS10825 and A3776_RS13435 and A3776_RS13440 and A3776_RS13445 and A3776_RS10980 and A3776_RS13470) or (A3776_RS13465) or (A3776_RS13450) or (A3776_RS13455) or (A3776_RS13460)

rxn09295_c0: cpd00004_c0 + cpd00006_c0 + 2 cpd00067_e0 --> cpd00003_c0 + cpd00005_c0 + 2 cpd00067_c0 (A3776_RS04690) or (A3776_RS04700) or (A3776_RS04695)

rxn05312_c0: cpd00009_e0 + cpd00067_e0 <-- cpd00009_c0 + cpd00067_c0 (A3776_RS09530) or (A3776_RS11030)
rxn05312__vc: cpd00009[vp] + cpd00067[vp] <=> cpd00009[vc] + cpd00067[vc] A3776_RS09530 or A3776_RS11030
rxn05312__hc: cpd00009[hp] + cpd00067[hp] <=> cpd00009[hc] + cpd00067[hc] A3776_RS09530 or A3776_RS11030

rxn08976_c0: cpd00004_c0 + cpd00067_c0 + cpd15352_c0 --> cpd00003_c0 + cpd15353_c0 (A3776_RS10740) or (A3776_RS17150) or (A3776_RS16420) or (A3776_RS02065) or (A3776_RS17155)

rxn00507_c0: cpd00001_c0 + cpd00006_c0 + cpd00071_c0 --> cpd00005_c0 + cpd00029_c0 + 2.0 cpd00067_c0 (A3776_RS06600) or (A3776_RS04425)

rxn00612_c0: cpd00006_c0 + cpd00080_c0 <=> cpd00005_c0 + cpd00067_c0 + cpd00095_c0 (A3776_RS22795)
rxn00612__vc: cpd00005[vc] + cpd00067[vc] + cpd00095[vc] --> cpd00006[vc] + cpd00080[vc] A3776_RS22795
rxn00612__hc: cpd00005[hc] + cpd00067[hc] + cpd00095[hc] --> cpd00006[hc] + cpd00080[hc] A3776_RS22795

rxn00206_c0: 2.0 cpd00067_c0 + 2.0 cpd00532_c0 <-- cpd00007_c0 + cpd00025_c0 (A3776_RS09260) or (A3776_RS01410)
rxn00206__vc: 2.0 cpd00067[vc] + 2.0 cpd00532[vc] --> cpd00007[vc] + cpd00025[vc] A3776_RS01410 or A3776_RS09260
rxn00206__hc: 2.0 cpd00067[hc] + 2.0 cpd00532[hc] --> cpd00007[hc] + cpd00025[hc] A3776_RS01410 or A3776_RS09260

rxn01834_c0: cpd02182_c0 <=> cpd00042_c0 + cpd00428_c0 (A3776_RS02965) or (A3776_RS22105)
rxn01834__vc: cpd02182[vc] <=> cpd00042[vc] + cpd00428[vc] A3776_RS22105 or A3776_RS02965
rxn01834__hc: cpd02182[hc] <=> cpd00042[hc] + cpd00428[hc] A3776_RS22105 or A3776_RS02965

rxn05466_c0: cpd00013_e0 <=> cpd00013_c0 (A3776_RS13855) or (A3776_RS13890) or (A3776_RS13860)

rxn01274_c0: cpd00001_c0 + cpd02182_c0 --> cpd00042_c0 + cpd00067_c0 + cpd00221_c0 (A3776_RS08720)
rxn01274__vc: cpd00001[vc] + cpd02182[vc] --> cpd00042[vc] + cpd00067[vc] + cpd00221[vc] A3776_RS08720 or A3776_RS12840 or A3776_RS16165
rxn01274__hc: cpd00001[hc] + cpd02182[hc] --> cpd00042[hc] + cpd00067[hc] + cpd00221[hc] A3776_RS08720 or A3776_RS12840 or A3776_RS16165

rxn00611_c0: cpd00003_c0 + cpd00080_c0 <=> cpd00004_c0 + cpd00067_c0 + cpd00095_c0 (A3776_RS22795)
rxn00611__vc: cpd00004[vc] + cpd00067[vc] + cpd00095[vc] --> cpd00003[vc] + cpd00080[vc] A3776_RS22795
rxn00611__hc: cpd00004[hc] + cpd00067[hc] + cpd00095[hc] --> cpd00003[hc] + cpd00080[hc] A3776_RS22795

rxn05467_c0: cpd00011_e0 <=> cpd00011_c0

rxn05488_c0: cpd00029_e0 + cpd00067_e0 <=> cpd00029_c0 + cpd00067_c0

rxn05468_c0: cpd00007_e0 --> cpd00007_c0

rxn05559_c0: cpd00047_e0 + cpd00067_e0 <=> cpd00047_c0 + cpd00067_c0

rxn05319_c0: cpd00001_e0 <=> cpd00001_c0

rxn05469_c0: cpd00020_e0 + cpd00067_e0 <=> cpd00020_c0 + cpd00067_c0

rxn08428_c0: cpd00363_c0 <=> cpd00363_e0

rxn08691_c0: cpd11640_c0 <=> cpd11640_e0

rxn08350_c0: cpd00067_e0 + cpd00221_e0 --> cpd00067_c0 + cpd00221_c0

EX_cpd00067_e0: cpd00067_e0 <=>

EX_cpd00159_e0: cpd00159_e0 <=>

EX_cpd00971_e0: cpd00971_e0 <=>

EX_cpd00009_e0: cpd00009_e0 <=>

EX_cpd00209_e0: cpd00209_e0 <=>

EX_cpd00058_e0: cpd00058_e0 <=>

EX_cpd00075_e0: cpd00075_e0 <=>

EX_cpd00013_e0: cpd00013_e0 <=>

EX_cpd00011_e0: cpd00011_e0 <=>

EX_cpd00029_e0: cpd00029_e0 <=>

EX_cpd00007_e0: cpd00007_e0 <=>

EX_cpd00047_e0: cpd00047_e0 <=>

EX_cpd00001_e0: cpd00001_e0 <=>

EX_cpd00020_e0: cpd00020_e0 <=>

EX_cpd00363_e0: cpd00363_e0 <=>

EX_cpd11640_e0: cpd11640_e0 <=>

EX_cpd00221_e0: cpd00221_e0 <=>

bio1: 41.257 cpd00001_c0 + 41.257 cpd00002_c0 + 3.547 cpd00003_c0 + 1.8225 cpd00005_c0 + 2.8328 cpd00020_c0 + 3.7478 cpd00022_c0 + 1.0789 cpd00024_c0 + 1.7867 cpd00032_c0 + 0.5191 cpd00061_c0 + 0.0709 cpd00072_c0 + 0.205 cpd00079_c0 + 0.8977 cpd00101_c0 + 0.129 cpd00102_c0 + 1.496 cpd00169_c0 + 0.8977 cpd00236_c0 --> 3.547 cpd00004_c0 + 1.8225 cpd00006_c0 + 41.257 cpd00008_c0 + 41.257 cpd00009_c0 + 3.7478 cpd00010_c0 + 46.6265 cpd00067_c0 + cpd11416_c0

bio2: 41.257 cpd00001_c0 + 41.257 cpd00002_c0 --> 41.257 cpd00008_c0 + 41.257 cpd00009_c0 + 46.6265 cpd00067_c0

SK_cpd11416_c0: cpd11416_c0 -->

[ ]: