E. coli Simulations

[1]:
# Make sure notebook runs out of vivarium-ecoli directory
import sys, os
notebook_path = sys.path[0][:sys.path[0].index('notebooks')]
sys.path.append(notebook_path)
os.chdir(sys.path[-1])
cwd = os.getcwd()
[2]:
import os
from ecoli.experiments.ecoli_master_sim import EcoliSim, CONFIG_DIR_PATH
from vivarium.core.engine import pf
from vivarium.core.composer import Composite
from vivarium.plots.simulation_output import plot_variables
from vivarium.plots.topology import plot_topology
from ecoli.plots.topology import get_ecoli_nonpartition_topology_settings, get_ecoli_partition_topology_settings

E. coli non-partitioned

initialize EcoliSim from file

[3]:
sim_nonpartition = EcoliSim.from_file(CONFIG_DIR_PATH + "no_partition.json")
sim_nonpartition.total_time = 120
sim_nonpartition.divide = False
sim_nonpartition.progress_bar = False
sim_nonpartition.log_updates = False
sim_nonpartition.raw_output = False
sim_nonpartition.build_ecoli()

plot the topology

[6]:
ecoli_composite = Composite({
    'processes': sim_nonpartition.ecoli.processes,
    'topology': sim_nonpartition.ecoli.topology,
})
topology_settings = get_ecoli_nonpartition_topology_settings()
topology_settings['font_size'] = 16
fig = plot_topology(ecoli_composite, topology_settings)
../_images/notebooks_ecoli_simulations_11_0.png

run simulation

[7]:
sim_nonpartition.run()
nonpartition_output = sim_nonpartition.query()

Simulation ID: 199f0850-2d74-11ec-947e-acde48001122
Created: 10/14/2021 at 21:55:22
Completed in 90.93 seconds
[8]:
print(nonpartition_output['listeners']['mass'].keys())
dict_keys(['cell_mass', 'dry_mass', 'water_mass', 'rnaMass', 'rRnaMass', 'tRnaMass', 'mRnaMass', 'dnaMass', 'proteinMass', 'smallMoleculeMass', 'volume', 'proteinMassFraction', 'rnaMassFraction', 'growth', 'instantaniousGrowthRate', 'dryMassFoldChange', 'proteinMassFoldChange', 'rnaMassFoldChange', 'smallMoleculeFoldChange'])
[9]:
# plot
fig = plot_variables(
    nonpartition_output,
    variables=[
        ('listeners', 'mass', 'cell_mass'),
        ('listeners', 'mass', 'dry_mass'),
        ('listeners', 'mass', 'dnaMass'),
        ('listeners', 'mass', 'mRnaMass'),
        ('listeners', 'mass', 'rRnaMass'),
        ('listeners', 'mass', 'tRnaMass'),
        ('listeners', 'mass', 'rnaMass'),
        ('listeners', 'mass', 'proteinMass'),
        ('listeners', 'mass', 'smallMoleculeMass'),
    ],
    column_width=10, row_height=3, row_padding=0.5)
../_images/notebooks_ecoli_simulations_15_0.png

E. coli master

This model uses partitioning.

initialize EcoliSim from file

[10]:
sim_master = EcoliSim.from_file()
sim_master.total_time = 120
sim_master.divide = False
sim_master.progress_bar = False
sim_master.log_updates = False
sim_master.raw_output = False
sim_master.build_ecoli()

print the processes

