View - OhioLINK Electronic Theses and Dissertations Center

UNIVERSITY OF CINCINNATI
12/10/2008
Date:___________________
Balakumar Rajendran
I, _________________________________________________________,
hereby submit this work as part of the requirements for the degree of:
Master of Science
in:
Computer Engineering
It is entitled:
3D Agent Based Model of Cell Growth
This work and its defense approved by:
Dr. Carla Purdy
Chair: _______________________________
Dr. Daria Narmoneva
_______________________________
Dr. Ali Minai
_______________________________
_______________________________
_______________________________
3D Agent Based Model of Cell Growth
A thesis submitted to the
Division of Research and Advanced Studies
of the
University of Cincinnati
in partial fulfillment of the
requirements for the degree of
MASTER OF SCIENCE
in the Department of Electrical and Computer Engineering
of the College of Engineering
December, 2008
by
Balakumar Rajendran
B.E. in Electronics and Communication Engineering
Anna University, Chennai, India
Thesis Advisor and Committee Chair: Dr. Carla Purdy
ABSTRACT
This research aims at modeling the cell cycle regulation as a three dimensional Agent
Based Model. Agent Based Modeling (ABM) is a computational model for simulating
autonomous entities in a network. ABM is emerging as a powerful tool in the field of systems
biology. ABM is preferred over traditional modeling methods, as it takes the spatial dynamics of
the interactions into account. The system is modeled as a collection of autonomous decision
making entities called agents. Each of these agents has its own set of characteristics and
behavioral rules that are highly adaptive to its surrounding environment. Since the agents have
their own sets of characteristics and rules, they can be implemented using the Object Oriented
Programming (OOP) concept. OOP is a powerful programming technique that can be used to
model and design applications effectively. Previously our lab implemented an ABM model of the
phage lambda virus and used this model to study the behavior of phage lambda under various
conditions. Building on our experience, we have developed a more complex agent based model
in a Java based ABM platform. The cell cycle model is modeled in MASON, a very robust and
efficient ABM platform that supports strong 3D visualization and parallelization. The model
shows how the cells interact among each other at an intercellular level. The stages in the cell
cycle are implemented and the characteristics of cell growth are studied. This particular model
has also been extended to simulate a wound condition and its growth characteristics are again
observed. The model is run for certain base parameter values and the system can be simulated for
other conditions by changing these parameters. Tissue Engineering is an important and growing
field, and computational models such as the one developed in this thesis can be very useful tools
for biologists and tissue engineers.
iii
iv
Acknowledgments
First of all, I would like to thank my research advisor, Dr. Carla Purdy who has been with
me through every step of my research. I am also deeply indebted and grateful to my advisor for
her constant guidance and support. Her patience and perseverance has helped me a lot to stay
focused on this research. Her suggestions and remarks during the difficult phase of this research
were like the myriad stars of a summer night. I also thank her for giving me an opportunity to
work under her guidance.
I would like to extend my gratitude to Dr. Ali Minai and Dr. Daria Narmoneva, my
committee members for their presence in my Master’s thesis defense. I would also like to thank
them for their valuable suggestions and feedbacks.
I would also like to personally thank Swathi Balaji and Varun Krishnamoorthy, members
of the Vascular Tissue and Cellular Engineering lab for their time to review the model and their
suggestions to make the model better.
My acknowledgment would not be complete had I not mentioned my friends, Chandru,
Divya, Mani, Sid and Suresh who go with the proverb “A friend in need is a friend indeed”.
They have always been with me during the ups and downs. Special thanks to all burnet and
riddle boys and girls for making the stay in UC a very memorable one.
I am dedicating this thesis to my mother and father, for without their guidance, support
and inspiration the roads that I took so far would have been much tougher.
v
Contents
1. Introduction
1
1.1. Motivation ........................................................................................................................ 1
1.2. Advantages of in silico over in vitro ................................................................................ 1
1.3. Systems Biology............................................................................................................... 2
1.4. Research Goals ................................................................................................................. 2
1.5. Organization of the Thesis ............................................................................................... 3
2. Background
5
2.1 Introduction to Agent Based Modeling (ABM) ................................................................... 5
2.2 Why Agent Based Modeling? .............................................................................................. 6
2.2.1 Definition of an Agent ................................................................................................ 7
2.2.2 Traditional Modeling Methods and Their Disadvantages .......................................... 8
2.2.3. Advantages of ABM ................................................................................................ 10
2.3 Comparison of Various ABM Tools .................................................................................. 11
2.4 MASON: The ABM Tool of Choice .................................................................................. 12
2.4.1 Features of MASON ................................................................................................. 14
2.4.2 MASON Architecture ............................................................................................... 14
vi
2.5 Case Study: The Skin Cell Cycle ....................................................................................... 17
2.6 Background of the Biological Aspects of the Model ......................................................... 20
3. Implementation
22
3.1. Initial Model Conditions and Basic Model Structure .................................................... 22
3.2. Rule-based Modeling ..................................................................................................... 23
3.3. Modeled Cell Types ....................................................................................................... 24
3.4. Cell Cycle Process .......................................................................................................... 25
3.5. Functioning of the Cell Cycle from Programming Point of View ................................. 32
3.6. Flowchart for the Agent Based Model ........................................................................... 33
3.7. Composition of the Environments in the Model ............................................................ 34
3.8. Agents Modeled in the System and Their Rules ............................................................ 34
3.9. Unified Modeling Language Diagrams ............................................................................ 37
3.9.1 Entity Relationship Diagram ................................................................................ 37
3.9.2 Class-Responsibility-Collaboration Cards and Class Diagrams .......................... 38
3.9.3 Agent UML........................................................................................................... 43
3.10. Data Structure in the Code ............................................................................................. 46
4. Results
48
4.1 Simulation Arrangement ................................................................................................ 48
4.2 Parameters Involved in the Simulation .......................................................................... 49
4.3 Simulation Results.......................................................................................................... 52
4.4 Simulation of Wound Condition .................................................................................... 60
4.5 Variation of Simulation Parameters ............................................................................... 65
vii
4.6 Improvements Suggested by Biologists .........................................................................65
4.7 Performance Graph ....................................................................................................... 66
5. Conclusions and Future Work
68
5.1. Conclusions ....................................................................................................................... 68
5.2. Future Work ...................................................................................................................... 69
5.3. Presentation Based on this Work ...................................................................................... 71
Bibliography
72
Appendix: 3D Agent Based Model of Cell Growth
77
viii
List of Figures
2.1
Block Diagram of an Agent ……..……………………………………………………… 8
2.2
MASON Model Checkpoint and Recovery Design [22] ………………………….…… 13
2.3
MASON Architecture ……………..…………………………………………………… 16
2.4
Important Fields in the Model in MASON ..................................................................... 17
3.1
Interphase and Mitosis Phase Flow …...…………..……………………………………. 26
3.2
Cell Cycle Process ……........…………………………………..………………………. 26
3.3
Cell Activity in G1 Subphase ………………..………………………………………… 27
3.4
Cell Activity in S Subphase ……….……………..…………………………………….. 28
3.5
Cell Activity in M Phase …….....………………………………………………………. 29
3.6
Flowchart for the Agent Based Model …………………………………………………. 33
3.7
Entity Relationship Diagram of the Model …………………………………………….. 38
3.8(a) CRC Card for the CELL, STATIONARY and MOBILE Classes ………………….….. 39
3.8(b) CRC Cards for Substrate, Cell Monomer, Monomer and Dimer Classes …..…………. 40
3.8(c) CRC Cards for Cell Dimer, Mitosis Monomer and Quiescent Classes ....………..……. 41
3.9(a) Class Diagrams …………………………………………………....…………………… 42
3.9(b) Class Diagrams for Mitosis Monomer and Quiescent Classes ....……………………… 43
ix
3.10
Class Diagrams for Substrate Class Using AUML …………..………………………… 44
3.11
Class Diagrams for Other Classes Using AUML .……………...…………….………... 45
4.1
Parameters Involved in the Simulation ……...…………………………………………. 49
4.2
Snapshot of the Console Window …………………………………………….……....... 50
4.3
Snapshot of the Initial Condition of the Simulation …......…………………………….. 53
4.4
Snapshot of Agents in M Phase ....................................................................................... 54
4.5
Snapshot of Agents in G1-S-G2-M Phase and M Phase-G1 Subphase ….….…..……... 55
4.6
Snapshot of Agent in G0 Subphase ……………………………………….…………… 56
4.7
Snapshot of the Model at an Intermediate Level …..………………….…………….…. 57
4.8
Snapshot of the Model Towards the End ......................................................................... 57
4.9
Cell Growth Characteristics with Base Parameters ......................................................... 59
4.10
Snapshot When Cells Are Deleted ................................................................................... 60
4.11(a) Snapshot Taken at 29th Iteration ...................................................................................... 61
4.11(b) Snapshot Taken at 30th Iteration ...................................................................................... 61
4.11(c) Snapshot Taken at 32nd Iteration ...................................................................................... 62
4.11(d) Snapshot Taken at 37th Iteration ...................................................................................... 62
4.11(e) Snapshot Taken at 42nd Iteration ...................................................................................... 62
4.11(f) Snapshot Taken at 47th Iteration ...................................................................................... 62
4.11(g) Snapshot Taken at 51st Iteration ....................................................................................... 63
4.12
Cell Growth Characteristics When Wound Occurred ...................................................... 64
4.13
Cell Growth Characteristics After Stabilization .............................................................. 64
4.14
Performance Graph of the System ................................................................................... 67
x
List of Tables
2.1
Comparison of Agent Based Model Tools ....................................................................... 11
3.1
Tabulation of Rules Undertaken in Cell Cycle ................................................................ 30
4.1
Base Parameter Values Considered for the Simulation ................................................... 51
4.2
Size of the Agents Modeled in the System ...................................................................... 52
4.3
Number of Agents During the Simulation ....................................................................... 58
xi
Chapter 1
Introduction
Chapter 1 begins with the motivation that led to this research. The chapter covers the factors that
led to the in silico approach over in vitro. The research goals have also been defined.
1.1 Motivation
The main motivation behind the thesis is to provide biologists computational support for
experiments which up until now must be performed exclusively in vitro. Performing many
experiments in silico is much faster and has the potential to aid the experimenter in deciding
which experiments to conduct in the lab, thus potentially saving time and expensive resources.
And some biological simulations can potentially be made even faster in silico by employing
parallelization of the simulations. But the value of the simulations depends a great deal on how
accurate the underlying models can be made.
1.2 Advantages of in silico Over in vitro
The main advantages of in silico experimentation over in vitro experimentation are as follows:
1. in vitro experiments take a long time when compared to the simulations that are carried
out in silico. It will be easier to collect the in silico results and analyze them.
1
2. The resources needed to perform an in vitro experiment will definitely be more when
compared to in silico. In addition, different in vitro experiments will need different
materials and resources, while all the simulations can be done on the same computer.
1.3 Systems Biology
Systems biology is an emergent field that aims at system-level understanding of biological
systems [1]. One of the main ideas behind systems biology is to develop computational
capabilities to understand complex biological systems. Other goals related to systems biology
would be to identify protein machines, explore functions in microbial communities and also
characterize gene regulatory systems. Here in this thesis, a systems biology approach is adopted
to model a cell cycle system.
1.4 Research Goals
The goals of this research are as follows:
1. To design an Agent Based Model (ABM) that simulates the cell cycle regulation
behavior.
2. To choose the correct agent based model platform to easily enable further development of
the model described here. For example, only certain agent based models support
parallelism and 3D visualization.
3. To implement the cell cycle regulation process in the model chosen.
4. To test the model for a range of cases and make sure the model is stable.
2
5. To analyze the results obtained from the simulation and compare them with in vitro
results.
1.5 Organization of the Thesis
The thesis is organized in five chapters.
Chapter 2 focuses on the background of the research. It starts off with a brief explanation about
Agent Based Modeling and its advantages, along with the reason for choosing this type of
modeling over other traditional types of modeling. Various ABM modeling languages and the
reason why MASON is chosen over other languages are discussed. The MASON model’s
architecture has been explained briefly. This chapter also gives a brief overview of the cell cycle
regulation process.
Chapter 3 explains in detail the implementation of the cell cycle regulatory process. A better
understanding of the cell cycle regulatory process is given with the help of a flowchart and
pathway diagrams. Unified Modeling Language has been used for better understanding as it
gives a graphical representation of the models developed in software systems.
Chapter 4 shows the results that are obtained from the simulation of the model. The model has
been simulated for the general case, i.e., the normal cell cycle process. Going a step further, the
model also shows results for a wound condition.
3
Chapter 5 draws the conclusion for the thesis and discusses the future scope for research in this
field.
4
Chapter 2
Background
In Chapter 2 we provide an introduction to Agent Based Modeling (ABM) and its advantages.
We discuss the various ABM tools available and explain why we have chosen to implement this
project in the MASON system. We also describe the case study chosen for this work, a model of
the cell cycle.
2.1 Introduction to Agent Based Modeling (ABM)
Agent Based Modeling (ABM) is a computational model for simulating autonomous entities in a
network. ABM is a powerful simulation modeling technique that has been in use in a lot of
applications [2]. It combines elements of game theory [3], complex systems [4], emergence [5],
computational sociology [6], multi agent systems [7], and evolutionary programming [8]. In
ABM, a system is modeled as a collection of autonomous decision-making entities called agents.
These agents are highly adaptive to their surrounding environment and can react to the
environmental conditions. Repetitive complex reactions between the agents are a feature of
ABM, and these interactions mainly rely on the power of today’s multi core processor computers
[9] [10]. ABM consists of a system of agents and the relationships between them. A simple ABM
can exhibit complex behavior patterns [11] and provide valuable information about the system
that it emulates. In addition, agents may be capable of evolving, allowing unanticipated
5
behaviors to emerge. Sophisticated ABM sometimes incorporates neural networks, evolutionary
algorithms, or other learning techniques to allow realistic learning and adaptation.
In ABM, the agents interact with each other and each of the agents has a specific set of
characteristics and rules. Object Oriented Programming (OOP) [12] can be used to model the
agents as objects. OOP is a programming paradigm that uses objects and their interactions to
design applications and computer programs.
Agent Based Modeling is known by many names. Agent based Modeling (ABM), Agent Based
Systems (ABS) and Individual Based Modeling (IBM) are all widely used [13], but Agent Based
Modeling is the term that is used throughout the thesis. ABM follows a bottom-up approach
where the system interactions emerge from local interactions among components. All the agents
in the system are modeled within a region called an environment. The environment is the space
where all the agents of the system will interact with each other. The system does not have any
kind of overall centralized monitoring system that controls all the agents. As mentioned earlier in
this section, the agents have the capability to interact with other agents.
2.2 Why Agent Based Modeling?
ABM models a system composed of multiple interacting intelligent agents. To get a better
understanding, the following sections explain briefly on what an agent is, its advantages and the
reason for choosing ABM over other traditional methods.
6
2.2.1 Definition of an Agent
An agent can be described as a discrete entity with its own set of behaviors and goals. It can also
be described as autonomous, meaning the agent has the capability to change its behaviors and
goals depending on the conditions surrounding it. Certain modelers consider any type of
independent component to be an agent [14]. The agent’s behavior can vary from primitive
reactive decision rules to complex adaptive intelligence. The agent should contain a set of rules
for its basic behavior and it should have a set of rules with which it can adapt itself to its
surroundings [15].
The following are some of the characteristics that an agent would be expected to have:
1. An agent is a discrete individual with a set of characteristics and rules.
2. Agents should be self contained.
3. Each agent will have certain protocols with which it can establish communication
with other agents.
4. Each agent has its own goals which it has to fulfill.
5. Each agent is flexible, meaning it can also change its rules depending on its
surroundings.
All of the above characteristics can be clearly understood from the diagram in Figure 2.1.
7
Figure 2.1: Block Diagram of an Agent [13]
2.2.2 Traditional Modeling Methods and Their Disadvantages
In this section, we discuss why Agent Based Modeling is preferred over the traditional methods
that are used to model systems. Previously, biological systems have been modeled using such
traditional methods as Ordinary Differential Equations (ODE), Partial Differential Equations
(PDE), Stochastic Differential Equations (SDE), Petri Nets [16] and Pi-Calculus [17]. These
methods are in general referred to as Equation Based Modeling (EBM) [18]. Both ABM and
EBM share some common properties, but at the same time they differ from each other because
the fundamental entities that they model and the level at which each of these are modeled are
different.
The fundamental difference between ABM and EBM is in the relationship on which each focuses
attention. EBM, as the name indicates, models the system with a set of equations that expresses
the relationships among the characteristics of interest. These equations may be algebraic, and
these can exhibit variability over time in the case of ODE and can show variability over both
8
time and space in the case of PDE. ABM, on the other hand, does not model the system based on
equations, but instead models the system’s behavior through which the agents interact [18]. In
most cases, the traditional methods tend to aggregate the values when modeling the system. This
aggregation of the values might not be precise, eventually leading to erroneous results. Hence,
ABM is preferred.
Differential equations can model biological systems only to a certain extent. When a biological
system exhibits both discrete and continuous models, differential equations cannot be used to
model the system in an efficient manner. Differential equations can be used to model systems
that have large populations. But using differential equations, it is very difficult to capture the
dynamics and the characteristics of the system interactions in a smaller population of agents.
In the case of ODE, the spatial characteristics of the model are not taken into account. The
complexity and the stochasticity of the system are again very difficult to model using ODEs.
Partial Differential Equations (PDE) are used to build mathematical models of problems in threedimensional space, with varying behavior over time. Many of the phenomena that are shown by
the biological models can be represented by PDEs. But PDE systems are computationally
complex and may not be solvable in reasonable amounts of time, even for a small system [19].
Stochastic Differential Equations (SDEs) allow the stochastic behavior of the system to be
modeled. But SDEs are computationally very expensive.
In a nutshell, the main disadvantages of implementing a model using traditional methods can be
summarized as follows:
9
1. It is difficult to represent the complexity and stochasticity of the system.
2. Traditional methods may not take the spatial dynamics and the complexity of the
entities into account.
3. Almost all the methods use complex mathematical models which are difficult to
understand and computationally expensive.
4. With traditional approaches it is difficult to include both the discrete and the
continuous behavior into the same system.
2.2.3 Advantages of ABM
The advantages of Agent Based Modeling (ABM) over the traditional methods are as follows:
1. ABM captures emergent phenomena of global behavior from local interactions [14].
2. ABM provides a natural description of the system [14].
3. ABM is flexible.
4. ABM takes into account the spatial dynamics of the model.
5. The object geometries can be specified as needed.
6.
Higher orders of reactions including non-polynomial behaviors are possible.
7. Higher degree of reproducibility and reusability of code is possible because of OOP.
8. The control complexity is reduced due to decentralization of the objects.
9. ABM methods can capture the true granularity or stochasticity of complex systems.
10. ABM does not require as much mathematical knowledge as is required for traditional
methods [19].
10
2.3 Comparison of Various ABM Tools
ABM has become popular and as a result there are a variety of ABM tools that have been
developed. Here we compare some of the most popular ABM tools with respect to some of the
most important factors and then come to a decision about which tool we will use in the project.
The comparisons are summarized in Table 2.1.
ABM
Tool
Language
Availability
OS
Visualization
Parallel ism
User
Materials
Ascape
Java
JCChart
license; BSD
Open Source
license
Linux,
Windows,
Mac OS X
2D
NO
Good
documentation
Breve
A scripting
language;
steve
Free
Linux,
Windows,
Mac OS X
2D and 3D
(OpenGL)
NO
Pretty decent
documentation
Dex
Python
Free
Linux
2D and 3D
(OpenGL)
Yes
Very little
documentation
EINStein
Python
scripts
Free
Linux
2D
No
Good
documentation
ECJ
Java
Free for
academic
institutions
only
Linux
2D & 3D
No
Pretty decent
documentation
MAML
C,
Objective
C (unique
syntax)
Free
Linux
2D
Limited
Very little
documentation
MASON
Java
Free (open
source)
Linux,
Windows,
Mac OS X
2D and 3D
(OpenGL and
others)
Yes
(Very good)
Extensive
documentation
available
Repast
Java
Free (open
source)
Linux,
Windows,
Mac OS X
Extensive 2D,
limited 3D
Yes
Extensive
documentation
NetLogo
C, C++
Not free
Windows,
Linux
Very limited
No
Very good
documentation
Swarm
Objective
C
Free
Linux,
Windows,
Mac OS X
2D and 3D
Yes (very
difficult)
Extensive
documentation
Table 2.1: Comparison of Agent Based Modeling Tools
11
In the above table, various Agent Based Modeling tools have been compared with respect to
some of the most important and common characteristics. Information on most of these tools can
be found in [20]. Note that some ABM tools do not provide 3D visualization which is one of the
most important things that a biologist will need for looking at a system.
MASON provides a very good simulation tool kit and it is a good choice for experienced
programmers who are working on computationally intensive models [21]. MASON also has very
good 3D visualization ability and very good parallelization, which are the most important
features which we are looking at to model the system described below. NetLogo is easy to use
and it has got very good documentation, but the visualization abilities are not good when
compared to MASON. Repast is another well known Agent Based Modeling tool that has always
been in consideration, but again the visualization is excellent when it comes to 2D but not as
good when it comes to 3D. Swarm is stable, small and well organized and can support very
complex models, but it suffers from some of the faults of the Objective-C language, including
the very important garbage collection feature [20]. From the table, we have come to a conclusion
that we should use Repast, NetLogo or MASON as the tool of our choice. For those who will be
working on very simple models that do not have many agents, NetLogo will be the tool of
choice. We decided to go with MASON as the tool of choice because the system being modeled
has a lot of agents involved. However, MASON requires strong programming experience.
2.4 MASON: The ABM Tool of Choice
MASON stands for Multi-Agent Simulator Of Neighborhoods or Networks. MASON is a singleprocess discrete-event simulation core and visualization tool kit written in Java, designed to be
12
flexible enough to be used in a wide range of simulations. The system is open-source and free
and it is a joint effort of George Mason University’s Computer Science Department [22]. The
design principle of MASON was to build a fast, portable, orthogonal, minimal model library to
which an experienced Java programmer can add features. MASON is a tool kit wherein multiple
checkpoints can be added even during the simulation process. The model that is developed in
MASON can be attached to any GUI kit that is open-source or free and the visualization can be
added separately. So, in the process of development, MASON was considered to be a library that
is essential for supporting simple simulations and as a core for new simulation libraries.
Figure 2.2 explains one of the best features of the MASON model, the checkpoint and recovery
stage. At any point in the simulation, the model can be paused and then continued to run both in
the background as well in the front end. If one needs just the data, the visualization layer need
not be turned ON, which will make collecting the data easier.
Checkpointed
Recovered
Model running
in the
background
platform
Model
running in the
front end
platform Visualization
layer
DISK
(SimState)
Checkpointed
Recovered
Figure 2.2: MASON Model Checkpoint and Recovery Design [22]
13
2.4.1. Features of MASON
Some of the features of MASON are listed below.
1. MASON is 100% Java (excellent OOP concept with higher level of integrity, granularity)
along with garbage collection.
2. It is fast, portable and fairly small.
3. The Model layer is different from the Visualization layer. It can be removed or replaced
anytime.
4. Model can be check pointed and recovered and dynamically migrated across platforms.
5. MASON produces results that are identical across platforms.
6. MASON has excellent 2D and 3D visualization. Separate GUI interfaces can also be
added to the Visualization layer.
7. Excellent parallelization is possible in MASON, which is one of its most important
features.
8. MASON can generate PNG snapshots, QuickTime movies, charts and graphs and output
data streams.
2.4.2. MASON Architecture
MASON is written in Java in order to take advantage of its portability, strict math and type
definitions and serialization of the objects and agents in order to check point simulations. Check
pointing means the ability to stop, play or pause the simulation at any point of time. The tool is
written in a very modular manner and a layered architecture approach has been followed. As can
be seen from Figure 2.3, the model can be viewed as an entire GUIState which wraps the
Simulation Model (SimState) and separates it from the Visualization layer. The model can be
14
completely broken off and run on its own, and it can be serialized to/from disk. All these
modules inside these layers are considered to be self-contained and extra modules can be added
or replaced easily. The Model layer and the Visualization layer are explained in brief in the
following paragraphs. The different layers in MASON can be easily understood from Figure 2.3.
The Visualization Layer consists of the GUI interface, which portrays the 2D and 3D layers of
the underlying models in the SimState. It is the SimState model which can detach completely
from the model and serialize the SimState to/from the disk. The 2D and 3D Displays internally
inherit the Field Portrayals of 2D and 3D which will in turn inherit the simple/quad portrayals.
These portrayals are responsible for drawing or inspecting various kinds of objects stored in the
fields. The agents that are scheduled in the SimState can be controlled by the entire Console. The
Console is the place where a simulation can be started, stopped, paused or stepped. This is also
where we load or save serialized models, show or hide the visualization window and also load
other simulations.
15
GUIState
(API between SimState and the GUI (Console, Displays)
VISUALIZATION LAYER (GUI)
2D and 3D Displays
CONTROLLER
2D and 3D Field Portrayals
2D and 3D
Portrayals
SIMULATION MODEL (SimState)
Event Schedule
(Time)
Fields
Arbitrary
Objects
Agents
(Events)
Model can
be
serialized
to DISK
Mersenne TwisterFast Random Number Generator (RNG)
Figure 2.3: MASON Architecture [22]
The SimState or the Model layer consists of separate entities such as Fields, Schedule, and
Mersenne Random Number Generator(RNG) [23]. Each of these can establish its communication
thread within the model or even outside the model e.g., within the Visualization layer. MASON
describes each agent as a specific entity that can be scheduled to perform certain actions in the
environment. MASON does not schedule events on the schedule to send signals to the agents,
16
rather it schedules the agents themselves. If agents need to be grouped together to act in a certain
area, MASON allows this by using a wrapper class. The Field entity relates arbitrary values or
objects to locations.
Some of the important fields in MASON that were used to build the ABM model is shown in
Figure 2.4.
Figure 2.4: Important Fields in the Model in MASON
2.5 Case Study: The Cell Cycle
The cell cycle or the cell-division cycle is a series of events taking place in a biological cell that
gradually stage by stage leads to its replication. The cell cycle has been chosen as the system to
17
be modeled in our research. The reason is that the cell cycle process is very complicated and
requires a lot of wet lab experiments to observe its characteristics. As the goal of the thesis, a
simulation model of the cell cycle should be developed in order to assist biologists in
understanding this process. The model in this thesis is a simple one but it will form the basis for
more realistic models in the future.
There are various types of biological organisms and the cell cycles vary from one to another. For
example, in prokaryotes the cell cycle occurs through a process termed binary fission. The cell
cycle that is modeled in this thesis is the cycle that is exhibited in eukaryotes. Eukaryotes are
those organisms that have a nucleus and this differentiates them from prokaryotes. Animals,
plants and fungi are examples of eukaryotes. When we consider human cell types, there are over
200 cell types. Some of them are the cells that are present in the blood, in the endocrine, nervous
and respiratory systems, in skins and bones, and so on. For example, if we consider the blood
cells, the cells are formed by a process called erythropoiesis. Cells like keratinocytes are those
that can be found in epidermis, i.e., the skin. The cells in the eukaryotic category follow the cell
cycle process that is explained here and in more detail in chapter 3. Moreover, the cells that are
described in this model move on a substrate. Not all cells have a substrate, for example, the skin
cells or the epithelial cells have a substrate on top of which the cell moves. But in the case of
other cells like blood cells, the cells are produced in the bone marrow and they move around the
body [24].
The cell cycle has two main events taking place. One is cell growth and the copying of the
cellular components and the other is the cleavage of the cell. These two events, growth/copying
and cleavage, represent the two main phases of the cell cycle, Interphase and Mitosis. Briefly,
18
Interphase will be the state of replicating components and it will be the state where the cell will
get ready to enter the Mitosis phase. Since the cell cycle is a “cycle”, it has no beginning or end.
Cells are continually entering and exiting the various phases of the cycle. The various phases of
the cell cycle, its implementation and results have been discussed in detail in the following
chapter.
A basic model of the cell cycle has already been modeled by Walker et al. [25]. This paper
describes the cell cycle modeled as a two dimensional model. There are several ways in which
the model that is developed in this thesis improves on the model in [25].
1. The current model developed is a three dimensional (3D) model. This is one of the most
important features that are important from a biological perspective. A 3D model will have
more detail about the model when compared to that of the 2D model in [25]. For e.g., in
certain biological cases, like cancer progression [30], results in cells developing into a
tumor which can be better understood in a 3D model.
2. The system used to develop the 2D model was Matlab, while the system that is designed
in this thesis is modeled using Java in MASON, which allows for easy visualization,
modularity, and modification.
3. As already mentioned, MASON is a specialty tool for designing Agent Based Models and
Java is one of the most popular and efficient languages to design 3D models.
4. Java takes advantage of the OOP concept [12]. Agents can be modeled easily using these
concepts. Java has the feature of threads. It can be exploited to run different parts of the
code in parallel, in the process making the code efficient. Many GUI and IDE tools, e.g.,
19
Eclipse, are available for free for use with Java. This makes developing user interfaces
very easy.
2.6 Background of the Biological Aspects of the Model
This section explains the background that is involved in the biological side of the cell movement,
its formation and also the healing process in case of burns or wounds in collections of skin cells.
The following paragraph briefly describes cell movement.
In any biological system, the speed of cell movement is limited by the rate of cell-substratum
detachment at the cell rear [26]. Cell migration or movement on the substrate is a series of events
that includes lamellipodial extension, formation of the lamellipod-substratum attachments,
cytoskeletal contraction, and the release of the cell-substratum attachments at the rear [27]. The
factors that are responsible for cell migration are effectively lamellipod extension, cytoskeletal
force and the rear detachment. The speed of movement of the cell is regulated by the adhesive
interaction between the cell and its substrate. Cytoskeletal forces tend to break the cellsubstratum bonds at low adhesion but the cells are unable to generate sufficient traction to move.
In the case of high adhesions, the cytoskeletal forces cannot break the cell-substratum bonds
whereas when the adhesiveness is intermediate, the cytoskeletal forces will be such that they are
maintained in the front but they tend to get disrupted at the rear leading to cell locomotion [26].
The biological factors that are responsible for cell movement are shown in Table 2.2 [26].
20
Factor
Range
Total cell area
102-104 µm2
Cell rear area
101-103 µm2
Thermal energy
4.1 X 10-14 erg
Substrate adhesion constant (with
ligand and cytoskeleton)
10-8 – 10-6 M-1
Force at cell rear
10-1-101 nN/ µm2
Force to remove ligand from
substrate
0.1 – 100 µdyne
Cytoskeletal element density
109-1012 cm-2
Cell attachment time with substrate
or other cell
102-105 s
Table 2.2: Parameters Affecting Cell Movement [26]
Cells in extraordinary cases like wounds or burns get damaged or destroyed. Cells called
fibroblasts play an important role here in healing the wounded cells. Including the effect of
fibroblasts produces a complex biological model for computational modeling. A fibroblast is a
type of cell that synthesizes the extracellular matrix (ECM) and collagen. The ECM is the
extracellular part of the tissue that provides structural support to the cells in addition to
performing various other important functions [28]. Changes to the ECM environment may affect
the basic cell functions such as cell growth, apoptosis and proliferation [29]. These fibroblasts
involve a lot of study as their behavior is very complex and detailed analysis of them should be
done in future modeling of the system we are studying here.
21
Chapter 3
Implementation
Chapter 3 discusses the implementation of our model of cell growth. It describes how the model
initial conditions are made and the basic structure of the cell cycle. It also explains in detail about
the cell cycle process. Our assumptions about the biological process are taken from R. J.
Reynolds and J. A. Schecker [30]. Note that much of the complex cell behavior described in
Chapter 2 has not yet been added to this first iteration of the model. In particular, a simple model
of cell movement on a substrate has been implemented, since an eventual goal is modeling of
skin cells. But much more detail about cell bonding and movement, as described previously, will
need to be added eventually.
3.1 Initial Model Conditions and Basic Model Structure
Our model consists of a 3D environment which holds all the agents that will be interacting
among themselves, along with the agents themselves. The physical part of the environment is the
substrate of the cell, represented as a 3D rectangular region with user defined dimensions. Within
the substrate, the cells, represented as agents, interact to replicate the cell cycle. The model has
been designed in such a way that the number of cells and the type of the cells can be selected by
the user and they can also be placed in random locations in the 3D substrate as desired by the
user. Each type of cell modeled has a radius that can be varied to change the size of the cell. The
22
cells’ radii can also be selected by the user. The model has been designed in such a way that it is
very interactive with the user.
The model’s internal structure has been designed like an iterative process. It can be considered as
a clock, where each step in the process is described as a single tick. At the tick of the model
clock, each of the agents is checked for its status and, and depending upon the state of its internal
parameters and the environmental conditions such as the proximity of neighboring cells, each
agent will determine from its internal rules how it should react. MASON provides specific data
structures called bags to establish communications among themselves. So, in each tick, each
agent establishes communication with the bags data structure of other agents and information is
passed on to the agent. The bags are updated for all information that is changed within an agent
and for all information that is changed because of the agent. Hence they play a vital role in the
background process. They are more fully explained in the later sections of this chapter.
3.2 Rule-based Modeling
In the cell cycle, cells go through a series of steps which include growth, division, migration,
bonding and signaling [25]. In ABM, these steps are accomplished through the use of simple rule
sets assigned to each agent. This particular paradigm has been very successful in modeling other
interacting entities, for example, colonies of ants and bees [32] and even human systems [33],
which model how complex social systems have evolved. In these cases, there is no concept of
higher control, but each individual component of the system or agent executes a set of rules in
response to various environmental conditions [30].
23
3.3 Modeled Cell Types
There are four different cell types that have been modeled in MASON for implementing the cell
cycle regulation process. These cell types have been modeled as follows:
Cells
These types of cells are predicted to exist in many types of tissue. The fundamental property of
this type of cell is that they have the ability of self renewal and hence are very important in
maintaining a constant number. As explained in Chapter 2, the cells we are modeling can be in
two phases with respect to cell division, Interphase (growth/copying) and Mitosis (cleavage).
We are also modeling cells moving on a substrate. Thus the various behaviors these cells can
undergo are as follows:
Cell growth and division (Interphase and Mitosis)
Bonding (to a neighboring cell and also to its substrate)
Spreading
Migration
Apoptosis
Cells in Interphase
In this thesis the cells in the Interphase stage are further modeled as being in one of several
subphases:
G1 subphase (Cell growth)
G0 subphase (Checkpoint – Quiescent subphase)
24
S subphase (Synthesis subphase)
G2 subphase (preparing to enter M phase)
Mitotic Cells (M Phase)
The mitotic cells are said to be in the M phase of the cell cycle. Mitotic cells when formed break
up the intercellular bonds that are formed during the bonding of the cells. They usually do not
form any bonding until the mitosis stage is complete. These then automatically, after a certain
time, become cells in the G1 subphase.
Dead Cells
At the end of each full cycle, a check is made as to which cells are not bonded to the substrate.
Those cells that are not bonded to the substrate at this stage undergo apoptosis and they become
dead cells.
3.4 Cell Cycle Process
The model that is being developed is restricted to modeling only cellular based behaviors. The
subcellular mechanisms that are involved are essentially ignored in this model. The central hinge
of the model is the cell cycle and the whole model revolves around this mechanism. All the cells
that are capable of cycling through the model progress through every step provided that they are
not contact inhibited.
The cell cycle has three Interphase subphases, G1, S, and G2, and also M, the mitosis phase.
There also exists a checkpoint phase G0 that is between the G1 and the S subphase. The G1, S
25
and G2 subphases constitutes the Interphase. These phases and subphases are depicted in Figure
3.1.
G1
S
G2
INTERPHASE
M
G1
MITOSIS
S
INTERPHASE
G2
M
MITOSIS
Figure 3.1: Interphase and Mitosis Flow
The complete cell cycle process is shown in Figure 3.2.
G1
M
G0
G2
S
Figure 3.2: Cell Cycle Process
In Figure 3.2, the following phases and subphases are represented:
G0: check point that decides whether the cells go through the rest of the cycle.
S: DNA synthesis takes place within the cell. DNA synthesis is not modeled in the system.
G2: cells in this subphase have duplicated DNA and are ready to enter the Mitosis or M
phase.
M: phase where the cells undergo mitosis. The duplicated chromosomes are split and the cell
division occurs and two different cells are formed.
26
G1: indicates the completion of one cycle. It is also the subphase where the cells double in
volume.
Below we explain these in more detail. Remember the Interphase has three subphases, G1, S and
G2.
G1 Subphase
G1 is an intermediate subphase occupying the time between the end of the Mitosis (M) phase and
the beginning of the DNA replication during the S subphase. This subphase is the longest
subphase in the cell cycle process. So, in this G1 subphase the cell basically grows in size and it
gets ready for replication. Before the cell even actually goes into the replication stage, the cell
has to be checked as to whether it is fit to enter into the process. Those cells that do not satisfy
the requirements for the G1 subphase go through a checkpoint to enter a quiescent state. This
state is the G0 subphase. Figure 3.3 explains in brief what happens in this subphase.
DNA
Cell from M
(Mitosis) phase
(M)
Cell at the end of the
G1 subphase
Figure 3.3: Cell Activity in G1 Subphase
27
G0 Subphase
G0 is the subphase where the cell monitoring takes place. In this subphase, the cells in the G1
subphase are monitored and if they have not grown to the appropriate size for replication to take
place, these cells are sent to the G0 subphase. In this subphase, the cells can stay as long as they
meet the requirements to get into the replication stage. Depending upon the cells’ current state in
G0, it might take days or weeks for the cell to get itself back into the cycle. When the cell is in
the appropriate size, the cell will exit the G0 subphase and continue the cell cycle process.
S Subphase
In this subphase, the DNA in the chromosomes gets replicated. This is a process internal to the
cell. The agent based model doesn’t show this process as it is an intracellular process. Once the
DNA replication is complete, the number of the chromosomes in the cell should have been
doubled and from the S subphase the cell enters into the G2 subphase. This subphase is shown in
Figure 3.4.
DNA
Cell at the end of the
G1 subphase
Cell at the end of the
S subphase
Figure 3.4: Cell Activity in S Subphase
28
G2 Subphase
The G2 subphase is similar to that of the G1 subphase. This subphase can also be considered to
be similar to G1 subphase, where the cell after replicating its chromosomes in the S subphase,
will undergo a check before getting into the G2 subphase. In the G2 subphase, the cell will have
its final chance to grow. In other words, the cell gets itself prepared to get into mitosis phase
(M). As mentioned, since the model is intercellular, these changes will not be seen in the model.
M phase
When the cell enters the M phase, it has entered the final stage of the cell cycle process. This is
the place where cell gets divided into two. The main cell will divide into two daughter cells and
these cells get into the G1 subphase of the cell cycle process. From here, the cell cycle process
will be repeated. The process of the M phase can be understood from Figure 3.5.
DNA
Cell at the beginning of
M phase
Cell at the intermediate
stage of M phase
Figure 3.5: Cell Activity in M Phase
29
Cell at the end
of M phase
All the events and the subphases can be summarized so that the model can be understood clearly.
All this information is from the programming point of view and not from the biological point of
view. The summary is given in Table 3.1.
CURRENT STATE
ACTION
Cell is in G1
Cell size is increased and the indication of the new cycle
is noted by incrementing the program’s internal clock.
Cell is in G1/G0 checkpoint
If cell is bounded by 4 or more cells; ENTER G0
Cell is in G1/G0 checkpoint
If cell is not of the appropriate size; ENTER G0
Cell is in G0
If cell is bounded by less than 4 cells; ENTER G1
Cell is in G0
If cell is of appropriate size; ENTER G1
Cell is in S
The program’s internal counter is stepped up
Cell is in G2
Check for cell size again; Get ready to enter M phase
Cell is in M
Divide the cell into two identical cells.
Table 3.1: Tabulation of Rules Undertaken in Cell Cycle
We also need to explain the actions in which the cell is involved.
Bonding to the Substrate
Our eventual goal is to build a model of skin cells, which bond to a substrate. In our model and
in real life, the new cells that are formed due to mitosis are not bonded to the substrate. Every
iteration of the cycle will have a calculation based on a random number to determine whether the
cell should be bonded to the substrate. Once binding of the cell takes place it then goes through
the rest of the cell cycle.
30
Intercellular Bonding
The cell, as it migrates after bonding to the substrate, has the possibility to meet up with other
cells in the environment. Once it meets up with another cell, it bonds itself with the other cell and
then it undergoes mitosis and other processes from here on.
Spreading
In order to progress through the cell cycle, the cells spread by forming attachments to the
substrate. This process can be shown in the model by increasing the area of the cell so as to
immerse it in the substrate layer.
Migration
Those cells that are attached to the substrate and have no intercellular bonds (bonding between
cells) are free to migrate in the environment within a certain distance. The distance the cell can
move depends upon the internal factors of the cell. The migrating directions are assigned to these
cells randomly by using the random number generator. If its path is being blocked by a
neighboring cell or by the substrate edge, the cell will try to move towards another edge,
ensuring that it would not go out of the edge of the model. Such checks are repeatedly happening
in the background process.
Apoptosis
Cells that have failed to attach themselves to the substrate at the end of the G1 subphase become
dead.
31
3.5 Functioning of the Cell Cycle from a Programming Point of View
The environment is first loaded with an initial quantity of cells and then it is allowed to undergo
the changes depending on the environment. The user has the flexibility to decide which cell has
to be in the beginning stage of the simulation. A GUI will be presented in which the user can
enter the initial information and start the simulation. Since each cell is designed as an agent, it
uses its intelligence to learn the current conditions of the environment and then transforms its
state.
When the simulation is started, time progresses and the cells grow in size and they become
bigger. This is the G1 subphase of the cycle. After the cell has grown to its full size, it starts
migrating in the environment and in due course if this cell comes across any other cell in the
environment, intercellular bonding takes place. These cells stick to each other and they are still
in the cell cycle. The lifetime of each cell is noted down as the cell is born and after a certain
period of time, each cell would have undergone synthesis and the duplication of the DNA would
have also taken place. Now the cell would be ready to undergo mitosis and split into two
daughter cells. The splitting of the cell to give birth to two daughter cells is the M phase. Now
each daughter cell is in the G1 subphase and in this subphase, a checkpoint is introduced that
checks for contact inhibition and depending upon this condition, each cell will be able to go into
the quiescent subphase or continue the cell cycle. Contact Inhibition occurs when a cell has four
or more bonds with its neighboring cells. When almost all the cells in the environment have
bonded with four or more cells, the bonded cells go into the quiescent state, thus completing the
cell cycle.
32
3.6 Flowchart for the Agent Based Model
The simulation start up, the selection of the number of agents and the type of the agents and the
cell cycle process that is taking place in the model can be understood with the help of the
flowchart in Figure 3.6.
Initialize the number and the type of the cells
needed in the simulation
Synthesize the necessary agents in the substrate
Keep agents in random
motion
Check for cells
in beginning of
NO
G1 subphase
YES
Call cellgrowth() function
YES
Check whether
appropriate size
has been reached at
end of G1
NO
Check for
appropriate size
(or) contact
Enter
Quiescent
(G0
subphase)
inhibition
YES
NO
Enter S
Increment counter and Enter G2
Enter Mitosis (M Phase)
Divide cells into two identical daughter cells
Figure 3.6: Flowchart for the Agent Based Model
33
3.7 Composition of the Environments in the Model
MASON has many components with which the model can be built. As mentioned earlier,
MASON includes a Schedule, SimState, and MersenneTwisterFast random number generator,
plus various Fields containing the objects the agents are free to manipulate. The user can
manipulate the schedule through the Console, and view and manipulate the Fields and objects
through the Display 2D and Display 3D. The important thing is that we have to choose the right
Field in which we will implement our model. The Field in turn is classified into Grids and Sparse
Field. The Continuous3D Field is chosen for modeling the system. The environment in the
underlying model of the system, i.e., the SimState is modeled as Continuous3D. It is a storage
facility for the objects located in the Continuous3D Field. This facility relates objects with 3D
double tuples (in the form of Double3D). The facility extends SparseField, and like other objects
which extend SparseField (such as SparseGrid3D), the facility can only relate any given object
with a single location at a time, i.e., an object cannot hold two locations at once in the
Continuous3D field. The user interacting layer or the visualization layer has been modeled as
two
separate
portrayals.
One
is
the
ContinuousPortrayal3D
and
other
is
the
TransformedPortrayal3D. This will transform the objects with an underlying Transform3D,
meaning
that
you
can
rotate
them,
translate
them,
scale
them,
etc.
When
TransformedPortrayal3D is created, an underlying Portrayal3D represents the actual object and
from here TransformedPortrayal3D will then transform it as requested.
3.8 Agents Modeled in the System and Their Rules
The different agents in the system are the cell, the cell in its beginning state, the cell at the end of
the G1 subphase, the mitosis phase of the cell, the quiescent state (G0 subphase) and the
34
substrate. Each of these agents has their own set of variables and functions initialization. Each of
these functions are specified in the INIT() state in the program. All these agents are scheduled
using the Schedule event. Schedule defines a thread safe scheduling queue in which the events
can be scheduled to occur at a future time.
An event is defined by the Steppable object. One can schedule events to either occur a single
time or repeatedly at specific intervals. If the event occurs repeatedly, then the question of
stopping the event occurs. For this, the Schedule provides a Stoppable object which can be called
to stop the event.
The Schedule is initiated by calling its step() method. There is a particular time at which the
agents are scheduled depending upon the program’s internal calculations. This time is noted by
the Schedule and the Schedule moves ahead to that time and makes sure it updates all the agents
to be scheduled at that time.
The step() method keeps track of the number of steps each agent has gone through. A SimState
contains the random number generator and the simulator's schedule. One should not change the
schedule to another Schedule object. When a simulation is begun, SimState's start() method is
called. Then the schedule is stepped some N times. At last, the SimState's finish() method is
called, and the simulation is complete.
The rules that apply to the agents modeled in the cell cycle are as follows:
35
1. All the agents except for the substrate are spherical in shape. The substrate agent is made by
using the TransformedPortrayal3D and transforming the regular cuboid.
2. The CellBeg agent in the beginning of the G1 subphase is designed to have half the radius of
the CellEnd in the end of the subphase as the cell would have grown in size at the end of the
G1 subphase.
3. The time each agent is in a particular phase or subphase is recorded for future purposes.
4. All the agents in the model can be assigned velocities depending upon the study of the agent
in real time. The user interface allows one to do this.
5. At the beginning of each phase or subphase, the agent’s life time is checked and if any agent
is too old, it is killed.
6. At any point in the simulation, the agent is checked for contact inhibition, i.e., whether it has
been surrounded by 3 or more agents. If so, that particular agent goes into the Quiescent state
(G0 subphase) and it is represented as yellow in color.
7. The contact inhibition also accounts for the substrate, which is also an agent. The substrate is
defined as stationary.
8. All the agents that have exited the G2 subphase get ready to go into the M phase, where they
are represented as the CellBeg agents.
9. An agent in the G2 subphase is split into two cells, each with half of the original radius, in
order to represent itself in the M phase.
10. During this process, any collision between the agents results in the agents either undergoing
intercellular bonding or agents getting bounced off from each other.
11. At any time of the simulation, the agents should not cross the boundary of the substrate.
36
12. The substrate is modeled as a cuboid in the Continuous3D environment and all the other
agents are scheduled on top of it.
3.9 Unified Modeling Language Diagrams
Unified Modified Language (UML) is a standardized general purpose modeling language that
helps in representing OOP concepts. UML is like an extended version of a flowchart that
explains the entities in an OOP system in detail. In short, UML is a graphical language for
visualizing, specifying and constructing the artifacts of a software intensive system [34]. UML
combines the best concepts from data modeling such as Entity Relationship diagram, Class
Responsibility Collabarator (CRC) diagrams, and Class diagrams. It can also be extended to
include Agent UML (AUML) diagrams [35][36].
3.9.1 Entity Relationship Diagram
The Entity Relationship (ER) diagram is an abstract conceptual representation of structured data.
The entity can be identified as an object that can be recognized as being capable of existing
independently or that can be uniquely identified. A relationship has two or more entities that are
related to one another. Both the entities and their relationships can have their attributes. There
are a number of conventions with which the ER diagram can be represented. This model has
been represented with one of the most commonly used conventions.
Figure 3.8 shows the ER diagram for the agent based model. The agent based model is modeled
in an environment. The system is the overall entity. The system has the environment and the
37
CELL. The environment which is inside the system also holds the CELL. Likewise, the different
classes are held by some other classes in the model.
Environment
System
CELL
Stationary
Mobile
Substrate
Monomer
Mitosis
Monomer
Dimer
CELL
Monomer
CELL
Dimer
Quiescent
Class
Is a relationship
Has a relationship
Figure 3.7: Entity Relationship Diagram of the Model
3.9.2 Class-Responsibility-Collaboration Cards and Class Diagrams
Class-Responsibility-Collaboration (CRC) cards are basically index cards that are used to
represent the responsibilities of the classes and the interactions that take place between them.
38
CRC cards are an informal approach to OOP. A class represents a collection of similar objects, a
responsibility is something that a class knows or does, and a collaborator is another class that a
class interacts with to fulfill its responsibilities. These cards are modeled based on the system
requirements that model the system [35].
The CRC cards for the agent based model are given in Figure 3.9(a), Figure 3.9(b) and Figure
3.9(c):
CELL
Responsibility
Collaborator
Check lifetime
CELL
Check collision within
CELL
Check collision with quiescent
CELL, Quiescent
Calling quiescent
Quiescent
Delete standalone
CELL
STATIONARY
Responsibility
MOBILE
Collaborator
Responsibility
Set the size of the object
Collaborator
Set the velocity, size and
direction of the object
Get the size of the object
Get vel., size & direction
Figure 3.8(a): CRC Card for the CELL, STATIONARY and MOBILE classes
Figure 3.8(a): CRC Card for the CELL, STATIONARY and MOBILE Classes
39
SUBSTRATE
Responsibility
Collaborator
Set the location of
the substrate
Get the location of
the substrate
Check distance
between all agents
CELL, Cell Monomer, Cell Dimer,
Mitosis Monomer, Quiescent
MONOMER
Responsibility
DIMER
Collaborator
Responsibility
Set and get the shape of the
Monomer.
Set and get the shape of the
Dimer.
Set and get the size of the
Monomer.
Set and get the size of the
Dimer.
Move the Monomer to a
different location
depending on the velocity.
Move the Dimer to a
different location depending
on the velocity.
Collaborator
CELL Monomer
Responsibility
Collaborator
Check collision within
Cell Monomer
Check collision with others
CELL, Cell Dimer,
Mitosis Monomer,
Quiescent
Check for randomness
Cell Monomer
Check for lifetime
Cell Monomer
Removal of cells
Cell Monomer
Figure 3.8(b): CRC Cards for Substrate, Cell Monomer, Monomer and Dimer Classes
40
CELL Dimer
Responsibility
Collaborator
Check collision within
Cell Dimer
Check collision with others
CELL, Cell Monomer, Mitosis
Monomer, Quiescent
Check for randomness
Cell Dimer
Check for lifetime
Cell Dimer
Removal of cells
Cell Dimer
Mitosis Monomer
Responsibility
Collaborator
Check collision within
Mitosis Monomer
Check collision with other
agents
CELL, Cell Monomer, Cell Dimer, Quiescent
Check for distance
CELL, Cell Monomer, Cell Dimer, Quiescent,
Mitosis Monomer
Check for lifetime
Mitosis Monomer
Movement
Mitosis Monomer
Removal of cells
Mitosis Monomer
Quiescent
Responsibility
Collaborator
Check for Movement
Quiescent
Check for collision between
Quiescent and CELL agents
CELL, Quiescent
Check for collision within
Quiescent
Quiescent
Delete
Quiescent
Result
Quiescent
Figure 3.8(c): CRC Cards for Cell Dimer, Mitosis Monomer and Quiescent Classes
41
Class diagrams for the agent based model are given below, in Figure 3.9(a). The class diagrams
have three sections. The first section specifies the name of the class. The second section specifies
the attributes of the class. The third section specifies those operations that are performed by the
class.
CELL
- size
- shape
- velocity
+ getbirthtime()
+ setbirthtime()
+ getlifetime()
+ setlifetime()
+ getCollisiondistance()
+ delete()
MONOMER
- size
- shape
- move
+ setsize()
+ getsize()
+ setshape()
+ move()
DIMER
- size
- shape
- move
+ setsize()
+ getsize()
+ setshape()
+ move()
STATIONARY
- size
- shape
+ setsize()
+ getsize()
+ setshape()
SUBSTRATE
MOBILE
- location
- distance
- collision
- size
- shape
- velocity
+ setsize()
+ getsize()
+ setshape()
+ setvelocity()
+ chkdistance()
+ chkcollision()
+ setsize()
+ getsize()
+ setshape()
+ setvelocity()
CELL MONOMER
CELL DIMER
- birthtime
- lifetime
- collision distance
- delete
- birthtime
- lifetime
- collision distance
- delete
+ getbirthtime()
+ setbirthtime()
+ getlifetime()
+ setlifetime()
+ chklifetime()
+ chkcollisionwithin()
+ chkcollisionother()
+ delete()
+ setStopper(Stoppable)
+ step(SimState)
+ stop()
+ getbirthtime()
+ setbirthtime()
+ getlifetime()
+ setlifetime()
+ chklifetime()
+ chkcollisionwithin()
+ chkcollisionother()
+ delete()
+ setStopper(Stoppable)
+ step(SimState)
+ stop()
Figure 3.9(a): Class Diagrams
42
MITOSIS MONOMER
QUIESCENT
- birthtime
- lifetime
- collision distance
- delete
- birthtime
- lifetime
- collision distance
- delete
+ getbirthtime()
+ setbirthtime()
+ getlifetime()
+ setlifetime()
+ chklifetime()
+ chkcollisionwithin()
+ chkcollisionother()
+ delete()
+ setStopper(Stoppable)
+ step(SimState)
+ stop()
+ getbirthtime()
+ setbirthtime()
+ getlifetime()
+ setlifetime()
+ chklifetime()
+ chkcollisionwithin()
+ chkcollisionother()
+ delete()
+ setStopper(Stoppable)
+ step(SimState)
+ stop()
Figure 3.9(b): Class Diagrams for Mitosis Monomer and Quiescent Subphases
3.9.3 Agent UML
“Agent UML is a formalism for specifying multi-agent interaction” [36]. Agent UML (AUML)
synthesizes a growing concern for agent-based methodologies with the increasing acceptance for
UML for object-oriented software development [36]. The main reason for explaining the concept
using AUML is that UML can explain in detail the functioning of an object but not an agent. The
agent interactions can be best explained with AUML. The main actions for an agent are
communicating with other agents and taking necessary actions that can change its state in the
environment. In this section, we can see how UML diagrams can be used to extend the
framework of object oriented programming development. Communicative Act (CA) is used to
represent the sent or the received class from another agent’s class or any of its instances [37].
The AUML consists of two main parts, the first one being the class diagram and the second one
43
being the agents interactions represented as CA’s. The CA’s to the left of the class diagram are
referred to as protocols that are incoming, i.e., the information that is obtained by the agent from
the environment. The CA’s to the right of the class diagram are referred to as protocols that are
outgoing, i.e., the effect that this particular agent has on the environment. Figure 3.11 shows the
AUML for the Substrate class.
SUBSTRATE
- location
- distance
- collision
+ setsize()
+ getsize()
+ setshape()
+ setvelocity()
+ chkdistance()
+ chkcollision()
All agents /
collision distance()
All agents /
chkcollisiondistance()
All agents / get
Objectlocation()
All agents / return
Objectlocation()
All agents /
chkcollision()
All agents / return
Boolean value()
Figure 3.10: Class Diagrams for Substrate Class Using AUML
From Figure 3.10, the substrate agent’s behavior can be better understood as its interactions to
and from the environment are clearly seen. The other classes have almost the same behavior and
hence they are explained by similar AUML diagrams, as seen in Figure 3.11.
44
CELL MONOMER, CELL DIMER,
MITOSIS MONOMER, QUIESCENT
- birthtime
- lifetime
- collision distance
- delete
+ getbirthtime()
+ setbirthtime()
+ getlifetime()
+ setlifetime()
+ chklifetime()
+ chkcollisionwithin()
+ chkcollisionother()
+ delete()
+ setStopper(Stoppable)
+ step(SimState)
Mobile /
get birthtime()
Mobile / return
birthtime()
Mobile /
get lifetime()
Mobile / return
lifetime()
Mobile /
chkcollisiondistance()
Mobile / return
distance() and agent
Stationary /
chkcollisiondistance()
Stationary /
return distance()
Mobile /
getobjectswithindistance()
Mobile / return objects
in a bag (structure)
Mobile /
stop()
Mobile / returns
the stoppable
object
CELL /
delete()
CELL / returns all
objects except deleted
Figure 3.11: Class Diagrams for Other Classes Using AUML
45
3.10 Data Structures in the Code
In our model, we are modeling the entire system in Java 3D and Java is known for its efficient
OOP concept. The entire model is available in a package inside MASON at sim.app.Skin. The
Skin will in turn package all the classes i.e., the Skin, SkinWithUI, CELL and others. The Skin
class is the main class in the model as it extends (inherits) the SimState. The SimState is the top
level object in MASON and at least one of the classes from the package should extend this
particular class.
SKIN Class
All the objects or the agents in the model should be present in an environment. MASON
provides several environments like the Continuous or the Grid fields. The Continuous field in
turn has Continuous2D and Continuous3D fields. The Grid field has a lot of fields. The
appropriate choice for the field for the environment is either the Continuous3D or the
SparseGrid3D field. We are looking for an efficient way to store the objects and then at a later
stage an efficient way to retrieve the objects. Continuous3D has a certain special kind of data
structure which it uses to look up the objects that are stored in it. It has been arranged to make
the neighborhood information lookup efficient. It discretizes the entire space into grid buckets.
This discretization bucket size is specified by the programmer and is not left to the user. The
main issue in using the Continuous3D is that the bucket size has to be appropriate. If the bucket
size is too big, one will be searching through too many objects and wasting time. In contrast,
SparseField3D uses a lookup methodology that returns all the objects at the defined location.
This particular approach will be very expensive in terms of execution time.
46
SkinWithUI Class
The SkinWithUI class extends (or inherits) the GUI class that is responsible for any graphical
interface. The GUI class has the same start() and finish() methods as the SimState and
additionally the GUI has the init(Controller) and the quit() methods. The init() as the name
indicates is the one that is responsible for setting up the environment and hence all the code
responsible to set up the environment goes into this section. At the end of the simulation, if it
needs to be terminated the quit() method is called to take care of disconnecting the threads and
other communications between the controllers and the displays.
Other Classes
Apart from these two classes, the other classes represent the agents involved in the system. These
agents will have their own collision detection, movement and other functions that are responsible
for their functioning in the environment.
Interface Class
The Interface class is the one that is responsible for the applet that comes up before the
simulation starts. The applet window has the fields requesting the user’s information and the
information is connected to the SimState which then tells the GUIState what the display and the
controller should do.
47
Chapter 4
Results
Chapter 4 shows the results that are obtained from various simulations that are performed with
the model.
4.1 Simulation Arrangement
This simulation is run in an Integrated Development Environment or Integrated Debugging
Environment (IDE) which is an application containing various tools that help in software
development. There are various IDE’s in the market that can be used to run Java. Some of them
which were considered for this thesis were JCreator, NetBeans and Eclipse. For this thesis, the
environment chosen was Eclipse.
The MASON library is downloaded from the homepage of MASON and it is imported into the
Eclipse IDE. Now, MASON can be accessed easily through this GUI instead of going through
the more lengthy process of accessing MASON through the terminal (DOS) window. Using
Eclipse also saves a lot of time because debugging is easier.
The Eclipse IDE is available for Windows, Linux and MacOSx. The current version of Eclipse
can be downloaded from its website.
48
The simulation is run on an Intel Centrino Duo processor running at 1.6GHz. The system has
2GB RAM running Windows Vista Home Premium Edition.
4.2 Parameters Involved in the Simulation
Figure 4.1 shows all the initial parameters involved in this simulation. These values are
explained below.
Figure 4.1: Parameters Involved in the Simulation
Different values can be entered in the fields and when the SUBMIT button is clicked, the values
are passed on to the SimState layer. But, if one needs to simulate the program using default
values, that button is hit. This window appears when the GUI class file (SkinWithUI.java) is run
49
in the IDE. This model is a generic model and if the parameters are mentioned for a specific
biological case, those values can be entered and observed. The parameters window opens up and
the simulation and console windows also open up. The console window is shown in Figure 4.2.
Figure 4.2: Snapshot of the Console Window
The console window is the one that is used to play, pause and stop the simulation at any time. It
has several different tabs, each of which has some information about the simulation. The second
tab is can be used to control the simulation speed.
The base parameters that are considered in the simulation are shown in Table 4.1.
50
Type of Cell
Time
No of cells in the beginning of G1 subphase
5
Lifetime for the cells in the beginning of G1 subphase
50
No of cells in the intermediate stage of G1 subphase
2
Lifetime for the cells in the intermediate G1 subphase
50
No of cells in the end of G1 subphase
10
Lifetime for cells in the end of G1 subphase
150
No of cells in the Quiescent(G0) subphase
0
No of cells in the Mitosis(M) phase
0
Lifetime for the cells in M phase
50
Table 4.1: Base Parameter Values Considered for the Simulation
The lifetime of the cells in the cell cycle has also been modeled in a relative fashion. In the case
of mammals, the average cell cycle duration is on the average 24 hours [31]. G1 is typically the
longest subphase which lasts for about 10 hours, followed by S subphase which lasts for around
5-6 hours and then followed by G2 subphase which lasts for a maximum of 4 hours. The
Interphase as a whole lasts for 20 hours. The M phase which is the cell division phase lasts for 2
hours. So from the times described, the cell cycle follows the ratio 1:0.5:0.5:0.2 (G1:S:G2:M).
The values for G2 subphase and S subphase has been modeled in this ratio, but MASON has the
capability to tweak these values and change them if needed.
51
The different types of cells have been modeled in different sizes. The cells in this thesis have
been modeled in a relative fashion. The sizes of the different types of cells involved in the cell
cycle are taken from Goodsell [32]. The average size of the cells is in the range of micrometers
and it varies from 30µm in the case of skin cells to 8µm in the case of blood cells [32]. The ratio
that is used for modeling the cells is shown in Table 4.2.
Type of the Agent Modeled
Size
Cells in beginning of G1 subphase
X
Cells in the end of G1 subphase
2X
Cells in the S subphase and G2 subphase
2X
Cells in the beginning of M phase
2X
Cells at the end of M phase
X
Substrate’s length
100X
Substrate’s width
100X
Substrate’s height
2X
Table 4.2: Size of the Agents Modeled in the System
4.3 Simulation Results
Figure 4.3 below shows the substrate of the model which is dark grey in color. It also shows
some agents. This is the initial stage of the simulation process which is the initial stage of the cell
cycle process. From here, the cells are scheduled by the back end of the program. The initial
placements of the agents are random on the substrate. These random locations are generated by
the MersenneTwisterFast RNG as discussed in previous sections.
52
The simulation has been done with the base parameter values and the snapshots of the simulation
are explained in this chapter.
The following figures will give a detailed description of each and every step in the model. As
already discussed in Chapter 3, the simulation will follow the cell cycle behavior.
Figure 4.3: Snapshot of the Initial Condition of the Simulation
Figure 4.3 shows the initial starting point of the simulation. The agents or the cells that are seen
in this figure come from the values that are entered in the parameter window that is shown in the
beginning of the simulation in Figure 4.1.
53
The cells or the agents in the above figure during the simulation act according to the situations in
the environment. The red cells that are bigger in size are the cells at the end of the G1 subphase
and the rest of the cells are those that are at the beginning of the G1 subphase.
These cells progress through the cell cycle and each stage is shown clearly in the figures that
follow. Figure 4.4 is the snapshot from the simulation when some cells have passed the S and the
G2 subphase and are now in the Mitosis (M) phase. The cells in the M phase are green in color.
Figure 4.4: Snapshot of Agents in M phase
Now that some agents are in the M phase and some agents are in G1 subphase, either at the end
or the beginning, the agents are simulated in parallel just like in real time. The action of one of
the agents will not hinder the actions that the other agents are performing. Therefore, each agent
will behave according to the environmental conditions. The agents in the M phase now go into
54
the G1 subphase and simultaneously those agents that are in the end of the G1 subphase go
through the S subphase and the G2 subphase and enter the M phase. Figure 4.5 shows this.
In Figure 4.5, the agents that are green in color are the agents that were at the end of the G1
subphase in Figure 4.4. Similarly, the agents that are red in color are those agents that were in the
M phase in Figure 4.4. These two figures give a clear picture of how the agents are behaving in
the model.
Figure 4.5: Snapshot of Agents in G1-S-G2-M Phase and M Phase-G1 Subphase
As the simulation progresses, some of the agents go into the G0 state, i.e., the quiescent state
because of the Contact Inhibition phenomenon. This phenomenon was explained in Chapter 3 in
Section 3.5. An agent that has entered into the quiescent state is shown in Figure 4.6.
55
In Figure 4.6 there is an agent that is yellow in color. It is this agent that is in the quiescent stage.
The agent will exit from the quiescent stage when the contact inhibition condition fails. From
here on, the simulation will progress continuously until the entire substrate is occupied with
agents.
Figure 4.6: Snapshot of Agent in G0 Subphase
Figure 4.7 and 4.8 show simulation snapshots at an intermediate stage of the simulation and at
the end respectively.
56
Figure 4.7: Snapshot of the Model at an Intermediate Level
Figure 4.8: Snapshot of the Model Towards the End
Figure 4.8 contains nearly ten thousand agents and they were all active during the simulation.
The number of agents increases over the simulation as can be seen from the data in Table 4.3.
57
Time Step
Iteration
Number
No. of Quiescent
Agents
Total No. of
Agents
0
0
0
0
500
1
0
2
1000
2
0
5
1500
3
2
8
2000
4
13
20
2500
5
37
65
3000
6
49
103
3500
7
82
149
4000
8
177
213
4500
9
233
528
......
.....
10500
21
3004
3518
11000
22
3170
3545
11500
23
3473
3690
12000
24
3662
3876
Table 4.3: Number of Agents During the Simulation
The simulation is run until the entire substrate is occupied with agents. This will happen
gradually as the cells grow in size, get synthesized and divided and then go back into the G1
subphase. Each cell also undergoes a regular check when it is passing through the checkpoint
G0.
58
It can be seen from the time step values that for the first few intervals no quiescent cells are
observed. After around 2500 steps, a significant number of agents are present in the quiescent
state. From then on, the number of quiescent agents starts to increase significantly because the
phenomenon of contact inhibition becomes more prominent as the number of cells increases.
From the results above, a graph shown in Figure 4.9 is plotted for the number of agents in the
quiescent subphase against the time steps. Each cycle in the simulation is around 500 time steps,
i.e., 500 steps in the base simulation of the model is considered to be a single cell cycle. In this
single cycle of 500 steps, a particular agent will cycle through all the stages of the cell cycle. The
delay of these steps can also be adjusted with the console window as mentioned in Section 4.2.
Figure 4.9: Cell Growth Characteristics with Base Parameters
59
The entire simulation model is an iterative process that goes in a loop, one cycle after another.
Each cycle in the simulation model can be either sped up or slowed down using the delay option
in the console window as mentioned earlier. Each of these cycles in the simulation represents
around 24 hours in real time [25] [31] [39]. These values will obviously vary as a result of
changes in the physical conditions of the cell cycle.
4.4 Simulation of Wound Condition
An extension to the existing preliminary model is given in this section. In certain cases, for
example, in the case of skin cells, there is a possibility that an external stimulus or activity can
get rid of certain portions of the cells during the cell cycle process. So, the simulation model has
been used for such an external condition. The snapshot of the cell substrate after cells have
occupied most of the substrate is shown in Figure 4.8. At this point of time, certain portions of
the cells in the substrate are deleted and a snapshot of the result is shown in Figure 4.10.
Figure 4.10: Snapshot When Cells Are Deleted
60
This simulation is once again run. Note that any damage that has occurred to a particular cell
cannot be simulated in this model, as simulating the recovery of a single cell from a damaged
condition itself involves lots of conditions and analysis. Figures 4.11(a)-4.11(g) are snapshots
from the simulation of the wound condition case.
Figure 4.11(a): Snapshot Taken at 29th Iteration
Figure 4.11(b): Snapshot Taken at 30th Iteration
61
It can be seen from the above figures that as the simulation progresses, the cells start to occupy
the deleted area.
Figure 4.11(c): Snapshot Taken at 32nd Iteration
Figure 4.11(d): Snapshot Taken at 37th Iteration
Figure 4.11(e): Snapshot Taken at 42nd Iteration
Figure 4.11(f): Snapshot Taken at 47th Iteration
62
As can be seen from the series of figures above, the cells grow in size and multiply and they try
to reach the state they were in just before deletion took place. A few more iterations will make
the substrate look as follows:
Figure 4.11(g): Snapshot Taken at 51st Iteration
From all the figures, a general understanding of the cell cycle simulation process can be
understood. The more area that is deleted from the substrate, the more time it is going to take for
the simulation to make the substrate fill up with cells just like it was before deletion.
Figures 4.12 and 4.13 show the cell count for the above example over time.
This case can be made much more accurate in future versions of the model by including more
detailed biological information about how cells move on the substrate, as explained above.
63
Cell Growth Characteristics under Wound Condition
4500
Number of Cells / Agents
4000
3500
3000
2500
2000
1500
1000
500
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Iteration Number
Number of Cells / Agents at end of an iteration
Figure 4.12: Cell Growth Characteristics When Wound Occurred
Cell Growth Characteristics under Wound Condition
4500
Number of Cells / Agents
4000
3500
3000
2500
2000
1500
1000
500
0
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51
Iteration Number
Number of Cells / Agents at end of an iteration
Figure 4.13: Cell Growth Characteristics After Stabilization
64
4.5 Variation of Simulation Parameters
The simulation parameters in Figure 4.1 can be varied at the beginning of the simulation. These
parameters control the entire simulation of the model. The entire cell cycle duration on the
whole can be changed by changing the lifetime values of the different cells or the agents that are
involved in the simulation. For example with the base parameter values considered, single cell
cycle duration was 500 time steps which is equivalent to a single iteration. If the length of the G1
subphase is set to a different value, the entire cell cycle will finish in fewer of cycles even though
it takes the same number of iterations. This is how the entire cell cycle process can be changed.
Some other variations that can be done are as follows:
1. In the background, the substrate agent size can be varied depending on the needs again.
2. The size of the various agents involved in the simulation can be changed. For example,
the size of the cells in mitosis can be changed which will eventually vary the behavior in
occupying the substrate area.
3. Even the shape of the agents can be changed. When simulating certain specific cases, a
cell might be ellipsoidal and not spherical.
4. Detailed interaction between the agents can be developed at the background level.
4.6 Improvements Suggested by Biologists
The model after completion was shown to biologists to get their viewpoint. I would like to
personally thank my colleagues Swathi Balaji and Varun Krishnamoorthy again for their time
and suggestions about the model.
65
The main improvements suggested were as follows:
1. The cell movement in real time occurs as a repeated cycle of membrane protrusion and
attachment, cytoskeletal contraction and rear detachment [40]. These are intracellular
components that should be analyzed and then can be incorporated in the model. The
model so far has the ability to change the velocity at which each and every cell moves.
Hence, for a certain cell model when the cell movement values are known, they can be
used to replace the values of the velocities of each and every cell in the source code.
2. Another suggestion is that the cells move around the substrate as a matrix. This
suggestion was made when the wound condition was simulated. The cells at the edge of
the substrate as observed in Figure 4.11(c) start moving along with the cells near the
deleted area. This kind of behavior will not happen in real cases because of the matrix
behavior existing between the cells. This is a good future work that can be implemented
to make the model better.
4.7 Performance Graph
Figure 4.14 shows the percentage of the processor used over the time the simulation started. It
can be seen that over 80% of the processor has been in use most of the time and hence we need
to move towards parallelization. The graph shown below is for the normal cell growth case.
66
Figure 4.14: Performance Graph of the System
67
Chapter 5
Conclusions and Future Work
5.1 Conclusions
In this research, an agent based model of cell cycle regulation has been developed. The ABM
gives a detailed approach to the modeling of this biological system. This is because the ABM
takes into account the spatial aspects. This is one of the important factors in the analysis of ABM
that other mathematical models do not easily take into account. As discussed in Chapter 2, a
detailed analysis has been made of which ABM tool can best be used to model the system. There
were requirements that an ABM tool should meet in order for it to be considered to model the
system. Some of these requirements are that an ABM tool should be robust and efficient and
should have very good 3D visualization capability and parallelization features. Of all the various
tools studied, MASON was the best choice for this project.
The system we chose to model is the cell cycle regulation. To start with, a basic model of the
cell cycle regulation has been designed. The entire model has been written in Java and the
visualization is in 3D. Chapter 3 has a separate section on UML that explains about the code
used in modeling the system. Special UML diagrams such as the Agent UML (AUML) are also
presented to give a detailed explanation about each agent’s behavior in the code.
68
The simulations have been performed for a set of base parameters. The figures or the graphs that
have been obtained from the simulation explain the behavior of the cell cycle. The base
parameters that are presented in Chapter 4 can be changed during the initiation of the simulation
to march those in experiments undertaken by biologists.
This agent based model is very useful to study cell cycle regulation at the intercellular level. This
model has been developed with techniques employed in previous work on ABM models [25].
The current model developed is more robust and efficient as it can simulate large numbers of
agents. The current biological system that is being modeled is much more complex when
compared to the previous model.
5.2 Future Work
The current simulation simulates a system that has around ten thousand agents. This simulation
can perhaps handle twenty to thirty thousand agents effectively. When the agent count increases
to around fifty thousand or one hundred thousand, the time that the system takes to simulate will
be very high. Time is a very important factor because when the time taken to simulate a system
is measured in days, in vitro instead of in silico simulation may make more sense. To make sure
that the simulation time is appropriate, the model can be parallelized. Parallelization is a concept
wherein different agents will be assigned to different processers that can simulate them
separately, thereby increasing the efficiency and decreasing the simulation time. MASON is
capable of supporting parallelization and that is one of the main reasons for selecting MASON as
the ABM tool of choice.
69
The entire model can be improved by improving the small parts of the model. For example, all
the cells in this model have been considered as spherical, but there might be conditions where
during collision a cell might change its shape. This is where the agent geometry, physics and
physical models of motion come into effect. Focusing on all of these factors will result in a better
model.
The current model is at an intercellular level. The model can be improved if an interaction
between any two agents can be modeled in more detail or if the model also functions at an
intracellular level. Intracellular level can be seen in cases when the cell in G1 phase goes into M
phase. During this process, there are several reactions taking place at an internal level that can be
modeled in MASON. Including these would make the model more precise. This model has been
designed such that it can qualitatively represent the system. Kinetic behavior of the system is
also an important factor for making the model more precise. Including this behavior will result in
a model that can quantitatively and accurately represent the biological system’s behavior.
We can summarize the future work as follows:
1. Parallelize the system to increase computational power.
2. Focus on the agent geometry, physics and physical models of motion for making the
model more precise.
3. Model the system at the intracellular level and then deploy it in the intercellular ABM,
making the overall model even more precise.
4. Include more physical information to make the model more quantitative.
70
5.3 Presentation Based on this Work
This thesis work has been presented at the Ohio Collaborative Conference on Bioinformatics
held at Toledo, Ohio in June 2008 [41].
71
Bibliography
1. H. Kitano, “Systems Biology: a brief overview”, Science, vol. 295. March 2002, pp.16621664.
2. E. Bonabeau, “Agent-based modeling: Methods and techniques for simulating human
systems”, Proceedings of the National Academy of Sciences, vol. 99, May 2002, pp. 72807287.
3. D. Ross, “Game Theory”, The Stanford Encyclopedia of Philosophy, Edward N. Zalta ed.,
August 2008.
4. P. Cilliers, Complexity and Postmodernism: Understanding Complex Systems, Routledge,
London, February 1998.
5. A. Aderem, “Systems biology: Its practice and challenges”, Cell (Cambridge), vol. 121, issue
4, May 2005, pp. 511-513.
6. N. Gilbert and K. G. Troitzsch, Simulation for Social Scientists, 2nd ed. Open University
Press, New York, 2005, pp. 115.
7. M. Wooldridge, An Introduction to MultiAgent Systems, John Wiley & Sons Ltd, New York,
2002.
8. A. E. Eiben and J. E. Smith, Introduction to Evolutionary Computing, Springer, New York,
October 2008.
72
9. J. M. Epstein and R. L. Axtell, Growing Artificial Societies: Social Science from the Bottom
Up, The MIT Press, Cambridge, November 1996.
10. R. Axelrod, The Complexity of Cooperation: Agent-Based Models of Competition and
Collaboration, Princeton University Press, Princeton, August 1997.
11. C. Reynolds, “Computer animation with scripts and actors,” Proceedings of the 9th Annual
Conference on Computer Graphics and Interactive Techniques, 1982, pp. 289 -296.
12. B. Stroustrup, The C++ Programming Language, 3rd ed. Addison-Wesley Professional,
Boston, February 2000, pp. 158-160.
13. C. M. Macal and M. J. North, “Tutorial on agent-based modeling and simulation,”
Proceedings of the 2005 Winter Simulation Conference, 2005, pp. 2-15.
14. E. Bonabeau, “Agent-based modeling: Methods and techniques for simulating human
systems,” Proceedings of the National Academy of Sciences, vol. 99, May 2002, pp. 72807287.
15. J. L. Casti, Would-Be Worlds: How Simulation is Changing the Frontiers of Science, John
Wiley & Sons Ltd, New York, February 1998.
16. J. Desel and G. Juhás, What Is a Petri Net? Informal Answers for the Informed Reader, vol.
2128, Springer, Berlin, 2001, pp. 1-25.
17. A. Regev, W. Silverman, and E. Shapiro, “Representation and simulation of biochemical
processes using the pi-calculus process algebra”, Pacific Symposium on Biocomputing, vol.
6, 2001, pp. 459-470.
18. H. V. Dyke, R. Savit, and R. L. Riolo, “Agent-based modeling vs. equation-based modeling:
A case study and users’ guide”, Proceedings of Workshop on Modeling Agent Based Systems
(MABS98), 1998, pp. 10-25.
73
19. D. S. Wishart, R. Yang, D. Arndt, P. Tang, and J. Cruz, “Dynamic cellular automata: An
alternative approach to cellular simulation,” Silico Biology, no. 4, 2004, pp. 1-3.
20. M. Berryman, Review of Software Platforms for Agent Based Models, Defense Science and
technology operation, Land Operations Division, Edinburgh, Australia, 2008, pp. 9-15.
21. S. F. Railsback, S. L. Lytinen, and S. K. Jackson, “Agent-based simulation platforms:
Review and development recommendations,” Simulation, vol. 82, 2004, pp. 609-623.
22. S. Luke, C. Cioffi-Revilla, L. Panait, and K. Sullivan, “MASON: A new multi-agent
simulation toolkit,” Proceedings of the 2004 SwarmFest Workshop, 2004, pp.1-7.
23. M. Matsumoto and T. Nishimura, “Mersenne twister: a 623-dimensionally equidistributed
uniform pseudorandom number generator,” ACM Trans. Model. Comput. Simul., vol. 8, no.
1, January 1998, pp. 3-30.
24. C. Vera, R. Skelton, F. Bossens and L. A. Sung, “3-D Nano-mechanics of an Erythrocyte
junctional complex in equibiaxial and anisotropic deformations,” Annals of Biomedical
Engineering, vol. 33, no.10, 2005, pp.1387–1404.
25. D. C. Walker, J. Southgate, G. Hill, M. Holocombe, D. R. Hose, S. M. Wood, S. Mac Neil,
and R. H. Smallwood, “The Epitheliome: agent-based modeling of the social behavior of the
cells,” Biosystems, vol. 76, no. 1-3, 2004, pp. 89-100.
26. S. P. Palecek, A. F. Horwitz, D. A. Lauffenburger, “Kinetic model for Integrin-mediated
adhesion release during cell migration,” Annals of Biomedical Engineering, vol. 27, 1999,
pp. 219-235.
27. D. A. Lauffenberger and A. F. Howritz, “Cell Migration: A physically integrated molecular
process,” Cell, vol. 84, 1996, pp.359-369.
28. G. Plopper, “The extracellular matrix and cell adhesion,” Cell, vol. 49, 2002, pp.123-143.
74
29. J. R. Hurley and D. A. Narmoneva, “Fibroblasts induce mechanical changes in the
extracellular environment and enhance capillary-like network formation,” Proceedings of the
ASME 2008 Summer Bioengineering Conference (SBC2008), June 2008.
30. R. J. Reynolds and J. A. Schecker, “Radiation, cell cycle, and cancer”, Las Alamos Science,
no.23, 2003, pp. 64 – 73.
31. D. Fufa, SparkNote on The Cell Cycle, SparkNotes, December 2008.
32. D. S. Goodsell, The Machinery of Life, Springer-Verlag, New York, 1998.
33. M. Gheorghe, M. Holocombe, and P. Kefalas, “Computational models of collective
foraging,” BioSystems, vol. 61, 2001, pp. 133-141.
34. M. Holocombe and A. Bell, “Computational models of immunological systems,” Information
Processing in Cells and Tissues, Plenum Press, 1998, pp. 213-226.
35. G. Booch, I. Jacobson, and J. Rumbaugh, “OMG Unified Modeling Language
Specification”, March 2003, page xxv.
36. B. Bauer, J. P. Muller, and J. Odell, “Agent UML: A formalism for specifying multiagent
interaction”, Agent-Oriented Software Engineering, Paolo Ciancarini and Michael
Wooldridge ed., Springer-Verlag, Berlin, 2001, pp. 91-103.
37. S. W. Ambler, The Object Primer: Agile Model Driven Development with UML2, 3rd ed.
Cambridge University Press, Cambridge, 2004, pp.231-236.
38. B. Bauer, “Uml Class Diagrams Revisited in the Context of Agent Based Systems”, AgentOriented Software Engineering II, Springer-Verlag, Berlin, 2002, pp. 101-118.
39. R. Dover and C. S. Potten, “Cell cycle kinetics of cultured human epidermal keratinocytes,”
Investigative Dermatology, vol. 80, no. 5, May 1983, pp. 423-429.
75
40. S. P. Palecek, A. Huttenlocher, A. F. Horwitz, and D. F. Lauffengurger, “Physical and
biochemical regulation of integrin release during rear detachment of migrating cells,”
Journal of Cell Science, vol. 111, 1998, pp. 929-940.
41. V. Vallurupalli and C. Purdy, “Agent based modeling and simulation of biomolecular
reactions,” Scalable Computing: Practice and Experience (SCPE), vol. 8, no. 2, 2006, pp.
185-196.
76
Appendix
User Manual – 3D Agent Based Model of Cell Growth
This appendix has been divided into the following sections
1. Installation of MASON
2. Installation of Eclipse
3. Setting up MASON with Eclipse
4. Running MASON
4.1 Running from Command Prompt
4.2 Running from Eclipse
5. Starting the Simulation
A.1. Installation of MASON
1. The homepage for MASON is http://cs.gmu.edu/~eclab/projects/mason/
2. The latest version of MASON (as of January 2009) is Version 13 and it can be found in
its homepage. MASON is available as a tar file as well as a zip file.
3. Extract the zip file and save the contents in a specific folder. For example, C:\MASON
4. Since we are more interested in developing MASON for 3D visualization, we need to
install Sun’s Java3D framework.
5. Java3D is available in http://java.sun.com/javase/technologies/desktop/java3d/index.jsp
77
6. MASON has the capability to draw charts and graphs based on the values generated from
the simulation. To extend this MASON feature, we need to add a separate library
(libraries.zip) available in the homepage of MASON.
7. Other online tutorials are available that have further details about MASON. These are
available at the link given below:
http://cs.gmu.edu/~eclab/projects/mason/
The basic requirements that are needed to install MASON and Eclipse would be a Pentium
processor or equivalent or higher, 512MB RAM or higher, Windows XP or higher, or Mac OS x
9 or higher.
A.2. Installation of Eclipse
1. Download Eclipse from http://www.eclipse.org/downloads/
2. Download the Eclipse Classic. The latest version is Eclipse Classic 3.4.1, as of January
2009. Download the file and install the IDE.
3. Create a workspace. Multiple workspaces can be created to work more efficiently.
A.3. Setting up MASON with Eclipse
1. Setting up MASON with Eclipse is an important step. Directions can be found at
http://www.swarm.org/images/1/10/How-to_set_up_%26_use_Eclipse_with_Mason.pdf
78
2. The above link has details on how to incorporate a package into the MASON
environment in Eclipse. Section IV in the document explains setting up MASON with
Eclipse.
A.4. Running MASON
MASON can be run in two ways. One is from the command prompt and other is from the Eclipse
IDE environment. Before running our model, the source code should be imported into MASON.
The following steps should be followed.
1. The source code is present as Skin.rar file. Extract the rar file into the MASON directory.
2. Right click on sim.app inside MASON and create a new package by name Skin.
3. Right click on the package Skin and then select Import  File System. Click Next, and
from here browse through the computer directory and select the source code which is
extracted in the MASON directory.
4. After importing, click on the tree in MASON and double click the files in sim.app.Skin to
view the source codes.
A.4.1 Running MASON from Command Prompt
1. From the command prompt, go into the folder where MASON is installed and then type
the following command – java sim.display.Console. This particular console window
has by default a set of simulations.
2. Typing in this command, will start this set of simulations. Each simulation can be started
by clicking on the simulation.
79
3. This set of default simulations is also embedded in the homepage of MASON.
A.4.2 Running MASON from Eclipse
1. Advice on running the model from Eclipse is available at the following website:
http://www.swarm.org/images/1/10/How-to_set_up_%26_use_Eclipse_with_Mason.pdf
2. Section V in the above link has details on how a model can be run from Eclipse.
A.5 Starting the Simulation
1. Inside Eclipse, expand the hierarchy tree that appears on the left of the screen.
2. Expand MASON  src  sim.app.Skin
3. Double click on sim.app.Skin.SkinWithUI.
4. To run the simulation, either press F5, or Click on Run  SkinWithUI.
5. The simulation windows will open up. The ways to start the simulation and the controls
in the dialogue boxes can be found in Chapter 4.
80