Welcome to Atlas v1.0 documentation!¶
Atlas is a small software developed to use simple text files that encode biological networks and write Rule-Based Models (RBMs). Atlas writes rules and others model components for the PySB python package PySB, PMID 23423320. The RBMs could be simulated within PySB with NFsim, PMID 26556387 (within the BioNetGen2 software, PMID 27402907), KaSim (KaSim, PMID 29950016). Models could be exported to text files in BioNetGen (BioNetGenLanguage) or kappa language (Kappa) for further calibration (BioNetFit, PMID 26556387 or pleione, PMID 31641245) and analysis (sterope for parameter sensibility and alcyone for parameter uncertainty).
Installation¶
There are two different ways to install Atlas:
Install Atlas natively (Recommended).
OR
Clone the Github repository. If you are familiar with git, Atlas can be cloned and the respective folder added to the python path. Further details are below.
Note
Need Help? If you run into any problems with installation, please visit our chat room: https://gitter.im/glucksfall/pleiades
Option 1: Install Atlas natively on your computer¶
The recommended approach is to use system tools, or install them if necessary. To install python packages, you could use pip, or download the package from the python package index.
Install with system tools
With pip, you need to execute and Atlas will be installed on
$HOME/.local/lib/python3.6/site-packages
folder or similar.pip3 install atlas_rbm --user
If you have system rights, you could install Atlas for all users with
sudo -H pip3 install atlas_rbm
Download from the python package index
Alternatively, you could download the package (useful when pip fails to download the package because of lack of SSL libraries) and then install with pip. For instance:
wget https://files.pythonhosted.org/packages/ec/ed/8b94e0a29f69a24ddb18ba4a4e6463d3ecede308576774e86baf6a84b998/atlas_rbm-1.0.2-py3-none-any.whl pip3 install atlas_rbm-1.0.2-py3-none-any.whl --user
Note
Why Python3?: Atlas is intended to be used with >=python3.4 because python2.7 won’t receive further development past 2020, including security updates.
Note
pip, Python, and Anaconda: Be aware which pip you invoque. You could install pip3 with
sudo apt-get install python3-pip
if you have system rights, or install python3 from source, and adding<python3 path>/bin/pip3
to the path, or linking it in a directory like$HOME/bin
which is commonly added to the path at login. Also be aware that, if you installed Anaconda, pip could be linked to the Anaconda specific version of pip, which will install Atlas into Anaconda’s installation folder. Typewhich pip
orwhich pip3
to find out the source of pip, and typepython -m site
orpython3 -m site
to find out where is more likely Atlas will be installed.
Option 2: Clone the Github repository¶
Clone with git
The source code is uploaded and maintained through Github at https://github.com/networkbiolab/atlas. Therefore, you could clone the repository locally, and then add the folder to the
PYTHONPATH
. Beware that you should install the pysb package (pysb) and others packages by any means, specially the Jupyter Notebook project (https://jupyter.org).path=/opt/atlas git clone https://github.com/networkbiolab/atlas $path echo export PYTHONPATH="\$PYTHONPATH:\$path" >> $HOME/.profile
Note
Adding the path to
$HOME/.profile
allows python to find the package installation folder after each user login. Similarly, adding the path to$HOME/.bashrc
allows python to find the package after each terminal invocation. Other options include setting thePYTHONPATH
environmental variable in a sh file (see the example folder) or invokepython3 setup.py clean build install
to install Atlas as it was downloaded from the PyPI server.
Modeling¶
Atlas is a modular software with each script centered in a specific biological network
- Metabolic Networks
- Interaction Networks
- Protein-Protein Interaction Networks
- Protein-Small compounds Interaction Networks
- Protein-RNA Interaction Networks
- RNA-RNA Interaction Networks
- Transcription Factor-DNA Binding Site Interaction Networks
- Sigma Factor-Promoter Interaction Networks
- Genome Graphs
Metabolic Networks¶
Metabolic networks have four columns. The first declares a unique name for the enzyme or enzymatic complex; the second declares a unique name for the reaction; the third column lists using comma unique names for substrates; and the last row list using comma unique names for products. To declare metabolites located at the periplasm or extracellular compartments, the user should employ the prefix “PER-” and “EX-”, respectively. Use spontaneous for non-enzymatic reactions.
Examples:
GENE REACTION SUBSTRATES PRODUCTS
spontaneous LACTOSE-MUTAROTATION alpha-lactose beta-lactose
spontaneous GALACTOSE-MUTAROTATION alpha-GALACTOSE beta-GALACTOSE
spontaneous GLUCOSE-MUTAROTATION alpha-glucose beta-glucose
LACY-MONOMER TRANS-RXN-24 PER-PROTON, PER-alpha-lactose PROTON, alpha-lactose
LACY-MONOMER TRANS-RXN-24-beta PER-PROTON, PER-beta-lactose PROTON, beta-lactose
LACY-MONOMER TRANS-RXN-94 PER-PROTON, PER-MELIBIOSE PROTON, MELIBIOSE
LACY-MONOMER RXN0-7215 PER-PROTON, PER-CPD-3561 PROTON, CPD-3561
LACY-MONOMER RXN0-7217 PER-PROTON, PER-CPD-3785 PROTON, CPD-3785
LACY-MONOMER RXN-17755 PER-PROTON, PER-CPD-3801 PROTON, CPD-3801
BETAGALACTOSID-CPLX BETAGALACTOSID-RXN beta-lactose, WATER beta-GALACTOSE, beta-glucose
BETAGALACTOSID-CPLX BETAGALACTOSID-RXN-alpha alpha-lactose, WATER alpha-GALACTOSE, alpha-glucose
BETAGALACTOSID-CPLX RXN0-5363 alpha-lactose alpha-ALLOLACTOSE
BETAGALACTOSID-CPLX RXN0-5363-beta beta-lactose beta-ALLOLACTOSE
BETAGALACTOSID-CPLX ALLOLACTOSE-DEG-alpha alpha-ALLOLACTOSE alpha-GALACTOSE, alpha-glucose
BETAGALACTOSID-CPLX ALLOLACTOSE-DEG-beta beta-ALLOLACTOSE beta-GALACTOSE, beta-glucose
BETAGALACTOSID-CPLX RXN-17726 CPD-3561, WATER beta-GALACTOSE, Fructofuranose
BETAGALACTOSID-CPLX RXN0-7219 CPD-3785, WATER beta-GALACTOSE, D-ARABINOSE
GALACTOACETYLTRAN-CPLX GALACTOACETYLTRAN-RXN-galactose beta-GALACTOSE, ACETYL-COA 6-Acetyl-beta-D-Galactose, CO-A
OR
GENE REACTION SUBSTRATES PRODUCTS
spontaneous LACTOSE-MUTAROTATION alpha-lactose beta-lactose
spontaneous GALACTOSE-MUTAROTATION alpha-GALACTOSE beta-GALACTOSE
spontaneous GLUCOSE-MUTAROTATION alpha-glucose beta-glucose
lacY TRANS-RXN-24 PER-PROTON, PER-alpha-lactose PROTON, alpha-lactose
lacY TRANS-RXN-24-beta PER-PROTON, PER-beta-lactose PROTON, beta-lactose
lacY TRANS-RXN-94 PER-PROTON, PER-MELIBIOSE PROTON, MELIBIOSE
lacY RXN0-7215 PER-PROTON, PER-CPD-3561 PROTON, CPD-3561
lacY RXN0-7217 PER-PROTON, PER-CPD-3785 PROTON, CPD-3785
lacY RXN-17755 PER-PROTON, PER-CPD-3801 PROTON, CPD-3801
[lacZ,lacZ,lacZ,lacZ] BETAGALACTOSID-RXN beta-lactose, WATER beta-GALACTOSE, beta-glucose
[lacZ,lacZ,lacZ,lacZ] BETAGALACTOSID-RXN-alpha alpha-lactose, WATER alpha-GALACTOSE, alpha-glucose
[lacZ,lacZ,lacZ,lacZ] RXN0-5363 alpha-lactose alpha-ALLOLACTOSE
[lacZ,lacZ,lacZ,lacZ] RXN0-5363-beta beta-lactose beta-ALLOLACTOSE
[lacZ,lacZ,lacZ,lacZ] ALLOLACTOSE-DEG-alpha alpha-ALLOLACTOSE, WATER alpha-GALACTOSE, alpha-glucose
[lacZ,lacZ,lacZ,lacZ] ALLOLACTOSE-DEG-beta beta-ALLOLACTOSE, WATER beta-GALACTOSE, beta-glucose
[lacZ,lacZ,lacZ,lacZ] RXN-17726 CPD-3561, WATER beta-GALACTOSE, Fructofuranose
[lacZ,lacZ,lacZ,lacZ] RXN0-7219 CPD-3785, WATER beta-GALACTOSE, D-ARABINOSE
[lacA,lacA,lacA] GALACTOACETYLTRAN-RXN-galactose beta-GALACTOSE, ACETYL-COA 6-Acetyl-beta-D-Galactose, CO-A
OR
GENE REACTION SUBSTRATES PRODUCTS
spontaneous LACTOSE-MUTAROTATION alpha-lactose beta-lactose
spontaneous GALACTOSE-MUTAROTATION alpha-GALACTOSE beta-GALACTOSE
spontaneous GLUCOSE-MUTAROTATION alpha-glucose beta-glucose
lacY TRANS-RXN-24 PER-PROTON, PER-alpha-lactose PROTON, alpha-lactose
lacY TRANS-RXN-24-beta PER-PROTON, PER-beta-lactose PROTON, beta-lactose
lacY TRANS-RXN-94 PER-PROTON, PER-MELIBIOSE PROTON, MELIBIOSE
lacY RXN0-7215 PER-PROTON, PER-CPD-3561 PROTON, CPD-3561
lacY RXN0-7217 PER-PROTON, PER-CPD-3785 PROTON, CPD-3785
lacY RXN-17755 PER-PROTON, PER-CPD-3801 PROTON, CPD-3801
lacZ BETAGALACTOSID-RXN beta-lactose, WATER beta-GALACTOSE, beta-glucose
lacZ BETAGALACTOSID-RXN-alpha alpha-lactose, WATER alpha-GALACTOSE, alpha-glucose
lacZ RXN0-5363 alpha-lactose alpha-ALLOLACTOSE
lacZ RXN0-5363-beta beta-lactose beta-ALLOLACTOSE
lacZ ALLOLACTOSE-DEG-alpha alpha-ALLOLACTOSE, WATER alpha-GALACTOSE, alpha-glucose
lacZ ALLOLACTOSE-DEG-beta beta-ALLOLACTOSE, WATER beta-GALACTOSE, beta-glucose
lacZ RXN-17726 CPD-3561, WATER beta-GALACTOSE, Fructofuranose
lacZ RXN0-7219 CPD-3785, WATER beta-GALACTOSE, D-ARABINOSE
lacA GALACTOACETYLTRAN-RXN-galactose beta-GALACTOSE, ACETYL-COA 6-Acetyl-beta-D-Galactose, CO-A
Note
Visualization in Cytoscape. Transform the four-columns file into a two-columns file with the helper script “Expand metabolic network.ipynb”, paste the results in a new file, and import the network into Cytoscape. Colors and arrows remains to the user for customization.

Finally, execute the “Rules from metabolic network.ipynb” to obtain the Rules to model the defined metabolic network. The complete rule-based model can be found in the lactose folder from the Network Biology Lab GitHub repository here.
Rule('LACTOSE_MUTAROTATION',
met(name = 'alpha_lactose', loc = 'cyt') |
met(name = 'beta_lactose', loc = 'cyt'),
Parameter('fwd_LACTOSE_MUTAROTATION', 1),
Parameter('rvs_LACTOSE_MUTAROTATION', 1))
Rule('GALACTOSE_MUTAROTATION',
met(name = 'alpha_GALACTOSE', loc = 'cyt') |
met(name = 'beta_GALACTOSE', loc = 'cyt'),
Parameter('fwd_GALACTOSE_MUTAROTATION', 1),
Parameter('rvs_GALACTOSE_MUTAROTATION', 1))
Rule('GLUCOSE_MUTAROTATION',
met(name = 'alpha_glucose', loc = 'cyt') |
met(name = 'beta_glucose', loc = 'cyt'),
Parameter('fwd_GLUCOSE_MUTAROTATION', 1),
Parameter('rvs_GLUCOSE_MUTAROTATION', 1))
Rule('TRANS_RXN_24',
prot(name = 'LACY_MONOMER') +
met(name = 'PROTON', loc = 'per') +
met(name = 'alpha_lactose', loc = 'per') |
prot(name = 'LACY_MONOMER') +
met(name = 'PROTON', loc = 'cyt') +
met(name = 'alpha_lactose', loc = 'cyt'),
Parameter('fwd_TRANS_RXN_24', 1),
Parameter('rvs_TRANS_RXN_24', 1))
Rule('TRANS_RXN_24_beta',
prot(name = 'LACY_MONOMER') +
met(name = 'PROTON', loc = 'per') +
met(name = 'beta_lactose', loc = 'per') |
prot(name = 'LACY_MONOMER') +
met(name = 'PROTON', loc = 'cyt') +
met(name = 'beta_lactose', loc = 'cyt'),
Parameter('fwd_TRANS_RXN_24_beta', 1),
Parameter('rvs_TRANS_RXN_24_beta', 1))
Rule('TRANS_RXN_94',
prot(name = 'LACY_MONOMER') +
met(name = 'PROTON', loc = 'per') +
met(name = 'MELIBIOSE', loc = 'per') |
prot(name = 'LACY_MONOMER') +
met(name = 'PROTON', loc = 'cyt') +
met(name = 'MELIBIOSE', loc = 'cyt'),
Parameter('fwd_TRANS_RXN_94', 1),
Parameter('rvs_TRANS_RXN_94', 1))
Rule('RXN0_7215', prot(name = 'LACY_MONOMER') +
met(name = 'PROTON', loc = 'per') +
met(name = 'CPD_3561', loc = 'per') |
prot(name = 'LACY_MONOMER') +
met(name = 'PROTON', loc = 'cyt') +
met(name = 'CPD_3561', loc = 'cyt'),
Parameter('fwd_RXN0_7215', 1),
Parameter('rvs_RXN0_7215', 1))
Rule('RXN0_7217', prot(name = 'LACY_MONOMER') +
met(name = 'PROTON', loc = 'per') +
met(name = 'CPD_3785', loc = 'per') |
prot(name = 'LACY_MONOMER') +
met(name = 'PROTON', loc = 'cyt') +
met(name = 'CPD_3785', loc = 'cyt'),
Parameter('fwd_RXN0_7217', 1),
Parameter('rvs_RXN0_7217', 1))
Rule('RXN_17755', prot(name = 'LACY_MONOMER') +
met(name = 'PROTON', loc = 'per') +
met(name = 'CPD_3801', loc = 'per') |
prot(name = 'LACY_MONOMER') +
met(name = 'PROTON', loc = 'cyt') +
met(name = 'CPD_3801', loc = 'cyt'),
Parameter('fwd_RXN_17755', 1),
Parameter('rvs_RXN_17755', 1))
Rule('BETAGALACTOSID_RXN',
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'beta_lactose', loc = 'cyt') +
met(name = 'WATER', loc = 'cyt') |
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'beta_GALACTOSE', loc = 'cyt') +
met(name = 'beta_glucose', loc = 'cyt'),
Parameter('fwd_BETAGALACTOSID_RXN', 1),
Parameter('rvs_BETAGALACTOSID_RXN', 1))
Rule('BETAGALACTOSID_RXN_alpha',
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'alpha_lactose', loc = 'cyt') +
met(name = 'WATER', loc = 'cyt') |
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'alpha_GALACTOSE', loc = 'cyt') +
met(name = 'alpha_glucose', loc = 'cyt'),
Parameter('fwd_BETAGALACTOSID_RXN_alpha', 1),
Parameter('rvs_BETAGALACTOSID_RXN_alpha', 1))
Rule('RXN0_5363',
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'alpha_lactose', loc = 'cyt') |
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'alpha_ALLOLACTOSE', loc = 'cyt'),
Parameter('fwd_RXN0_5363', 1),
Parameter('rvs_RXN0_5363', 1))
Rule('RXN0_5363_beta',
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'beta_lactose', loc = 'cyt') |
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'beta_ALLOLACTOSE', loc = 'cyt'),
Parameter('fwd_RXN0_5363_beta', 1),
Parameter('rvs_RXN0_5363_beta', 1))
Rule('ALLOLACTOSE_DEG_alpha',
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'alpha_ALLOLACTOSE', loc = 'cyt') |
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'alpha_GALACTOSE', loc = 'cyt'),
Parameter('fwd_ALLOLACTOSE_DEG_alpha', 1),
Parameter('rvs_ALLOLACTOSE_DEG_alpha', 1))
Rule('ALLOLACTOSE_DEG_beta',
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'beta_ALLOLACTOSE', loc = 'cyt') |
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'beta_GALACTOSE', loc = 'cyt'),
Parameter('fwd_ALLOLACTOSE_DEG_beta', 1),
Parameter('rvs_ALLOLACTOSE_DEG_beta', 1))
Rule('RXN_17726',
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'CPD_3561', loc = 'cyt') +
met(name = 'WATER', loc = 'cyt') |
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'beta_GALACTOSE', loc = 'cyt') +
met(name = 'Fructofuranose', loc = 'cyt'),
Parameter('fwd_RXN_17726', 1),
Parameter('rvs_RXN_17726', 1))
Rule('RXN0_7219',
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'CPD_3785', loc = 'cyt') +
met(name = 'WATER', loc = 'cyt') |
cplx(name = 'BETAGALACTOSID_CPLX') +
met(name = 'beta_GALACTOSE', loc = 'cyt') +
met(name = 'D_ARABINOSE', loc = 'cyt'),
Parameter('fwd_RXN0_7219', 1),
Parameter('rvs_RXN0_7219', 1))
Rule('GALACTOACETYLTRAN_RXN_galactose',
cplx(name = 'GALACTOACETYLTRAN_CPLX') +
met(name = 'beta_GALACTOSE', loc = 'cyt') +
met(name = 'ACETYL_COA', loc = 'cyt') |
cplx(name = 'GALACTOACETYLTRAN_CPLX') +
met(name = '_6_Acetyl_beta_D_Galactose', loc = 'cyt') +
met(name = 'CO_A', loc = 'cyt'),
Parameter('fwd_GALACTOACETYLTRAN_RXN_galactose', 1),
Parameter('rvs_GALACTOACETYLTRAN_RXN_galactose', 1))
Note
Reversibility of Rules. Atlas writes reversible Rules for each
reaction declared in the network file. The Parameter('rvs_RuleName', 1))
must be set to zero to define an irreversible reaction.
Note
Uniqueness of Rule names. Atlas will write Rules for unique metabolic reactions. Identical names will be reported for further curation.
Note
Simulation. The model can be simulated only with the instantiation of
Monomers
and Initials
(More here).
Run Monomer+Initials+Observables from metabolic network.ipynb to obtain
automatically the necessary Monomers
and Initials
(including
proteins and enzymatic complexes).
Plotting. The model can be observed only with the instantation of
Observables
(More here).
Run Monomer+Initials+Observables from metabolic network.ipynb to obtain
automatically the all possible Observables
for metabolites.
Protein-Protein Interaction Networks¶
Protein-protein interaction (PPI) interaction networks have two columns. In any order and for any number of components, each column lists using comma the interacting proteins or protein complexes. The user should employ brackets to enclose a list of proteins that are part of a complex.
Examples:
SOURCE TARGET
BETAGALACTOSID-MONOMER BETAGALACTOSID-MONOMER
GALACTOACETYLTRAN-MONOMER GALACTOACETYLTRAN-MONOMER
OR
SOURCE TARGET
BETAGALACTOSID-MONOMER BETAGALACTOSID-MONOMER
[BETAGALACTOSID-MONOMER, BETAGALACTOSID-MONOMER] [BETAGALACTOSID-MONOMER, BETAGALACTOSID-MONOMER]
GALACTOACETYLTRAN-MONOMER GALACTOACETYLTRAN-MONOMER
GALACTOACETYLTRAN-MONOMER [GALACTOACETYLTRAN-MONOMER, GALACTOACETYLTRAN-MONOMER]
Note
Visualization in Cytoscape. Cytoscape cannot import hyper-graphs. To do so, Create simple network and right-click to embed a subnetwork in the corresponding node.