[11]:
print(pf(sim_master.ecoli.processes))
{ 'ecoli-chromosome-structure': <ecoli.processes.chromosome_structure.ChromosomeStructure object at 0x124670850>,
  'ecoli-metabolism': <ecoli.processes.metabolism.Metabolism object at 0x124670760>,
  'ecoli-tf-binding_requester': <ecoli.processes.partition.Requester object at 0x1ad589a60>,
  'ecoli-transcript-initiation_requester': <ecoli.processes.partition.Requester object at 0x1ad589a30>,
  'ecoli-transcript-elongation_requester': <ecoli.processes.partition.Requester object at 0x1ad589ac0>,
  'ecoli-rna-degradation_requester': <ecoli.processes.partition.Requester object at 0x1ad589a90>,
  'ecoli-polypeptide-initiation_requester': <ecoli.processes.partition.Requester object at 0x1ad589af0>,
  'ecoli-polypeptide-elongation_requester': <ecoli.processes.partition.Requester object at 0x1ad589b20>,
  'ecoli-complexation_requester': <ecoli.processes.partition.Requester object at 0x1ad589b50>,
  'ecoli-two-component-system_requester': <ecoli.processes.partition.Requester object at 0x1ad589b80>,
  'ecoli-equilibrium_requester': <ecoli.processes.partition.Requester object at 0x1ad589bb0>,
  'ecoli-protein-degradation_requester': <ecoli.processes.partition.Requester object at 0x1ad589be0>,
  'ecoli-chromosome-replication_requester': <ecoli.processes.partition.Requester object at 0x1ad589c10>,
  'allocator': <ecoli.processes.allocator.Allocator object at 0x1b8dec6a0>,
  'ecoli-tf-binding_evolver': <ecoli.processes.partition.Evolver object at 0x1ad589c40>,
  'ecoli-transcript-initiation_evolver': <ecoli.processes.partition.Evolver object at 0x1ad589c70>,
  'ecoli-transcript-elongation_evolver': <ecoli.processes.partition.Evolver object at 0x1ad589ca0>,
  'ecoli-rna-degradation_evolver': <ecoli.processes.partition.Evolver object at 0x1ad589cd0>,
  'ecoli-polypeptide-initiation_evolver': <ecoli.processes.partition.Evolver object at 0x1ad589d00>,
  'ecoli-polypeptide-elongation_evolver': <ecoli.processes.partition.Evolver object at 0x1ad589d30>,
  'ecoli-complexation_evolver': <ecoli.processes.partition.Evolver object at 0x1ad589d60>,
  'ecoli-two-component-system_evolver': <ecoli.processes.partition.Evolver object at 0x1ad589d90>,
  'ecoli-equilibrium_evolver': <ecoli.processes.partition.Evolver object at 0x1ad589dc0>,
  'ecoli-protein-degradation_evolver': <ecoli.processes.partition.Evolver object at 0x1ad589df0>,
  'ecoli-chromosome-replication_evolver': <ecoli.processes.partition.Evolver object at 0x1ad589e20>,
  'ecoli-mass-listener': <ecoli.processes.listeners.mass_listener.MassListener object at 0x1dcfd4730>,
  'mRNA_counts_listener': <ecoli.processes.listeners.mRNA_counts.mRNACounts object at 0x1b8dec790>}

print the topology

