Using CompuCell3D as a Platform to Construct Multicellular Virtual Tissues to Explore the Interactions between Infection, Host Tissues and Immune Response
James A. Glazier
Dept. of Intelligent Systems Engineering
and Biocomplexity Institute
Indiana University
Bloomington, IN 47408, USA
IMAG MSM WG on Multiscale Modeling and Viral Pandemics
Thursday, June 2, 2022
IU Bloomington: [Dr. Priyom Adhyapok], [Dr. Dragos Amarie], [Dr. Josua Aponte-Serrano], [Dr. Ariel Balter], Dr. Maria Bondesson, [Kira Berithaupt], [Dr. Stephen Burns], [Dr. Sherry Clendenon], [Alin Comanescu], [Dr. Clayton Davis], Dr. Rita de Almeida, [Aaron Dy], Juliano Ferrari-Gianlupi, Dr. Geoffrey Fox, [Dr. Xiao Fu], [Garth Gast], [Dr. Thomas Gast], [Dr. J. Scott Gens], [Samuel R. Heaps], [Randy Heiland], [Dr. Susan Hester], [Dr. Mitja Hmeljak], [Dr. Srividhya Jayaraman], [Dr. James Klaunig], [Dr. Roeland Merks], [Nazanin Mosavian], [Guilherme Oliveira], [Dr. Nikodem Poplawski], Ellen Quardokus, [Ryan Roper], Dr. TJ Sego, [Dr. Abbas Shirinifard], Dr. James Sluka, [Dr. Endre Somogyi], Dr. Maciej Swat, Dr. Gilberto Thomas, Dr. Javier Toledo, Joel Vanin, [Ruei Wu], [Benjamin Zaitlen], [Dr. Ying Zhang]. Indiana University, School of Medicine: Dr. Robert Bacallao, [Dr. Nicholas F. Berbari], [Dr. Kenn Dunn], [Evan V. Greene], [Britney-Shea Herbert], Dr. Tarunendu Mapder, Dr. Sara K. Quinney, Dr. Robert Stratford, [Wei Min Xu]. [University of Houston: Dr. Jan-Ake Gustafsson, Dr. Catharine McCollum]. [EPA: Dr. Thomas Knudsen, Dr. Imran Shah, Dr. John Wambaugh, Dr. Nicole Kleinstreuer]. [University of Notre Dame: Dr. Santiago Schnell]. [KUMC: Dr. Charles Little]. University College London: Ana S. Dias, Irene de Almeida, Dr. Claudio Stern, [University of Dundee: Dr. Mark Chaplain]. [Moffitt Cancer Center: Dr. Heiko Enderling]. [CRG Barcelona: Dr. James Sharpe]. [Cambridge University: Dr. Octavian Voicelescu]. [University of Paris 6: Dr. Francois Graner]. [University of Wisconsin Milwaukee: Dr. Roshan D’Souza]. [UCSF: Dr. Tony Hunt], [Emory University: Dr. Fereydoon Family, Dr. Hans Grossniklaus]. [Georgia State University: Dr. Yi Jiang]. [University of New Mexico, School of Medicine: Heather H. Ward, Angela Wandinger-Ness. Amgen: Michael Boedigheimer, Michael Damore, William G. Richards]. [Otsuka Pharmaceuticals: Sandro Rossetti]. [Mayo Clinic (Rochester, MN): Peter C. Harris]. [Exxon Research: Dr. Michael P. Anderson, Dr. Gary S. Grest]. LifeOmic: Ananth Iyer [Matthew Phillips]. TU Dresden: Dr. Lutz Brusch. University of Melbourne: Jessica Crawshaw, Dr. James M. Osborne. Georgia State University: Dr. Richard Plemper. University of Pittsburgh: Dr. Bard Ermentrout, Dr. Jason Shoemaker, Jordan Weaver. Carlow University: Dr. Ericka Mochan. [University of Tennessee Medical Center: Dr. Amber Smith]. NCSU: Dr. Julio Belmonte. Université de Montréal: Dr. Morgan Craig. Pasadena City College: Trinity Chung
Running CompuCell3D on nanoHUB
If you want to follow along on nanoHUB and don’t have an account go to www.nanoHUB.org to register (it takes about 2 minutes to do)
Installing CC3D on Desktop
Multiscale Biomedical Questions
Development: How does a fertilized egg organize into an adult?
Homeostasis: How does an organism maintain itself?
Developmental Diseases: How does failure of homeostasis lead to pathology?
Infectious Diseases: How do pathogens and host interact?
Medicine/Bioengineering: How can we control, repair or create new forms of these processes?
http://www.stanford.edu/group/Urchin/LP/
[Lauren Palumbi]
http://www.kvarkadabra.net/images/articles/Regeneracija-organov_1_original.jpg
All of these exhibit complex interplay of physical and biochemical mechanism
Can We Make Engineer the Immune Response?
“Using digital twins in viral infection,” Reinhard Laubenbacher, James P. Sluka, James A. Glazier,
Science 371: 1105-1106, 2021, DOI: 10.1126/science.abf3370
Many Layers of Interaction between Molecular Scales and Systemic Outcomes
6
Reaction: Source ODE:
A -> NA; Vmax_A*A/(Km_A+A)
NA+GSH -> NAGSH; kNaGsh*NA*GSH
$X1 -> GSH; kGsh*(GSHmax-GSH)
A -> Ac; Vmax_II_A*A/(Km_II_A+A)
Periportal
Pericentral
Whole body
(and population)
Subcell
Organ
Tissue
Cell
Biology (in vivo)
Computation (in silico)
Hepatocyte
Red Blood Cell
Blood�Portion
k=0.05
k=0.0005
k=0.05
k=0.0005
k=0.0005
k=0.0005
k=0.05
k=0.05
k=0.0005
Length Scale
Virtual Tissues
Virtual Tissues representing individual cells particularly helpful when cells move, change shape or individual cell behaviors are critical: e.g. cancer metastasis, wound healing, neoangiogenesis,…
Spatial Computer Simulations to Explain How Interacting Chemical, Physical and Biological Mechanisms lead to Outcomes
Dynamic Network/
ODE/Gillespie Level
Multi-Cellular/Potts Level
Diffusive Signaling/
PDE Level
CompuCell3D simulation of vascularized tumor growth
Morpheus simulation of colonic crypt
VirtualLeaf Simulation plant development
Simmune simulation spatial aspects of intra and inter cell signaling
Lammps simulation of red-blood cell morphology
Simulation Software with Explicit Cell Shapes
Modeling epithelial sheets, Satoru Okuda
Modeling tumor growth Kasia Rejniak, Moffitt Center, Tampa
CompuCell3D VT Simulation Environment
Flexible rapid construction of VT-based toxicological and developmental toxicity models
Supports:
Multicellular Models specified in CC3DML and Python
Subcellular and PBPK Models can be specified in SBML, CellML, Antimony or MaBoSS, CellDesigner,…
Models are compact, easy to extend and share
Open-source Windows/MAC/LINUX: www.compucell3d.org
Cluster and cloud executable, e.g., on AWS or nanoHUB servers
Customized Editor
Twedit++
Simulation Execution, Control Visualization Tool
Player
Desktop Version
nanoHUB Web Version
Jupyter Notebook Version Available Soon
CompuCell3D Supported Concepts
nutrient
MDE
Objects: Fields, Generalized Cells, Links, Networks
Fields:
Properties: Concentration, Diffusion Constants, Decay Constants
Behaviors: Diffusion, Decay,
Interactions: Reaction, Secretion, Absorption, Advection
Generalized Cells:
Properties: Volume, Polarity, Surface Area, Inertia, Density, Viscosity, Elasticity, Plasticity, Substructure, Adjacency
Behaviors: Motility, Growth, Division, Death
Interactions: Adhesion, Chemotaxis, Differentiation, Secretion, Absorption
Links:
Properties: Length, Target Length, Elastic Modulus, Yield Strain, Target Angles, Bending Moduli
Behaviors: Creation, Destruction, Change of Target Length
Interactions: Exert Forces on Cells, Pulled on By Cells
Dynamic Networks (Specified in SBML, CellML, Antimony, MaBoss):
Properties: Values
Behaviors: ODEs, Stochastic Evolution
Interactions: Activation, Inhibition, Reaction, Decay
Flexible and It Works…
Running a Simple Angiogenesis Example on nanoHUB CompuCell3D
Merks RMH, Perryn ED, Shirinifard A, Glazier JA (2008) Contact-Inhibited Chemotaxis in De Novo and Sprouting Blood-Vessel Growth. PLoS Comput Biol 4: e1000163. https://doi.org/10.1371/journal.pcbi.1000163
Features and Capabilities of CompuCell3D
Creating and Running a Simulation in CC3D
Launching CompuCell3D on nanoHUB
1
2
3
1
4
5
6
Twedit++ Provides User-Supported Model Definition
You will see Player Open
We want to Switch to Twedit++ (If you have Twedit++ open already you can skip this step)
You can launch Twedit++ by hitting the editor icon (1)
Or
pulling down the “File” menu (2) and selecting Start Twedit++ (3)
Or just hit the “Twedit++” Icon in the toolbar
On a desktop installation search and launch Twedit++
1
2
3
Quick troubleshooting of windows not displaying properly on nanoHub
1
Simulation Wizard allows Rapid Model Structure Specification
In nanoHUB you will see a single window with Twedit++ foregrounded (on a desktop Payer and Twedit++ are separate apps)
Select “CC3D Project” Pulldown (1)
Then Select “New CC3D Project” (2)
1
2
Launching Simulation Wizard in Twedit++
In nanoHUB you will see a single window with Twedit++ foregrounded (on a desktop Payer and Twedit++ are separate apps)
Select “CC3D Project” Pulldown
Then Select “New CC3D Project”
CompuCell3D Simulation Wizard will open
Naming a Simulation in Wizard
Type the name of the simulation (only alphanumeric characters or underscores, i.e. no !-? etc). We will call it “CellGrowthSimulation” (1)
Make Sure that the Simulation Directory is a subdirectory of your user-name directory
(If it isn’t hit “Browse” (2) and select your user directory (3) in the pop-up window and hit “Choose” (4))
Hit “Next>” (5)
1
2
3
4
5
Specifying a Simulation Configuration in Wizard
The General Simulation Properties window allows us to change the size and duration of a simulation
We will use the defaults so just hit “Next>” (1)
1
Specifying Cell Types in Wizard
In the Cell Type Specification Window we will Create two Cell types, “Cell1” and “Cell2”
Type the name “Cell1” into the “Cell Type” Line (1) and hit “Add” (2)
You will see Cell1 in the table of Cell Types
Then type “Cell2” into the “Cell Type” (3) Line and hit “Add” (4)
Then hit “Next>” (5)
3
2
1
4
5
Selecting Cell Properties/Behaviors in Wizard
The Chemical Fields window allows us to specify chemical species, we won’t use it, so just hit “Next>” (1)
We want our cells to have variable volume, stick to each other and grow and divide, so we select the “Contact” (for adhesion) (2), “VolumeLocalFlex” (3) for variable volume, “Growth” (4) and “Mitosis” (50 boxes (Selecting “Growth” will automatically hide the “VolumeFlex” option)
Make sure you have selected all four boxes, then hit “Next>” (6)
1
6
2
4
5
3
Creating Simulation Specification in Wizard
To create the simulation, hit “Finish” (1)
You will return to the Main Twedit++ window
To view your simulation double click on “CellGrowthSimulation” (2)
1
2
Saving a Simulation in Twedit++
To save your simulation, you can hit the “Save Project” (1) or “Save All” (2) Icons in the Tool Bar or Pull Down CC3D Project (3) and Select “Save CC3D Project” (4)
1
2
3
4
Running a CC3D Simulation
To run the simulation, you have a few options
Right click on the “CellGrowthSimulation.cc3d” in the left-hand (1) panel and select “Open in Player” (2)
In the Desktop Version you can also hit the “CC3D” icon
Then switch to the Player tab to view the simulation (3)
1
2
3
Controlling Tabs in nanoHUB
You should see something like this
We will want to resize the tab to see what is going on
Manipulating CC3D Player in nanoHUB
1
2
4
3
Starting, Stepping, Pausing and Stopping Simulations in CC3D Player
The four buttons in the menu bar control simulation operation
“Run” Puts the simulation into continuous execution (1)
“Step” Single steps the simulation if it is not yet executing or is paused and then pauses, or executes one additional step if the simulation is currently executing (2)
“Pause” Pauses simulation execution allowing restart of the current run (3)
“Stop” terminates simulation execution and does not allow restart of the current run (4)
Don’t hit “Stop” unless you want to restart the simulation
1
2
3
4
Congratulations—You’ve Just Written A CC3D Simulation Cell Growth and Division Simulation
1
CC3D Specification Structure
CC3D Simulations have 2 main components:
a CC3DML specification of static aspects for simple and rapid definition
and a
Python specification of dynamic aspects for maximum flexibility and to allow data analysis
CC3DML
Python
Looking at a Simulation Specification
or
1
2
3
4
CC3DML Simulation Specification
CC3DML Simulation Specification
CC3DML Simulation Specification
CC3DML Simulation Initial Conditions
CC3D Python
2
1
CC3D Python Cell Initialization
The Python code consists of a series of functions that operate on the simulation
The start function acts once at the beginning of a simulation
We see a Python loop (iterator) for cell
acting on all cells in a cell_list (note the self.)
CC3D Python Cell Growth
The step function acts every time step of the simulation
We see a Python loop (iterator) for cell acting on all cells in the cell_list that causes their target volume to grow
(you could play with the growth rate if you wanted to explore)
CC3D Python Cell Division
If a cell’s volume get too big, we want it to divide
We create an empty list [] to hold the list of cells to divide
Look at all cells, add (append) the big ones to the list
CC3D Python Cell Division
If a cell’s volume get too big, we want it to divide
We create an empty list to hold the list of cells to divide
Look at all cells, add the big ones to the list
Then iterate over the list of cells to divide and call a cell division function to make the division
CC3D Python Cell Division
If a cell’s volume get too big, we want it to divide
We create an empty list to hold the list of cells to divide a list
Look at all cells, add the big ones to the list
Then iterate over the list and call a cell division function to make the division
Finally, we need to say what happens when the cells divide (update_attributes function)
Here, the daughter cell inherits half the target volume of the parent
All other attributes of the parent are copied (clone) to the daughter cell except that if the parent cell was of type Cell1, the daughter cell is of type Cell2 and vice versa
Coupling MultiCellular Models with Network Dynamics
Coupling Multicellular Models to Dynamic Network Models is easy in CC3D
SBML and CompuCell3D—Cell Cycle
Simple Workflow:
1) Download an SBML Model
e.g. Tyson2001_Cell_Cycle_Regulation
2) Load the SBML model into the cell. Create an auxiliary field to display the CycB concentration in the cell
3) Execute the simulation—model runs independently in each cell
def __init__(self, frequency=1):
SteppableBasePy.__init__(self, frequency)
self.track_cell_level_scalar_attribute(field_name='CycB', attribute_name='lastCycB')
def start(self):
model_file = './Simulation/BIOMD0000000195_url.xml'
self.add_sbml_to_cell_ids(model_file=model_file, model_name='cellcycle', cell_ids=[1], step_size=0.2)
def step(self,mcs):
for cell in self.cellList:
cell.dict['lastCycB'] = CycB
self.timestepSBML()
Antimony and CompuCell3D—Delta-Notch Patterning
Human intestinal crypt cup. Chen et al. MSB (2017)
Notch, a transmembrane receptor that coordinates a signaling system, regulating cell fates and pattern formation
Simple Workflow:
1) Express intracellular model in Antimony in CC3D Model Specification
2) Load the Antimony model into each cell
3) Execute the simulation—model runs independently in each cell
4) Couple Delta and Notch between cells
5) Execute simulation
model_string = '''
// Reactions
J1: -> N; Davg^k/(a + Davg^k) - N;
J2: -> D; v*(1/(1 + b*N^h) - D);
// Species initializations
Davg = 0.4;
D = 0.5;
N = 0.5;
// Variable initializations
k = 2;
a = 0.01;
v = 1;
b = 100;
h = 2;
'''
Antimony and CompuCell3D—Delta-Notch Patterning
Simple Workflow:
1) Express intracellular model in Antimony in CC3D Model Specification
2) Load the Antimony model into each cell, specify frequency of time-stepping
3) Couple Delta and Notch between cells
4) Execute simulation
model_string = '''
// Reactions
J1: -> N; Davg^k/(a + Davg^k) - N;
J2: -> D; v*(1/(1 + b*N^h) - D);
…
'''
def start(self):
self.add_antimony_to_cell_types(model_string=model_string, model_name='DN’, cell_types=[self.CELLA], step_size=0.2)
for cell in self.cell_list:
cell.sbml.DN['D'] = np.random.uniform(0.9,1.0)
cell.sbml.DN['N'] = np.random.uniform(0.9,1.0)
Def step(self,mcs):
self.timestep_sbml()
def step(self,mcs):
for cell in self.cell_list:
Davg = 0
nn = 0.0
for (neighbor,common_surface_area) in self.get_cell_neighbor_data_list(cell):
if neighbor:
Davg += neighbor.sbml.DN['D']
nn += 1.0
if nn:
cell.sbml.DN['Davg’] = Davg/nn
MaBoSS + CC3D
Sample code of MaBoSS in CompuCell3D
True
False
Boolean states
Notch-expressing
Delta-expressing
Non-expressing
Phenotypes
Network coupling cell cycle and delta-notch signaling
Cell
Cell
CC3D COVID-19 Drug Treatment Explorer�on nanoHUB
Search cc3dcovid19
Select COVID-19 drug Treatment Explorer
Adjust Windows
Hit “Tile” in Windows Pulldown Menu
49
CC3D COVID-19 Drug Treatment Explorer
Juliano Ferrari Gianlupi, Tarunendu Mapder, T. J. Sego, James P. Sluka, Sara K. Quinney, Morgan Craig, Robert E. Stratford Jr, and James A. Glazier. "Multiscale Model of Antiviral Timing, Potency, and Heterogeneity Effects on an Epithelial Tissue Patch Infected by SARS-CoV-2." Viruses 14 (2022): 605.
Basic Tissue Patch Model with Simplified Immune Cells
“A modular framework for multiscale, multicellular, spatiotemporal modeling of acute primary viral infection and immune response in epithelial tissues and its application to drug therapy timing and effectiveness,” T. J. Sego, et al., 21 Dec 2020 PLOS Computational Biology, https://doi.org/10.1371/journal.pcbi.1008451
Uninfected
Infected
Virus releasing
Dead
Epithelial
Immune
Virus
Cytokine
Oxidative Agent
On-line version available at https://nanohub.org/tools/cc3dcovid19
Drugs like Remdesivir inhibit RNA synthesis in viral replication
By Boghog - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=89892581
Active agent is a metabolite of the prodrug
How Does Spatial Inhomogeneity Affect the Predictions of Pharmacokinetic Models?
Scivit, 28 April 2020, https://en.wikipedia.org/wiki/ADME#/media/File:Pharmacokinetics.svg
Relative uptake rates
Relative elimination rates
Ferrari Gianlupi, Juliano, et al. "Multiscale Model of Antiviral Timing, Potency, and Heterogeneity Effects on an Epithelial Tissue Patch Infected by SARS-CoV-2." Viruses 14 (2022): 605.
Cellular Metabolic Heterogeneity Worsens Outcomes
More potent drug
Heterogeneous
Homogeneous
Longer period in between doses
Potency multiplier
100x 50x 33x 25x 20x 16x 14x 12.5x 11x 10x
Potency multiplier
100x 50x 33x 25x 20x 16x 14x 12.5x 11x 10x
Investigating Biological Mechanisms: Cells that Don’t Metabolize the Prodrug into the Antiviral Well Responsible for Most Viral Production
“Homework”—Edit the Dosing nanoHUB Demo to include this variance
Strengths of Virtual Tissues
55
Mechanica VT Simulation Environment
Center-model simulation of failed and successful (blue) gastrulation in sea urchin
56
Jupyter CC3D
Links and Disclosures
Teach 2022 Virtual Summer Workshop on these Methods August 1-7
2021 Course is available on YouTube: https://youtube.com/playlist?list=PLiEtieOeWbMIitJHcLMrDvKHDOJRVpUbO
Happy to support you apply CC3D in your applications: jaglazier@gmail.com
Support: NIH NIBIB-U24EB028887, NIGMS-R01GM122424, NSF-188553, NSF-186890, NSF-1720625, NIGMS-R01GM076692, NIGMS-R01GM077138, NIBIB/NIGMS/NIEHS-U01-GM111243, Falk Medical Research Trust, IUCRG, EPA, NSF, AMGEN
Disclosure: Dr. Glazier and other investigators listed have filed for international patent protection for the ADPKD and Diabetic Retinopathy therapies under development and have financial interest in Apoptocys Inc. and Virtual Tissues For Health LLC, also owns a small amount of stock in Gilead. D. Stratford is employed by Otsuka Pharmaceutical Co., Ltd.