Finally, execute the “Rules from protein-protein.ipynb” to obtain the Rules to model the defined interaction network. The complete rule-based model can be found in the lactose folder from the Network Biology Lab GitHub repository here.
Rule('complex_assembly_rule_0',
prot(name = 'BETAGALACTOSID_MONOMER', up = None, dw = None) +
prot(name = 'BETAGALACTOSID_MONOMER', up = None, dw = None) |
prot(name = 'BETAGALACTOSID_MONOMER', up = 1, dw = None) %
prot(name = 'BETAGALACTOSID_MONOMER', up = None, dw = 1),
Parameter('fwd_complex_assembly_rule_0', 1),
Parameter('rvs_complex_assembly_rule_0', 0))
Rule('complex_assembly_rule_1',
prot(name = 'BETAGALACTOSID_MONOMER', up = 1, dw = None) %
prot(name = 'BETAGALACTOSID_MONOMER', up = None, dw = 1) +
prot(name = 'BETAGALACTOSID_MONOMER', up = 1, dw = None) %
prot(name = 'BETAGALACTOSID_MONOMER', up = None, dw = 1) |
prot(name = 'BETAGALACTOSID_MONOMER', up = 1, dw = None) %
prot(name = 'BETAGALACTOSID_MONOMER', up = 2, dw = 1) %
prot(name = 'BETAGALACTOSID_MONOMER', up = 3, dw = 2) %
prot(name = 'BETAGALACTOSID_MONOMER', up = None, dw = 3),
Parameter('fwd_complex_assembly_rule_1', 1),
Parameter('rvs_complex_assembly_rule_1', 0))
Rule('complex_assembly_rule_2',
prot(name = 'GALACTOACETYLTRAN_MONOMER', up = None, dw = None) +
prot(name = 'GALACTOACETYLTRAN_MONOMER', up = None, dw = None) |
prot(name = 'GALACTOACETYLTRAN_MONOMER', up = 1, dw = None) %
prot(name = 'GALACTOACETYLTRAN_MONOMER', up = None, dw = 1),
Parameter('fwd_complex_assembly_rule_2', 1),
Parameter('rvs_complex_assembly_rule_2', 0))
Rule('complex_assembly_rule_3',
prot(name = 'GALACTOACETYLTRAN_MONOMER', up = None, dw = None) +
prot(name = 'GALACTOACETYLTRAN_MONOMER', up = 1, dw = None) %
prot(name = 'GALACTOACETYLTRAN_MONOMER', up = None, dw = 1) |
prot(name = 'GALACTOACETYLTRAN_MONOMER', up = 1, dw = None) %
prot(name = 'GALACTOACETYLTRAN_MONOMER', up = 2, dw = 1) %
prot(name = 'GALACTOACETYLTRAN_MONOMER', up = None, dw = 2),
Parameter('fwd_complex_assembly_rule_3', 1),
Parameter('rvs_complex_assembly_rule_3', 0))
Note
Reversibility of Rules. Atlas writes irreversible Rules for each
reaction declared in the network file. The Parameter('rvs_RuleName', 0))
must be set to non-zero to define an reversible reaction.
Note
Uniqueness of Rule names. Atlas will write Rules with numbered names. Use only one file to model the many interactions the system has.
Note
Simulation. The model can be simulated only with the instantiation of
Monomers
and Initials
(More here).
Run Monomer+Initials+Observables from metabolic network.ipynb to obtain
automatically the necessary Monomers
and Initials
(including
proteins and enzymatic complexes). Manually add the necessary Monomers
and Initials
for non-enzymatic proteins.
Plotting. The model can be observed only with the instantation of
Observables
(More here).
Run Monomer+Initials+Observables from metabolic network.ipynb to obtain
automatically the all possible Observables
for enzymatic proteins. Other
observables for proteins should be added manually.
Protein-Small compounds Interaction Networks¶
Protein-small compound interaction networks have two columns. Similar to a PPI network, but the user should add the prefix “SMALL-” to encode a small compound that interacts with the protein or protein complex.
Examples:
SOURCE TARGET
PER-araF SMALL-PER-alpha-L-arabinofuranose
PER-araF SMALL-PER-beta-L-arabinofuranose
PER-araF SMALL-PER-alpha-L-arabinopyranose
PER-araF SMALL-PER-beta-L-arabinopyranose
[crp, crp] SMALL-CAMP
[crp, SMALL-CAMP, crp] SMALL-CAMP
[lacI, lacI] SMALL-ALLOLACTOSE
[lacI, SMALL-ALLOLACTOSE, lacI] SMALL-ALLOLACTOSE
[araG, araG] SMALL-ATP
araC SMALL-alpha-L-arabinopyranose
[araC, araC] SMALL-alpha-L-arabinopyranose
[araC, SMALL-alpha-L-arabinopyranose, araC] SMALL-alpha-L-arabinopyranose
Finally, execute the “Rules from protein-small compounds.ipynb” to obtain the Rules to model the defined interaction network. The complete rule-based model can be found in the arabinose folder from the Network Biology Lab GitHub repository here.
Rule('ProtMet_RuleAssembly_1',
prot(name = 'araF', loc = 'per', met = None, up = None, dw = None) +
met(name = 'alpha_L_arabinofuranose', loc = 'per', prot = None) |
prot(name = 'araF', loc = 'per', met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinofuranose', loc = 'per', prot = 1),
Parameter('fwd_ProtMet_RuleAssembly_1', 1),
Parameter('rvs_ProtMet_RuleAssembly_1', 1))
Rule('ProtMet_RuleAssembly_2',
prot(name = 'araF', loc = 'per', met = None, up = None, dw = None) +
met(name = 'beta_L_arabinofuranose', loc = 'per', prot = None) |
prot(name = 'araF', loc = 'per', met = 1, up = None, dw = None) %
met(name = 'beta_L_arabinofuranose', loc = 'per', prot = 1),
Parameter('fwd_ProtMet_RuleAssembly_2', 1),
Parameter('rvs_ProtMet_RuleAssembly_2', 1))
Rule('ProtMet_RuleAssembly_3',
prot(name = 'araF', loc = 'per', met = None, up = None, dw = None) +
met(name = 'alpha_L_arabinopyranose', loc = 'per', prot = None) |
prot(name = 'araF', loc = 'per', met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', loc = 'per', prot = 1),
Parameter('fwd_ProtMet_RuleAssembly_3', 1),
Parameter('rvs_ProtMet_RuleAssembly_3', 1))
Rule('ProtMet_RuleAssembly_4',
prot(name = 'araF', loc = 'per', met = None, up = None, dw = None) +
met(name = 'beta_L_arabinopyranose', loc = 'per', prot = None) |
prot(name = 'araF', loc = 'per', met = 1, up = None, dw = None) %
met(name = 'beta_L_arabinopyranose', loc = 'per', prot = 1),
Parameter('fwd_ProtMet_RuleAssembly_4', 1),
Parameter('rvs_ProtMet_RuleAssembly_4', 1))
Rule('ProtMet_RuleAssembly_5',
prot(name = 'crp', loc = 'cyt', met = None, up = None, dw = 1) %
prot(name = 'crp', loc = 'cyt', met = None, up = 1, dw = None) +
met(name = 'CAMP', loc = 'cyt', prot = None) |
prot(name = 'crp', loc = 'cyt', met = None, up = None, dw = 1) %
prot(name = 'crp', loc = 'cyt', met = 2, up = 1, dw = None) %
met(name = 'CAMP', loc = 'cyt', prot = 2),
Parameter('fwd_ProtMet_RuleAssembly_5', 1),
Parameter('rvs_ProtMet_RuleAssembly_5', 1))
Rule('ProtMet_RuleAssembly_6',
prot(name = 'crp', loc = 'cyt', met = 2, up = None, dw = 1) %
met(name = 'CAMP', loc = 'cyt', prot = 2) %
prot(name = 'crp', loc = 'cyt', met = None, up = 1, dw = None) +
met(name = 'CAMP', loc = 'cyt', prot = None) |
prot(name = 'crp', loc = 'cyt', met = 2, up = None, dw = 1) %
met(name = 'CAMP', loc = 'cyt', prot = 2) %
prot(name = 'crp', loc = 'cyt', met = 3, up = 1, dw = None) %
met(name = 'CAMP', loc = 'cyt', prot = 3),
Parameter('fwd_ProtMet_RuleAssembly_6', 1),
Parameter('rvs_ProtMet_RuleAssembly_6', 1))
Rule('ProtMet_RuleAssembly_7',
prot(name = 'lacI', loc = 'cyt', met = None, up = None, dw = 1) %
prot(name = 'lacI', loc = 'cyt', met = None, up = 1, dw = None) +
met(name = 'ALLOLACTOSE', loc = 'cyt', prot = None) |
prot(name = 'lacI', loc = 'cyt', met = None, up = None, dw = 1) %
prot(name = 'lacI', loc = 'cyt', met = 2, up = 1, dw = None) %
met(name = 'ALLOLACTOSE', loc = 'cyt', prot = 2),
Parameter('fwd_ProtMet_RuleAssembly_7', 1),
Parameter('rvs_ProtMet_RuleAssembly_7', 1))
Rule('ProtMet_RuleAssembly_8',
prot(name = 'lacI', loc = 'cyt', met = 2, up = None, dw = 1) %
met(name = 'ALLOLACTOSE', loc = 'cyt', prot = 2) %
prot(name = 'lacI', loc = 'cyt', met = None, up = 1, dw = None) +
met(name = 'ALLOLACTOSE', loc = 'cyt', prot = None) |
prot(name = 'lacI', loc = 'cyt', met = 2, up = None, dw = 1) %
met(name = 'ALLOLACTOSE', loc = 'cyt', prot = 2) %
prot(name = 'lacI', loc = 'cyt', met = 3, up = 1, dw = None) %
met(name = 'ALLOLACTOSE', loc = 'cyt', prot = 3),
Parameter('fwd_ProtMet_RuleAssembly_8', 1),
Parameter('rvs_ProtMet_RuleAssembly_8', 1))
Rule('ProtMet_RuleAssembly_9',
prot(name = 'araG', loc = 'cyt', met = None, up = None, dw = 1) %
prot(name = 'araG', loc = 'cyt', met = None, up = 1, dw = None) +
met(name = 'ATP', loc = 'cyt', prot = None) |
prot(name = 'araG', loc = 'cyt', met = None, up = None, dw = 1) %
prot(name = 'araG', loc = 'cyt', met = 2, up = 1, dw = None) %
met(name = 'ATP', loc = 'cyt', prot = 2),
Parameter('fwd_ProtMet_RuleAssembly_9', 1),
Parameter('rvs_ProtMet_RuleAssembly_9', 1))
Rule('ProtMet_RuleAssembly_10',
prot(name = 'araC', loc = 'cyt', met = None, up = None, dw = 1) %
prot(name = 'araC', loc = 'cyt', met = None, up = 1, dw = None) +
met(name = 'alpha_L_arabinopyranose', loc = 'cyt', prot = None) |
prot(name = 'araC', loc = 'cyt', met = None, up = None, dw = 1) %
prot(name = 'araC', loc = 'cyt', met = 2, up = 1, dw = None) %
met(name = 'alpha_L_arabinopyranose', loc = 'cyt', prot = 2),
Parameter('fwd_ProtMet_RuleAssembly_10', 1),
Parameter('rvs_ProtMet_RuleAssembly_10', 1))
Rule('ProtMet_RuleAssembly_11',
prot(name = 'araC', loc = 'cyt', met = 2, up = None, dw = 1) %
met(name = 'alpha_L_arabinopyranose', loc = 'cyt', prot = 2) %
prot(name = 'araC', loc = 'cyt', met = None, up = 1, dw = None) +
met(name = 'alpha_L_arabinopyranose', loc = 'cyt', prot = None) |
prot(name = 'araC', loc = 'cyt', met = 2, up = None, dw = 1) %
met(name = 'alpha_L_arabinopyranose', loc = 'cyt', prot = 2) %
prot(name = 'araC', loc = 'cyt', met = 3, up = 1, dw = None) %
met(name = 'alpha_L_arabinopyranose', loc = 'cyt', prot = 3),
Parameter('fwd_ProtMet_RuleAssembly_11', 1),
Parameter('rvs_ProtMet_RuleAssembly_11', 1))
Note
Reversibility of Rules. Atlas writes reversible Rules for each
reaction declared in the network file. The Parameter('rvs_RuleName', 1))
must be set to zero to define an irreversible reaction.
Note
Uniqueness of Rule names. Atlas will write Rules with numbered names. Use only one file to model the many interactions the system has.
Note
Simulation. The model can be simulated only with the instantiation of
Monomers
and Initials
(More here).
Run Monomer+Initials+Observables from metabolic network.ipynb to obtain
automatically the necessary Monomers
and Initials
(including
proteins and enzymatic complexes). Manually add the necessary Monomers
and Initials
for non-enzymatic proteins.
Plotting. The model can be observed only with the instantation of
Observables
(More here).
Run Monomer+Initials+Observables from metabolic network.ipynb to obtain
automatically the all possible Observables
for enzymatic proteins. Other
observables for proteins should be added manually.
Transcription Factor-DNA Binding Site Interaction Networks¶
The transcription factor-DNA binding site network represents the physical interaction bewteen proteins and DNA. The network have two columns and for the former network, the first column lists using comma all components of a TF enclosed in brackets (optionally with small compounds) and in the second column declares the DNA binding site. Users should use the prefix “SMALL-” for small compounds and the prefix “BS-” to encode DNA binding sites using unique names. The second type of GRN shows in the first column the RNA polymerase holoenzyme complex (components in brackets) and in the second the promoter. Users should name promoters with the gene name followed by the suffix “-pro#” where # is an integer.
Examples:
SOURCE TARGET
# araBAD and araC
[crp, SMALL-CAMP, crp, SMALL-CAMP] BS-83-104
[crp, SMALL-CAMP, crp, SMALL-CAMP] [BS-83-104, BS-araB-pro1]
araC BS-35-51
araC BS-56-72
araC BS-109-125
araC BS-130-146
araC BS-267-283
[araC, BS-56-72] [araC, BS-267-283, BS-araC-pro1]
[araC, SMALL-alpha-L-arabinopyranose] BS-35-51
[araC, BS-56-72] SMALL-alpha-L-arabinopyranose
[araC, BS-267-283] SMALL-alpha-L-arabinopyranose
[araC, SMALL-alpha-L-arabinopyranose, BS-56-72] [araC, SMALL-alpha-L-arabinopyranose, BS-35-51, BS-araB-pro1]
# araFGH
[araC, SMALL-alpha-L-arabinopyranose] BS-158-174
[araC, SMALL-alpha-L-arabinopyranose] BS-137-153
[araC, SMALL-alpha-L-arabinopyranose] BS-83-99
[araC, SMALL-alpha-L-arabinopyranose] BS-62-78
[araC, SMALL-alpha-L-arabinopyranose, BS-83-99] [araC, SMALL-alpha-L-arabinopyranose, BS-62-78, BS-araF-pro1]
# araE
[araC, SMALL-alpha-L-arabinopyranose] BS-57-73
[araC, SMALL-alpha-L-arabinopyranose] BS-36-52
[araC, SMALL-alpha-L-arabinopyranose, BS-57-73] [araC, SMALL-alpha-L-arabinopyranose, BS-36-52, BS-araE-pro1]
Finally, execute the “Rules from tf-tfbs.ipynb” to obtain the Rules to model the defined interaction network. The complete rule-based model can be found in the arabinose folder from the Network Biology Lab GitHub repository here.
# [crp, SMALL_CAMP, crp, SMALL_CAMP] interacts with BS_83_104
Rule('TranscriptionFactorMet_AssemblyRule_1',
prot(name = 'crp', dna = None, met = 2, up = None, dw = 1) %
met(name = 'CAMP', prot = 3) %
prot(name = 'crp', dna = None, met = 3, up = 1, dw = None) %
met(name = 'CAMP', prot = 2) +
dna(name = 'BS_83_104', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'crp', dna = None, met = 2, up = None, dw = 1) %
met(name = 'CAMP', prot = 3) %
prot(name = 'crp', dna = 4, met = 3, up = 1, dw = None) %
met(name = 'CAMP', prot = 2) %
dna(name = 'BS_83_104', prot = 4, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_1', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_1', 0))
# [crp, SMALL_CAMP, crp, SMALL_CAMP] interacts with [BS_83_104, BS_araB_pro1]
Rule('TranscriptionFactorMet_AssemblyRule_2',
prot(name = 'crp', dna = None, met = 2, up = None, dw = 1) %
met(name = 'CAMP', prot = 3) %
prot(name = 'crp', dna = None, met = 3, up = 1, dw = None) %
met(name = 'CAMP', prot = 2) +
dna(name = 'BS_83_104', prot = None, free = 'True', up = WILD, dw = WILD) %
dna(name = 'araB', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'crp', dna = None, met = 2, up = None, dw = 1) %
met(name = 'CAMP', prot = 3) %
prot(name = 'crp', dna = 4, met = 3, up = 1, dw = None) %
met(name = 'CAMP', prot = 2) %
dna(name = 'BS_83_104', prot = 4, free = 'False', up = WILD, dw = WILD) %
dna(name = 'araB', type = 'pro1', prot = None, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_2', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_2', 0))
# araC interacts with BS_35_51
Rule('TranscriptionFactorMet_AssemblyRule_3',
prot(name = 'araC', dna = None, met = None, up = None, dw = None) +
dna(name = 'BS_35_51', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'araC', dna = 1, met = None, up = None, dw = None) %
dna(name = 'BS_35_51', prot = 1, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_3', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_3', 0))
# araC interacts with BS_56_72
Rule('TranscriptionFactorMet_AssemblyRule_4',
prot(name = 'araC', dna = None, met = None, up = None, dw = None) +
dna(name = 'BS_56_72', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'araC', dna = 1, met = None, up = None, dw = None) %
dna(name = 'BS_56_72', prot = 1, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_4', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_4', 0))
# araC interacts with BS_109_125
Rule('TranscriptionFactorMet_AssemblyRule_5',
prot(name = 'araC', dna = None, met = None, up = None, dw = None) +
dna(name = 'BS_109_125', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'araC', dna = 1, met = None, up = None, dw = None) %
dna(name = 'BS_109_125', prot = 1, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_5', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_5', 0))
# araC interacts with BS_130_146
Rule('TranscriptionFactorMet_AssemblyRule_6',
prot(name = 'araC', dna = None, met = None, up = None, dw = None) +
dna(name = 'BS_130_146', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'araC', dna = 1, met = None, up = None, dw = None) %
dna(name = 'BS_130_146', prot = 1, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_6', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_6', 0))
# araC interacts with BS_267_283
Rule('TranscriptionFactorMet_AssemblyRule_7',
prot(name = 'araC', dna = None, met = None, up = None, dw = None) +
dna(name = 'BS_267_283', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'araC', dna = 1, met = None, up = None, dw = None) %
dna(name = 'BS_267_283', prot = 1, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_7', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_7', 0))
# [araC, BS_56_72] interacts with [araC, BS_267_283, BS_araC_pro1]
Rule('TranscriptionFactorMet_AssemblyRule_8',
prot(name = 'araC', dna = 1, met = None, up = None, dw = None) %
dna(name = 'BS_56_72', prot = 1, free = 'False', up = WILD, dw = WILD) +
prot(name = 'araC', dna = 2, met = None, up = None, dw = None) %
dna(name = 'BS_267_283', prot = 2, free = 'False', up = WILD, dw = WILD) %
dna(name = 'araC', type = 'pro1', prot = None, free = 'False', up = WILD, dw = WILD) |
prot(name = 'araC', dna = None, met = None, up = None, dw = 1) %
dna(name = 'BS_56_72', prot = 2, free = 'False', up = WILD, dw = WILD) %
prot(name = 'araC', dna = 2, met = None, up = 1, dw = None) %
dna(name = 'BS_267_283', prot = None, free = 'False', up = WILD, dw = WILD) %
dna(name = 'araC', type = 'pro1', prot = None, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_8', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_8', 0))
# [araC, SMALL_alpha_L_arabinopyranose] interacts with BS_35_51
Rule('TranscriptionFactorMet_AssemblyRule_9',
prot(name = 'araC', dna = None, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) +
dna(name = 'BS_35_51', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'araC', dna = 2, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) %
dna(name = 'BS_35_51', prot = 2, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_9', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_9', 0))
# [araC, BS_56_72] interacts with SMALL_alpha_L_arabinopyranose
Rule('TranscriptionFactorMet_AssemblyRule_10',
prot(name = 'araC', dna = 1, met = None, up = None, dw = None) %
dna(name = 'BS_56_72', prot = 1, free = 'False', up = WILD, dw = WILD) +
met(name = 'alpha_L_arabinopyranose', prot = None) |
prot(name = 'araC', dna = 2, met = 1, up = None, dw = None) %
dna(name = 'BS_56_72', prot = 2, free = 'False', up = WILD, dw = WILD) %
met(name = 'alpha_L_arabinopyranose', prot = 1),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_10', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_10', 0))
# [araC, BS_267_283] interacts with SMALL_alpha_L_arabinopyranose
Rule('TranscriptionFactorMet_AssemblyRule_11',
prot(name = 'araC', dna = 1, met = None, up = None, dw = None) %
dna(name = 'BS_267_283', prot = 1, free = 'False', up = WILD, dw = WILD) +
met(name = 'alpha_L_arabinopyranose', prot = None) |
prot(name = 'araC', dna = 2, met = 1, up = None, dw = None) %
dna(name = 'BS_267_283', prot = 2, free = 'False', up = WILD, dw = WILD) %
met(name = 'alpha_L_arabinopyranose', prot = 1),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_11', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_11', 0))
# [araC, SMALL_alpha_L_arabinopyranose, BS_56_72] interacts with [araC, SMALL_alpha_L_arabinopyranose, BS_35_51, BS_araB_pro1]
Rule('TranscriptionFactorMet_AssemblyRule_12',
prot(name = 'araC', dna = 2, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) %
dna(name = 'BS_56_72', prot = 2, free = 'False', up = WILD, dw = WILD) +
prot(name = 'araC', dna = 4, met = 3, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 3) %
dna(name = 'BS_35_51', prot = 4, free = 'False', up = WILD, dw = WILD) %
dna(name = 'araB', type = 'pro1', prot = None, free = 'False', up = WILD, dw = WILD) |
prot(name = 'araC', dna = None, met = 2, up = None, dw = 1) %
met(name = 'alpha_L_arabinopyranose', prot = 3) %
dna(name = 'BS_56_72', prot = 4, free = 'False', up = WILD, dw = WILD) %
prot(name = 'araC', dna = 4, met = 3, up = 1, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 2) %
dna(name = 'BS_35_51', prot = None, free = 'False', up = WILD, dw = WILD) %
dna(name = 'araB', type = 'pro1', prot = None, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_12', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_12', 0))
# [araC, SMALL_alpha_L_arabinopyranose] interacts with BS_158_174
Rule('TranscriptionFactorMet_AssemblyRule_13',
prot(name = 'araC', dna = None, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) +
dna(name = 'BS_158_174', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'araC', dna = 2, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) %
dna(name = 'BS_158_174', prot = 2, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_13', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_13', 0))
# [araC, SMALL_alpha_L_arabinopyranose] interacts with BS_137_153
Rule('TranscriptionFactorMet_AssemblyRule_14',
prot(name = 'araC', dna = None, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) +
dna(name = 'BS_137_153', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'araC', dna = 2, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) %
dna(name = 'BS_137_153', prot = 2, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_14', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_14', 0))
# [araC, SMALL_alpha_L_arabinopyranose] interacts with BS_83_99
Rule('TranscriptionFactorMet_AssemblyRule_15',
prot(name = 'araC', dna = None, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) +
dna(name = 'BS_83_99', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'araC', dna = 2, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) %
dna(name = 'BS_83_99', prot = 2, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_15', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_15', 0))
# [araC, SMALL_alpha_L_arabinopyranose] interacts with BS_62_78
Rule('TranscriptionFactorMet_AssemblyRule_16',
prot(name = 'araC', dna = None, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) +
dna(name = 'BS_62_78', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'araC', dna = 2, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) %
dna(name = 'BS_62_78', prot = 2, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_16', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_16', 0))
# [araC, SMALL_alpha_L_arabinopyranose, BS_83_99] interacts with [araC, SMALL_alpha_L_arabinopyranose, BS_62_78, BS_araF_pro1]
Rule('TranscriptionFactorMet_AssemblyRule_17',
prot(name = 'araC', dna = 2, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) %
dna(name = 'BS_83_99', prot = 2, free = 'False', up = WILD, dw = WILD) +
prot(name = 'araC', dna = 4, met = 3, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 3) %
dna(name = 'BS_62_78', prot = 4, free = 'False', up = WILD, dw = WILD) %
dna(name = 'araF', type = 'pro1', prot = None, free = 'False', up = WILD, dw = WILD) |
prot(name = 'araC', dna = None, met = 2, up = None, dw = 1) %
met(name = 'alpha_L_arabinopyranose', prot = 3) %
dna(name = 'BS_83_99', prot = 4, free = 'False', up = WILD, dw = WILD) %
prot(name = 'araC', dna = 4, met = 3, up = 1, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 2) %
dna(name = 'BS_62_78', prot = None, free = 'False', up = WILD, dw = WILD) %
dna(name = 'araF', type = 'pro1', prot = None, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_17', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_17', 0))
# [araC, SMALL_alpha_L_arabinopyranose] interacts with BS_57_73
Rule('TranscriptionFactorMet_AssemblyRule_18',
prot(name = 'araC', dna = None, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) +
dna(name = 'BS_57_73', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'araC', dna = 2, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) %
dna(name = 'BS_57_73', prot = 2, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_18', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_18', 0))
# [araC, SMALL_alpha_L_arabinopyranose] interacts with BS_36_52
Rule('TranscriptionFactorMet_AssemblyRule_19',
prot(name = 'araC', dna = None, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) +
dna(name = 'BS_36_52', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'araC', dna = 2, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) %
dna(name = 'BS_36_52', prot = 2, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_19', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_19', 0))
# [araC, SMALL_alpha_L_arabinopyranose, BS_57_73] interacts with [araC, SMALL_alpha_L_arabinopyranose, BS_36_52, BS_araE_pro1]
Rule('TranscriptionFactorMet_AssemblyRule_20',
prot(name = 'araC', dna = 2, met = 1, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 1) %
dna(name = 'BS_57_73', prot = 2, free = 'False', up = WILD, dw = WILD) +
prot(name = 'araC', dna = 4, met = 3, up = None, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 3) %
dna(name = 'BS_36_52', prot = 4, free = 'False', up = WILD, dw = WILD) %
dna(name = 'araE', type = 'pro1', prot = None, free = 'False', up = WILD, dw = WILD) |
prot(name = 'araC', dna = None, met = 2, up = None, dw = 1) %
met(name = 'alpha_L_arabinopyranose', prot = 3) %
dna(name = 'BS_57_73', prot = 4, free = 'False', up = WILD, dw = WILD) %
prot(name = 'araC', dna = 4, met = 3, up = 1, dw = None) %
met(name = 'alpha_L_arabinopyranose', prot = 2) %
dna(name = 'BS_36_52', prot = None, free = 'False', up = WILD, dw = WILD) %
dna(name = 'araE', type = 'pro1', prot = None, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_TranscriptionFactorMet_AssemblyRule_20', 0),
Parameter('rvs_TranscriptionFactorMet_AssemblyRule_20', 0))
Note
Reversibility of reactions. Atlas writes dead Rules for each
reaction declared in the network file. The Parameter('fwd_ReactionName', 0))
must be set to non-zero to activate the rule and Parameter('rvs_ReactionName', 0))
must be set to non-zero to define a reversible reaction.
Note
Simulation. The model can be simulated only with the instantiation of
Monomers
and Initials
(More here).
Run Monomer+Initials+Observables from metabolic network.ipynb to obtain
automatically the necessary Monomers
and Initials
(including
proteins and enzymatic complexes).
Plotting. The model can be observed only with the instantation of
Observables
(More here).
Run Monomer+Initials+Observables from metabolic network.ipynb to obtain
automatically the all possible Observables
for metabolites.
Sigma Factor-Promoter Interaction Networks¶
The Sigma Factor-Promoter network have two columns and for the former network, the first column lists using comma all components of a TF enclosed in brackets (optionally with small compounds) and in the second column declares the DNA binding site. Users should use the prefix “SMALL-” for small compounds and the prefix “BS-” to encode DNA binding sites using unique names. The second type of GRN shows in the first column the RNA polymerase holoenzyme complex (components in brackets) and in the second the promoter. Users should name promoters with the gene name followed by the suffix “-pro#” where # is an integer.
Examples:
SOURCE TARGET
# Docking to promoters
[rpoA, rpoA, rpoB, rpoC, rpoD] BS-rpoA-pro1
[rpoA, rpoA, rpoB, rpoC, rpoD] BS-rpoB-pro1
# [rpoA, rpoA, rpoB, rpoC, rpoD] BS-rpoC-pro1
[rpoA, rpoA, rpoB, rpoC, rpoD] BS-rpoD-pro1
[rpoA, rpoA, rpoB, rpoC, rpoD] BS-rpoE-pro1
[rpoA, rpoA, rpoB, rpoC, rpoD] BS-rpoH-pro1
[rpoA, rpoA, rpoB, rpoC, rpoD] BS-rpoN-pro1
[rpoA, rpoA, rpoB, rpoC, rpoD] BS-rpoS-pro1
[rpoA, rpoA, rpoB, rpoC, rpoD] BS-fliA-pro1
[rpoA, rpoA, rpoB, rpoC, rpoD] BS-fecI-pro1
[rpoA, rpoA, rpoB, rpoC, rpoE] BS-rpoD-pro1
[rpoA, rpoA, rpoB, rpoC, rpoE] BS-rpoE-pro1
[rpoA, rpoA, rpoB, rpoC, rpoE] BS-rpoH-pro1
[rpoA, rpoA, rpoB, rpoC, rpoE] BS-rpoN-pro1
[rpoA, rpoA, rpoB, rpoC, rpoH] BS-rpoA-pro1
[rpoA, rpoA, rpoB, rpoC, rpoH] BS-rpoD-pro1
[rpoA, rpoA, rpoB, rpoC, rpoN] BS-rpoA-pro1
[rpoA, rpoA, rpoB, rpoC, rpoN] BS-rpoD-pro1
[rpoA, rpoA, rpoB, rpoC, rpoN] BS-rpoH-pro1
[rpoA, rpoA, rpoB, rpoC, rpoS] BS-fecI-pro1
[rpoA, rpoA, rpoB, rpoC, rpoS] BS-rpoA-pro1
[rpoA, rpoA, rpoB, rpoC, rpoS] BS-rpoB-pro1
# [rpoA, rpoA, rpoB, rpoC, rpoS] BS-rpoC-pro1
[rpoA, rpoA, rpoB, rpoC, rpoS] BS-rpoD-pro1
[rpoA, rpoA, rpoB, rpoC, rpoS] BS-rpoE-pro1
[rpoA, rpoA, rpoB, rpoC, rpoS] BS-rpoH-pro1
[rpoA, rpoA, rpoB, rpoC, rpoS] BS-rpoN-pro1
[rpoA, rpoA, rpoB, rpoC, fliA] BS-rpoD-pro1
[rpoA, rpoA, rpoB, rpoC, fliA] BS-rpoN-pro1
[rpoA, rpoA, rpoB, rpoC, fliA] BS-fliA-pro1
Finally, execute the “Rules from SigmaFactors x Architecture.ipynb” to obtain the Rules to model the defined interaction network. The complete rule-based model can be found in the sigma folder from the Network Biology Lab GitHub repository here.
# [rpoA, rpoA, rpoB, rpoC, rpoD] interacts with BS_rpoA_pro1
Rule('docking_1_rpoA_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoA', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoA', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_1_rpoA_pro1', 0),
Parameter('rvs_docking_1_rpoA_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoD] interacts with BS_rpoB_pro1
Rule('docking_2_rpoB_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoB', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoB', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_2_rpoB_pro1', 0),
Parameter('rvs_docking_2_rpoB_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoD] interacts with BS_rpoD_pro1
Rule('docking_3_rpoD_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoD', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoD', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_3_rpoD_pro1', 0),
Parameter('rvs_docking_3_rpoD_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoD] interacts with BS_rpoE_pro1
Rule('docking_4_rpoE_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoE', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoE', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_4_rpoE_pro1', 0),
Parameter('rvs_docking_4_rpoE_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoD] interacts with BS_rpoH_pro1
Rule('docking_5_rpoH_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoH', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoH', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_5_rpoH_pro1', 0),
Parameter('rvs_docking_5_rpoH_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoD] interacts with BS_rpoN_pro1
Rule('docking_6_rpoN_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoN', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoN', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_6_rpoN_pro1', 0),
Parameter('rvs_docking_6_rpoN_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoD] interacts with BS_rpoS_pro1
Rule('docking_7_rpoS_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoS', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoS', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_7_rpoS_pro1', 0),
Parameter('rvs_docking_7_rpoS_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoD] interacts with BS_fliA_pro1
Rule('docking_8_fliA_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = None, met = None, up = 4, dw = None) +
dna(name = 'fliA', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'fliA', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_8_fliA_pro1', 0),
Parameter('rvs_docking_8_fliA_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoD] interacts with BS_fecI_pro1
Rule('docking_9_fecI_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = None, met = None, up = 4, dw = None) +
dna(name = 'fecI', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'fecI', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_9_fecI_pro1', 0),
Parameter('rvs_docking_9_fecI_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoE] interacts with BS_rpoD_pro1
Rule('docking_10_rpoD_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoE', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoD', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoE', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoD', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_10_rpoD_pro1', 0),
Parameter('rvs_docking_10_rpoD_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoE] interacts with BS_rpoE_pro1
Rule('docking_11_rpoE_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoE', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoE', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoE', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoE', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_11_rpoE_pro1', 0),
Parameter('rvs_docking_11_rpoE_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoE] interacts with BS_rpoH_pro1
Rule('docking_12_rpoH_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoE', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoH', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoE', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoH', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_12_rpoH_pro1', 0),
Parameter('rvs_docking_12_rpoH_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoE] interacts with BS_rpoN_pro1
Rule('docking_13_rpoN_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoE', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoN', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoE', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoN', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_13_rpoN_pro1', 0),
Parameter('rvs_docking_13_rpoN_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoH] interacts with BS_rpoA_pro1
Rule('docking_14_rpoA_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoH', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoA', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoH', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoA', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_14_rpoA_pro1', 0),
Parameter('rvs_docking_14_rpoA_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoH] interacts with BS_rpoD_pro1
Rule('docking_15_rpoD_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoH', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoD', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoH', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoD', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_15_rpoD_pro1', 0),
Parameter('rvs_docking_15_rpoD_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoN] interacts with BS_rpoA_pro1
Rule('docking_16_rpoA_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoN', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoA', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoN', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoA', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_16_rpoA_pro1', 0),
Parameter('rvs_docking_16_rpoA_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoN] interacts with BS_rpoD_pro1
Rule('docking_17_rpoD_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoN', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoD', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoN', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoD', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_17_rpoD_pro1', 0),
Parameter('rvs_docking_17_rpoD_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoN] interacts with BS_rpoH_pro1
Rule('docking_18_rpoH_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoN', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoH', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoN', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoH', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_18_rpoH_pro1', 0),
Parameter('rvs_docking_18_rpoH_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoS] interacts with BS_fecI_pro1
Rule('docking_19_fecI_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = None, met = None, up = 4, dw = None) +
dna(name = 'fecI', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'fecI', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_19_fecI_pro1', 0),
Parameter('rvs_docking_19_fecI_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoS] interacts with BS_rpoA_pro1
Rule('docking_20_rpoA_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoA', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoA', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_20_rpoA_pro1', 0),
Parameter('rvs_docking_20_rpoA_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoS] interacts with BS_rpoB_pro1
Rule('docking_21_rpoB_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoB', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoB', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_21_rpoB_pro1', 0),
Parameter('rvs_docking_21_rpoB_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoS] interacts with BS_rpoD_pro1
Rule('docking_22_rpoD_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoD', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoD', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_22_rpoD_pro1', 0),
Parameter('rvs_docking_22_rpoD_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoS] interacts with BS_rpoE_pro1
Rule('docking_23_rpoE_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoE', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoE', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_23_rpoE_pro1', 0),
Parameter('rvs_docking_23_rpoE_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoS] interacts with BS_rpoH_pro1
Rule('docking_24_rpoH_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoH', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoH', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_24_rpoH_pro1', 0),
Parameter('rvs_docking_24_rpoH_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, rpoS] interacts with BS_rpoN_pro1
Rule('docking_25_rpoN_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoN', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoS', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoN', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_25_rpoN_pro1', 0),
Parameter('rvs_docking_25_rpoN_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, fliA] interacts with BS_rpoD_pro1
Rule('docking_26_rpoD_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'fliA', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoD', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'fliA', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoD', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_26_rpoD_pro1', 0),
Parameter('rvs_docking_26_rpoD_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, fliA] interacts with BS_rpoN_pro1
Rule('docking_27_rpoN_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'fliA', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoN', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'fliA', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoN', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_27_rpoN_pro1', 0),
Parameter('rvs_docking_27_rpoN_pro1', 0))
# [rpoA, rpoA, rpoB, rpoC, fliA] interacts with BS_fliA_pro1
Rule('docking_28_fliA_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'fliA', dna = None, met = None, up = 4, dw = None) +
dna(name = 'fliA', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'fliA', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'fliA', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_28_fliA_pro1', 0),
Parameter('rvs_docking_28_fliA_pro1', 0))
Note
Reversibility of reactions. Atlas writes dead Rules for each
reaction declared in the network file. The Parameter('fwd_ReactionName', 0))
must be set to non-zero to activate the rule and Parameter('rvs_ReactionName', 0))
must be set to non-zero to define a reversible reaction.
Note
Simulation. The model can be simulated only with the instantiation of
Monomers
and Initials
(More here).
Run Monomer+Initials+Observables from metabolic network.ipynb to obtain
automatically the necessary Monomers
and Initials
(including
proteins and enzymatic complexes).
Plotting. The model can be observed only with the instantation of
Observables
(More here).
Run Monomer+Initials+Observables from metabolic network.ipynb to obtain
automatically the all possible Observables
for metabolites.
Genome Graphs¶
Metabolic networks have four columns. The first declares a unique name for the enzyme or enzymatic complex; the second declares a unique name for the reaction; the third column lists using comma unique names for substrates; and the last row list using comma unique names for products. To declare metabolites located at the periplasm or extracellular compartments, the user should employ the prefix “PER-” and “EX-”, respectively. Use spontaneous for non-enzymatic reactions.
Examples:
SOURCE TARGET
araB-pro1 araB-rbs
araB-rbs araB-cds
araB-cds araA-rbs
araA-rbs araA-cds
araA-cds araD-rbs
araD-rbs araD-cds
araD-cds araD-ter1
araC-pro1 araC-BS-56-72
araC-BS-56-72 araC-rbs
araC-rbs araC-cds
araC-cds araC-ter1
araE-pro1 araE-rbs
araE-rbs araE-cds
araE-cds araE-ter1
araF-pro1 araF-rbs
araF-rbs araF-cds
araF-cds araG-rbs
araG-rbs araG-cds
araG-cds araH-rbs
araH-rbs araH-cds
araH-cds araH-ter1
OR
SOURCE TARGET
rpoA-pro1 rpoA-rbs
rpoA-rbs rpoA-cds
rpoA-cds rpoA-ter1
rpoB-pro1 rpoB-rbs
rpoB-rbs rpoB-cds
rpoB-cds rpoC-rbs
rpoC-rbs rpoC-cds
rpoC-cds rpoC-ter1
rpoD-pro1 rpoD-rbs
rpoD-rbs rpoD-cds
rpoD-cds rpoD-ter1
rpoE-pro1 rpoE-rbs
rpoE-rbs rpoE-cds
rpoE-cds rpoE-ter1
rpoH-pro1 rpoH-rbs
rpoH-rbs rpoH-cds
rpoH-cds rpoH-ter1
rpoN-pro1 rpoN-rbs
rpoN-rbs rpoN-cds
rpoN-cds rpoN-ter1
rpoS-pro1 rpoS-rbs
rpoS-rbs rpoS-cds
rpoS-cds rpoS-ter1
fliA-pro1 fliA-rbs
fliA-rbs fliA-cds
fliA-cds fliA-ter1
fecI-pro1 fecI-rbs
fecI-rbs fecI-cds
fecI-cds fecI-ter1
Note
Visualization in Cytoscape. Colors and arrows remains to the user for customization. The network could be complemented with a description of sigma factor specifity for promoter, as the following network

Finally, execute the “Rules from metabolic network.ipynb” to obtain the Rules to model the defined network. If using a Sigma Factor-Promoter Interaction Network, the user could use “Rules from SigmaFactors x Architecture” to obtain the Rules to model both network at once. The complete rule-based model can be found in the arabinose folder (1st example) and in the sigma folder (2nd example) from the Network Biology Lab GitHub repository here.
Note
Kappa BioBrick Framework. Rules for transcription and translation come from the work of Stewart and Wilson-Kanamori (See more here). A “pure” genome graph use the original defined rules, while a genome graph + sigma factor specifity use a modify form to model the release of the sigma factor from the RNA Polymerase at the transcription initiation. Note the explicit modeling of the RNA Polymerase in the second example.
Rule('docking_araB_pro1',
cplx(name = 'RNAP', dna = None) + dna(name = 'araB', type = 'pro1', prot = None, free = 'True') |
cplx(name = 'RNAP', dna = 1) % dna(name = 'araB', type = 'pro1', prot = 1, free = 'False'),
Parameter('fwd_docking_araB_pro1', 1), Parameter('rvs_docking_araB_pro1', 1))
OR
# [rpoA, rpoA, rpoB, rpoC, rpoD] interacts with BS_rpoA_pro1
Rule('docking_1_rpoA_pro1',
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = None, met = None, up = 4, dw = None) +
dna(name = 'rpoA', type = 'pro1', prot = None, free = 'True', up = WILD, dw = WILD) |
prot(name = 'rpoA', dna = None, met = None, up = None, dw = 1) %
prot(name = 'rpoA', dna = None, met = None, up = 1, dw = 2) %
prot(name = 'rpoB', dna = None, met = None, up = 2, dw = 3) %
prot(name = 'rpoC', dna = None, met = None, up = 3, dw = 4) %
prot(name = 'rpoD', dna = 5, met = None, up = 4, dw = None) %
dna(name = 'rpoA', type = 'pro1', prot = 5, free = 'False', up = WILD, dw = WILD),
Parameter('fwd_docking_1_rpoA_rbs', 1),
Parameter('rvs_docking_1_rpoA_pro1', 0))
Note
Reversibility of reactions. Atlas writes irreversible Rules for each
interaction between the RNA Polymerase and a promoter. The Parameter('rvs_ReactionName', 0))
must be set to non-zero to define a reversible reaction. The remaining Rules
are irreversible without a way to define reversible reactions.
Note
Simulation. The model can be simulated only with the instantiation of
Monomers
and Initials
(More here).
Run Monomer+Initials+Observables from metabolic network.ipynb to obtain
automatically the necessary Monomers
and Initials
(including
proteins and enzymatic complexes). For initial genes, please refer to the
following example:
Initial(
dna(name = 'rpoB', type = 'pro1', free = 'True', prot = None, rna = None, up = None, dw = 1) %
dna(name = 'rpoB', type = 'rbs', free = 'True', prot = None, rna = None, up = 1, dw = 2) %
dna(name = 'rpoB', type = 'cds', free = 'True', prot = None, rna = None, up = 2, dw = 3) %
dna(name = 'rpoC', type = 'rbs', free = 'True', prot = None, rna = None, up = 3, dw = 4) %
dna(name = 'rpoC', type = 'cds', free = 'True', prot = None, rna = None, up = 4, dw = 5) %
dna(name = 'rpoC', type = 'ter1', free = 'True', prot = None, rna = None, up = 5, dw = None),
Parameter('t0_rpoBC_operon', 1))
Plotting. The model can be observed only with the instantation of
Observables
(More here).
Run Monomer+Initials+Observables from metabolic network.ipynb to obtain
automatically the all possible Observables
for metabolites.
Simulation¶
Simulation could be done within the PySB python package (See more at PySB documentation) . Here is the relevant code that able the simulation of any PySB model, albeit PySB exports the model, calls the simulator, and imports the results under the hood. See Plotting for a simple example on how to plot simulation results.
from numpy import linspace
from pysb.bng import generate_network, generate_equations
from pysb.simulator import ScipyOdeSimulator, BngSimulator, KappaSimulator
# modify accordingly
from pysb.pathfinder import set_path
set_path('bng', '/opt/git-repositories/bionetgen.RuleWorld/bng2/')
set_path('kasim', '/opt/git-repositories/KaSim4.Kappa-Dev/')
## for network-based simulations:
## ScipyOdeSimulator and BngSimulator ode and ssa methods
# generate_network(model)
# generate_equations(model)
## set the number of stochastic simulations
runs = 100
# data1 = ScipyOdeSimulator(model, linspace(0, 100, 200)).run().dataframe
# data1 = BngSimulator(model, linspace(0, 200, 201)).run(method = 'ode').dataframe
# data2 = BngSimulator(model, linspace(0, 200, 201)).run(method = 'ssa', n_runs = runs).dataframe
# data2 = BngSimulator(model, linspace(0, 200, 201)).run(method = 'nf', n_runs = runs).dataframe
data2 = KappaSimulator(model, linspace(0, 100, 101)).run(n_runs = runs).dataframe
## process simulations
data = []
for i in range(0, runs):
data.append(data2.xs(i))
avrg = 0
for i in range(0, runs):
avrg += data[i]
avrg = avrg / runs
stdv = 0
for i in range(0, runs):
stdv += (data[i] - avrg)**2
stdv = (stdv / (runs-1))**0.5
Plotting¶
PySB could inform the results of a simulation to dataframes (See
Simulation) and visualization of results could be done with
matplotlib or seaborn even (See more here). To
access the data, the dataframes columns reproduce the names of the Observables
.
The following example could be adapted to show the dynamics of any Observable
.
Note
Importantly, PySB allows the inspection of the model to find which
Monomers
(and complexes of monomers) exists in the model, but as the
simulation is network-free, the possible formed complexes are up to the user
concern.
Note
Atlas produces automatically Observables
for metabolites, and other
components and complexes could also be observed and plotted, but their
declaration in the model is entirely up to the user.
fig, ax = plt.subplots(1, 2, figsize = (4*2, 3*1), dpi = 100)
# ax[0].plot(data1.index, data1['obs_alpha_L_arabinopyranose_cyt'], label = '__NOLABEL__', color = palette[0])
# ax[0].plot(data1.index, data1['obs_ATP_cyt'], label = '__NOLABEL__', color = palette[3])
ax[0].fill_between(avrg.index,
avrg['obs_alpha_L_arabinopyranose_cyt'] + stdv['obs_alpha_L_arabinopyranose_cyt'],
avrg['obs_alpha_L_arabinopyranose_cyt'] - stdv['obs_alpha_L_arabinopyranose_cyt'],
label = r'$\alpha$-arabinopyranose', **{'color' : palette[0], 'alpha' : 0.5})
ax[0].fill_between(avrg.index,
avrg['obs_ATP_cyt'] + stdv['obs_ATP_cyt'],
avrg['obs_ATP_cyt'] - stdv['obs_ATP_cyt'],
label = r'ATP', **{'color' : palette[3], 'alpha' : 0.5})
# ax[1].plot(data1.index, data1['obs_PROTON_cyt'], label = '__NOLABEL__', color = palette[0])
# ax[1].plot(data1.index, data1['obs_XYLULOSE_5_PHOSPHATE_cyt'], label = '__NOLABEL__', color = palette[3])
ax[1].fill_between(avrg.index,
avrg['obs_PROTON_cyt'] + stdv['obs_PROTON_cyt'],
avrg['obs_PROTON_cyt'] - stdv['obs_PROTON_cyt'],
label = r'H$^+$', **{'color' : palette[0], 'alpha' : 0.5})
ax[1].fill_between(avrg.index,
avrg['obs_WATER_cyt'] + stdv['obs_WATER_cyt'],
avrg['obs_WATER_cyt'] - stdv['obs_WATER_cyt'],
label = 'WATER', **{'color' : palette[1], 'alpha' : 0.5})
ax[1].fill_between(avrg.index,
avrg['obs_XYLULOSE_5_PHOSPHATE_cyt'] + stdv['obs_XYLULOSE_5_PHOSPHATE_cyt'],
avrg['obs_XYLULOSE_5_PHOSPHATE_cyt'] - stdv['obs_XYLULOSE_5_PHOSPHATE_cyt'],
label = r'xylulose 5-phosphate', **{'color' : palette[3], 'alpha' : 0.5})
ax[0].set_xlabel('Time [A.U.]')
ax[0].set_ylabel('Concentration [A.U.]')
# ax[0].set_xlim(left = 0, right = 100)
ax[0].set_ylim(bottom = 0, top = 200)
ax[1].set_xlabel('Time [A.U.]')
# ax[1].set_xlim(left = 0, right = 100)
ax[1].set_ylim(bottom = 0, top = 200)
ax[0].legend(frameon = False)
ax[1].legend(frameon = False)
seaborn.despine()
plt.savefig('Fig_Arabinose.png', format = 'png', bbox_inches = 'tight', dpi = 350)
# for publication
# plt.savefig('Fig_Arabinose.pdf', format = 'pdf', bbox_inches = 'tight', dpi = 350)
plt.show()
And the results is

Note
See the Arabinose Model to inspect the rules and reproduce (at some extent because of stochasticity) the plot showed in this Manual.
Export to¶
The PySB python package could export to different languages (See more here). Use the following code to export to BioNetGen and kappa languages, putting the code at the end of the model.
from pysb.export import export
with open('model.kappa', 'w') as outfile:
outfile.write(export(model, 'kappa'))
with open('model.bngl', 'w') as outfile:
outfile.write(export(model, 'bngl'))
Note
In the case of matlab, mathematica, and stochkit, PySB requires to expand the rules to determine all mass-balances to write ODE-based models, a proccess call network generation and could take excessive time to finish.