[12]:
print(pf(sim_master.ecoli.topology))
{ 'ecoli-chromosome-structure': { 'listeners': ('listeners',),
                                  'fragmentBases': ('bulk',),
                                  'molecules': ('bulk',),
                                  'active_tfs': ('bulk',),
                                  'subunits': ('bulk',),
                                  'amino_acids': ('bulk',),
                                  'active_replisomes': ( 'unique',
                                                         'active_replisome'),
                                  'oriCs': ('unique', 'oriC'),
                                  'chromosome_domains': ( 'unique',
                                                          'chromosome_domain'),
                                  'active_RNAPs': ('unique', 'active_RNAP'),
                                  'RNAs': ('unique', 'RNA'),
                                  'active_ribosome': ( 'unique',
                                                       'active_ribosome'),
                                  'full_chromosomes': ( 'unique',
                                                        'full_chromosome'),
                                  'promoters': ('unique', 'promoter'),
                                  'DnaA_boxes': ('unique', 'DnaA_box')},
  'ecoli-metabolism': { 'metabolites': ('bulk',),
                        'catalysts': ('bulk',),
                        'kinetics_enzymes': ('bulk',),
                        'kinetics_substrates': ('bulk',),
                        'amino_acids': ('bulk',),
                        'listeners': ('listeners',),
                        'environment': ('environment',),
                        'polypeptide_elongation': ( 'process_state',
                                                    'polypeptide_elongation'),
                        'amino_acids_total': ('bulk',)},
  'ecoli-tf-binding_requester': { 'promoters': ('unique', 'promoter'),
                                  'active_tfs': ('bulk',),
                                  'active_tfs_total': ('bulk',),
                                  'inactive_tfs_total': ('bulk',),
                                  'listeners': ('listeners',),
                                  'request': { '_path': ( 'request',
                                                          'ecoli-tf-binding'),
                                               'active_tfs': ('bulk',)}},
  'ecoli-tf-binding_evolver': { 'promoters': ('unique', 'promoter'),
                                'active_tfs': ('bulk',),
                                'active_tfs_total': ('bulk',),
                                'inactive_tfs_total': ('bulk',),
                                'listeners': ('listeners',),
                                'allocate': { '_path': ( 'allocate',
                                                         'ecoli-tf-binding'),
                                              'active_tfs': ('bulk',)}},
  'ecoli-transcript-initiation_requester': { 'environment': ('environment',),
                                             'full_chromosomes': ( 'unique',
                                                                   'full_chromosome'),
                                             'RNAs': ('unique', 'RNA'),
                                             'active_RNAPs': ( 'unique',
                                                               'active_RNAP'),
                                             'promoters': ( 'unique',
                                                            'promoter'),
                                             'molecules': ('bulk',),
                                             'listeners': ('listeners',),
                                             'request': { '_path': ( 'request',
                                                                     'ecoli-transcript-initiation'),
                                                          'molecules': ( 'bulk',)}},
  'ecoli-transcript-initiation_evolver': { 'environment': ('environment',),
                                           'full_chromosomes': ( 'unique',
                                                                 'full_chromosome'),
                                           'RNAs': ('unique', 'RNA'),
                                           'active_RNAPs': ( 'unique',
                                                             'active_RNAP'),
                                           'promoters': ('unique', 'promoter'),
                                           'molecules': ('bulk',),
                                           'listeners': ('listeners',),
                                           'allocate': { '_path': ( 'allocate',
                                                                    'ecoli-transcript-initiation'),
                                                         'molecules': ( 'bulk',)}},
  'ecoli-transcript-elongation_requester': { 'environment': ('environment',),
                                             'RNAs': ('unique', 'RNA'),
                                             'active_RNAPs': ( 'unique',
                                                               'active_RNAP'),
                                             'molecules': ('bulk',),
                                             'bulk_RNAs': ('bulk',),
                                             'ntps': ('bulk',),
                                             'listeners': ('listeners',),
                                             'request': { '_path': ( 'request',
                                                                     'ecoli-transcript-elongation'),
                                                          'molecules': ( 'bulk',),
                                                          'bulk_RNAs': ( 'bulk',),
                                                          'ntps': ('bulk',)}},
  'ecoli-transcript-elongation_evolver': { 'environment': ('environment',),
                                           'RNAs': ('unique', 'RNA'),
                                           'active_RNAPs': ( 'unique',
                                                             'active_RNAP'),
                                           'molecules': ('bulk',),
                                           'bulk_RNAs': ('bulk',),
                                           'ntps': ('bulk',),
                                           'listeners': ('listeners',),
                                           'allocate': { '_path': ( 'allocate',
                                                                    'ecoli-transcript-elongation'),
                                                         'molecules': ('bulk',),
                                                         'bulk_RNAs': ('bulk',),
                                                         'ntps': ('bulk',)}},
  'ecoli-rna-degradation_requester': { 'charged_trna': ('bulk',),
                                       'bulk_RNAs': ('bulk',),
                                       'nmps': ('bulk',),
                                       'fragmentMetabolites': ('bulk',),
                                       'fragmentBases': ('bulk',),
                                       'endoRnases': ('bulk',),
                                       'exoRnases': ('bulk',),
                                       'subunits': ('bulk',),
                                       'molecules': ('bulk',),
                                       'RNAs': ('unique', 'RNA'),
                                       'active_ribosome': ( 'unique',
                                                            'active_ribosome'),
                                       'listeners': ('listeners',),
                                       'request': { '_path': ( 'request',
                                                               'ecoli-rna-degradation'),
                                                    'charged_trna': ('bulk',),
                                                    'bulk_RNAs': ('bulk',),
                                                    'nmps': ('bulk',),
                                                    'fragmentMetabolites': ( 'bulk',),
                                                    'fragmentBases': ('bulk',),
                                                    'endoRnases': ('bulk',),
                                                    'exoRnases': ('bulk',),
                                                    'subunits': ('bulk',),
                                                    'molecules': ('bulk',)}},
  'ecoli-rna-degradation_evolver': { 'charged_trna': ('bulk',),
                                     'bulk_RNAs': ('bulk',),
                                     'nmps': ('bulk',),
                                     'fragmentMetabolites': ('bulk',),
                                     'fragmentBases': ('bulk',),
                                     'endoRnases': ('bulk',),
                                     'exoRnases': ('bulk',),
                                     'subunits': ('bulk',),
                                     'molecules': ('bulk',),
                                     'RNAs': ('unique', 'RNA'),
                                     'active_ribosome': ( 'unique',
                                                          'active_ribosome'),
                                     'listeners': ('listeners',),
                                     'allocate': { '_path': ( 'allocate',
                                                              'ecoli-rna-degradation'),
                                                   'charged_trna': ('bulk',),
                                                   'bulk_RNAs': ('bulk',),
                                                   'nmps': ('bulk',),
                                                   'fragmentMetabolites': ( 'bulk',),
                                                   'fragmentBases': ('bulk',),
                                                   'endoRnases': ('bulk',),
                                                   'exoRnases': ('bulk',),
                                                   'subunits': ('bulk',),
                                                   'molecules': ('bulk',)}},
  'ecoli-polypeptide-initiation_requester': { 'environment': ('environment',),
                                              'listeners': ('listeners',),
                                              'active_ribosome': ( 'unique',
                                                                   'active_ribosome'),
                                              'RNA': ('unique', 'RNA'),
                                              'subunits': ('bulk',),
                                              'request': { '_path': ( 'request',
                                                                      'ecoli-polypeptide-initiation'),
                                                           'subunits': ( 'bulk',)}},
  'ecoli-polypeptide-initiation_evolver': { 'environment': ('environment',),
                                            'listeners': ('listeners',),
                                            'active_ribosome': ( 'unique',
                                                                 'active_ribosome'),
                                            'RNA': ('unique', 'RNA'),
                                            'subunits': ('bulk',),
                                            'allocate': { '_path': ( 'allocate',
                                                                     'ecoli-polypeptide-initiation'),
                                                          'subunits': ( 'bulk',)}},
  'ecoli-polypeptide-elongation_requester': { 'environment': ('environment',),
                                              'listeners': ('listeners',),
                                              'active_ribosome': ( 'unique',
                                                                   'active_ribosome'),
                                              'molecules': ('bulk',),
                                              'monomers': ('bulk',),
                                              'amino_acids': ('bulk',),
                                              'ppgpp_reaction_metabolites': ( 'bulk',),
                                              'uncharged_trna': ('bulk',),
                                              'charged_trna': ('bulk',),
                                              'charging_molecules': ('bulk',),
                                              'synthetases': ('bulk',),
                                              'subunits': ('bulk',),
                                              'polypeptide_elongation': ( 'process_state',
                                                                          'polypeptide_elongation'),
                                              'molecules_total': ('bulk',),
                                              'amino_acids_total': ('bulk',),
                                              'charged_trna_total': ('bulk',),
                                              'uncharged_trna_total': ('bulk',),
                                              'request': { '_path': ( 'request',
                                                                      'ecoli-polypeptide-elongation'),
                                                           'molecules': ( 'bulk',),
                                                           'monomers': ( 'bulk',),
                                                           'amino_acids': ( 'bulk',),
                                                           'ppgpp_reaction_metabolites': ( 'bulk',),
                                                           'uncharged_trna': ( 'bulk',),
                                                           'charged_trna': ( 'bulk',),
                                                           'charging_molecules': ( 'bulk',),
                                                           'synthetases': ( 'bulk',),
                                                           'subunits': ( 'bulk',)}},
  'ecoli-polypeptide-elongation_evolver': { 'environment': ('environment',),
                                            'listeners': ('listeners',),
                                            'active_ribosome': ( 'unique',
                                                                 'active_ribosome'),
                                            'molecules': ('bulk',),
                                            'monomers': ('bulk',),
                                            'amino_acids': ('bulk',),
                                            'ppgpp_reaction_metabolites': ( 'bulk',),
                                            'uncharged_trna': ('bulk',),
                                            'charged_trna': ('bulk',),
                                            'charging_molecules': ('bulk',),
                                            'synthetases': ('bulk',),
                                            'subunits': ('bulk',),
                                            'polypeptide_elongation': ( 'process_state',
                                                                        'polypeptide_elongation'),
                                            'molecules_total': ('bulk',),
                                            'amino_acids_total': ('bulk',),
                                            'charged_trna_total': ('bulk',),
                                            'uncharged_trna_total': ('bulk',),
                                            'allocate': { '_path': ( 'allocate',
                                                                     'ecoli-polypeptide-elongation'),
                                                          'molecules': ( 'bulk',),
                                                          'monomers': ('bulk',),
                                                          'amino_acids': ( 'bulk',),
                                                          'ppgpp_reaction_metabolites': ( 'bulk',),
                                                          'uncharged_trna': ( 'bulk',),
                                                          'charged_trna': ( 'bulk',),
                                                          'charging_molecules': ( 'bulk',),
                                                          'synthetases': ( 'bulk',),
                                                          'subunits': ( 'bulk',)}},
  'ecoli-complexation_requester': { 'molecules': ('bulk',),
                                    'listeners': ('listeners',),
                                    'request': { '_path': ( 'request',
                                                            'ecoli-complexation'),
                                                 'molecules': ('bulk',)}},
  'ecoli-complexation_evolver': { 'molecules': ('bulk',),
                                  'listeners': ('listeners',),
                                  'allocate': { '_path': ( 'allocate',
                                                           'ecoli-complexation'),
                                                'molecules': ('bulk',)}},
  'ecoli-two-component-system_requester': { 'listeners': ('listeners',),
                                            'molecules': ('bulk',),
                                            'request': { '_path': ( 'request',
                                                                    'ecoli-two-component-system'),
                                                         'molecules': ( 'bulk',)}},
  'ecoli-two-component-system_evolver': { 'listeners': ('listeners',),
                                          'molecules': ('bulk',),
                                          'allocate': { '_path': ( 'allocate',
                                                                   'ecoli-two-component-system'),
                                                        'molecules': ( 'bulk',)}},
  'ecoli-equilibrium_requester': { 'listeners': ('listeners',),
                                   'molecules': ('bulk',),
                                   'request': { '_path': ( 'request',
                                                           'ecoli-equilibrium'),
                                                'molecules': ('bulk',)}},
  'ecoli-equilibrium_evolver': { 'listeners': ('listeners',),
                                 'molecules': ('bulk',),
                                 'allocate': { '_path': ( 'allocate',
                                                          'ecoli-equilibrium'),
                                               'molecules': ('bulk',)}},
  'ecoli-protein-degradation_requester': { 'metabolites': ('bulk',),
                                           'proteins': ('bulk',),
                                           'request': { '_path': ( 'request',
                                                                   'ecoli-protein-degradation'),
                                                        'metabolites': ( 'bulk',),
                                                        'proteins': ('bulk',)}},
  'ecoli-protein-degradation_evolver': { 'metabolites': ('bulk',),
                                         'proteins': ('bulk',),
                                         'allocate': { '_path': ( 'allocate',
                                                                  'ecoli-protein-degradation'),
                                                       'metabolites': ('bulk',),
                                                       'proteins': ('bulk',)}},
  'ecoli-chromosome-replication_requester': { 'replisome_trimers': ('bulk',),
                                              'replisome_monomers': ('bulk',),
                                              'dntps': ('bulk',),
                                              'ppi': ('bulk',),
                                              'active_replisomes': ( 'unique',
                                                                     'active_replisome'),
                                              'oriCs': ('unique', 'oriC'),
                                              'chromosome_domains': ( 'unique',
                                                                      'chromosome_domain'),
                                              'full_chromosomes': ( 'unique',
                                                                    'full_chromosome'),
                                              'listeners': ('listeners',),
                                              'environment': ('environment',),
                                              'request': { '_path': ( 'request',
                                                                      'ecoli-chromosome-replication'),
                                                           'replisome_trimers': ( 'bulk',),
                                                           'replisome_monomers': ( 'bulk',),
                                                           'dntps': ('bulk',),
                                                           'ppi': ('bulk',)}},
  'ecoli-chromosome-replication_evolver': { 'replisome_trimers': ('bulk',),
                                            'replisome_monomers': ('bulk',),
                                            'dntps': ('bulk',),
                                            'ppi': ('bulk',),
                                            'active_replisomes': ( 'unique',
                                                                   'active_replisome'),
                                            'oriCs': ('unique', 'oriC'),
                                            'chromosome_domains': ( 'unique',
                                                                    'chromosome_domain'),
                                            'full_chromosomes': ( 'unique',
                                                                  'full_chromosome'),
                                            'listeners': ('listeners',),
                                            'environment': ('environment',),
                                            'allocate': { '_path': ( 'allocate',
                                                                     'ecoli-chromosome-replication'),
                                                          'replisome_trimers': ( 'bulk',),
                                                          'replisome_monomers': ( 'bulk',),
                                                          'dntps': ('bulk',),
                                                          'ppi': ('bulk',)}},
  'ecoli-mass-listener': { 'bulk': ('bulk',),
                           'unique': ('unique',),
                           'listeners': ('listeners',)},
  'mRNA_counts_listener': { 'listeners': ('listeners',),
                            'RNAs': ('unique', 'RNA')},
  'allocator': { 'request': ('request',),
                 'allocate': ('allocate',),
                 'bulk': ('bulk',)}}

plot the topology

[13]:
ecoli_master_composite = Composite({
    'processes': sim_master.ecoli.processes,
    'topology': sim_master.ecoli.topology,
})
topology_settings = get_ecoli_partition_topology_settings()
fig = plot_topology(ecoli_master_composite, topology_settings)
../_images/notebooks_ecoli_simulations_24_0.png

run simulation

[14]:
sim_master.run()
master_output = sim_master.query()

Simulation ID: 72a05148-2d74-11ec-947e-acde48001122
Created: 10/14/2021 at 21:57:53
Completed in 141.15 seconds

Mass Fraction Summary Plot

[30]:
from ecoli.analysis.massFractionSummary import Plot as massFractionPlot

fig = massFractionPlot(master_output).do_plot(master_output)
fig
[30]:
../_images/notebooks_ecoli_simulations_28_0.png