Project: Discrete Event Simulation of
Self-Assembly Kinetics

Project Background
Self-assembly is a
process by which small molecular components can spontaneously assemble
into functional structures or molecular machines. Self-assembly systems
in nature can range from relatively small heterocomplexes, such as the
ribosome, spliceasome, or proteasome, to large structures such as the
actin or tubulin cytoskeletons of cells. Such assemblies are involved
in numerous critical cellular processes, including DNA replication and
transcription, protein translation and degradation, and cell motility
and shape control. Self-assembly is also central to many human
diseases. Viruses, for example, are themselves incredibly sophisticated
self-assembly systems. Amyloid diseases, such as Alzheimer's, are also
characterized by a self-assembly process in which normally harmless
proteins assemble into fibrous structures that are the signature trait
of these diseases. Furthermore, self-assembly has recently emerged as a
particularly promising technology for fabrication at the nanometer
scale.
All of the above
suggests that there would be great value in being able to simulate
self-assembly systems. Realistic simulations of self-assembly would
give us a means of better understanding many of these processes, the
factors that control them, and how we might manipulate them. For
example, computer models of virus or amyloid assembly could become a
valuable testbed for hypothetical drug treatments, potentially saving
considerable time and expense in the laboratory and the clinic.
Furthermore, given the ubiquity of self-assembly in cell biology,
building realistic quantitative models of self-assembly dynamics is
going to be an essential precondition of building predictive models of
overall cell behavior, itself one of the key promises of the emerging
field of systems biology. Similar advantages can be expected should
self-assembly continue to show promise for nanometer scale fabrication,
as reliable quantitative simulations would give us a way to prototype
and optimize systems in the computer before going through the slow and
costly process of fabrication.
Yet simulation of
complicated self-assembly systems remains a daunting challenge,
particularly at the scales seen in typical cellular systems.
Traditional methods for chemical simulation cannot deal well with the
small scales or large numbers of reaction intermediates possible in
typical self-assembly systems. Discrete-event computational methods,
which keep track of absolute counts of particles and treat assembly as
a stochastic process, show greater promise but are still not capable of
handling systems of very large numbers of distinct intermediates.
The goal of this
project is to fill in some of the gaps in conventional self-assembly
simulation methods by developing new data structures and algorithms for
fast, memory-efficient simulation of even the most complicated
assemblies. We have accomplished this by developing computational queue
data structures to allow us to reduce work per simulation step while
keeping memory overhead low. We have developed a highly general model
of self-assembly based on the local rules principles of Berger et al.
(1994) and extensions to handle binding kinetics developed in Schwartz
et al. (1998). We have further implemented this model using our novel
queuing methods in a prototype simulation tool. This tool is meant to
illustrate our method and allow preliminary validation. While the tool
is still quite rough and is not yet highly optimized, we hope it can
illustrate our methods and facilitate their use on model systems beyond
those being studied by our group. We intend to eventually adapt this
into a highly efficient, robust, and easily useable tool for anyone
interested in self-assembly.
Implementation
- Preliminary version (v. 1.3) of the
Discrete
Event Simulator package
download
Currently, this
preliminary
version of the Discrete Event Simulator package requires other java
libraries. Please follow the following links to
download and install them in order to use this
package.
1) Java 2 Platform, Standard Edition, V
1.4.2. User can download it from
here.
2) Java3D 1.3.1 API: It provides a set of object-oriented interfaces
for user to build, render , and control the behavior of 3D objects and
visual environments. We use
this open-source library to incorporate high-quality, scalable,
platform-independent 3D graphics into this Discrete Event
Simulator to display the self-assembly of actin, tubulin and virus
capsid visually.
3)
BinaryHeap.java and
PriorityQueue.java. These
two files in the DataStructures package written by Peter Williams were
incorporated into our package. You don't have to download them
separately. Please visit
here
to browse the whole package.
- Installation
and execution instructions:
1) Download required
packages, install them following their installation instruction.
2) Download Simulator.tar.gz and unpack
it using tar or a suitable archiver program. For example, under linux
operating system, use the following command:
tar
zxvf Simulator_1.3.0.tar.gz
3) Compile the program with the
following command:
javac Test.java
4) Launch the program with the following command:
To choose from
a set of predefined models systems and then select parameters using a
dialog panel , run
java Test 1 1
To
load an XML template file defining a full simulation, run
java Test 1 1
your_template_file.xml
In order to specify the maximum memory
size
to be allocated to the program, launch the program with the following
command:
java -Xmx600m Test
It will allocate a maximum of
600 megabytes memory
to the
program.
5) Set up the parameters and options from the dialog panel
6) Run the simulation continously by clicking the "Run" button or
step-wisely by clicking the "Step" button on the program GUI
7) To save the currenton state
of a simulation in progress, click the "write" button and specify a
save file name.
- Source code
documentation:
Please visit
here to browse set of HTML pages
describing the classes, constructors , methods and fields of
Discrete Event Simulator package.
Results

Please click
here to
see sample screenshots of structures of different model systems implemented
in the simulator.
Please click
here for information on the newly available XML interface for specifying model systems for the simulator.
For preliminary validation, we have
focused on the comparatively simple problem of filament and platonic
solid assembly.
Please visit
here to browse screenshots
and quantitative results from a basic filament model meant to represent
actin self-assembly.
Please visit
here to browse
screenshots
and quantitative results from a tetrahedron model.
News
We have recently
made available a new graphical
XML
Generator tool to make it easier to create rule sets for
icosehedral self-assembly systems. The simulator allows you to
graphically generate an icosahedral geometry. It then produces XML
rules for that geometry you can load directly into the DESSA
simulator. The XML Generator is written in Java and should run anywhere
the DESSA simulator itself runs. Here are screenshots of the XML Generator
in action and a T=1 system generated from its rules:
See the above link for more information and to download the XML Generator.
Updates since V1.1
1. We have
implementated and tested serval new assembly models, including tubulin,
tetrahedron, cube and simple virus capsid (T=1).
2. We have extended our self-assembly model to represent the
process of conformational switching.
3. Rendering of detailed 3D structure of assemblied structures
has been optimized.
4. The algorithm and implementation methods have been validated by
quantitative comparison with continuous differential equation model.
5. The GUI have been redesigned so that user can customize the
simulation eassily through a configuration dialog panel.
Updates since V1.2
1. We have
implementated and tested serval new complex assembly models, including
simplified T=1 and T=7 and complete T=3 virus
capsid models.
2. We have extended our
self-assembly model to allow more realistic simulation of the effects of mass of assembly rectants
on diffusion rate and association
rates, following methods of Lok and Brent (Nature Biotechnology 23:131-136).
3. We have implemented a new scheme to allow users to develop easily customizable assembly models without modifying Java code. The scheme uses an
XML schema to specify generic self-assembly systems in the local rule framework..
4. We have made it possible to save simulations in progress using the XML format and subsequently reload these saved simulations. By working through the user-readable XML format, this feature also makes it possible to modify the reaction parameters of a saved system and continue from the modified state.
Known
Issues and Future Plans
1.
Memory overhead can be unreasonably high for the simulator at present.
We plan optimizations to reduce this.
2. The simulator does not yet take advantage of a standard technique of
the N-fold way method to reduce computational time by equating
identical sub-assemblies. While that is not in general computationally
feasible for complicated assembly systems, we plan to implement it for
small sub-assemblies.
3. The numerical methods used to adjust bond angles and positions to
minimize
energy of stressed structures can fail to find a good low-energy state
for
some complex structures. We are working on improvements to these
methods.
4. We plan to extend our self-assembly model to better represent the
effects of environmental factors and mechanical force on assembly
behavior.
5. We plan considerable additional empirical studies, focused primarily
for now on the assembly of complex viral protein
shells and comparison with other models and biological experimental
data.
Project Team Members
The project research team supervised by
Dr. Russell Schwartz includes:
| Current project memebers |
Old project memebers |
Blake A. Sweeney ( bsweeney
(at) andrew.cmu.edu )
Haijun Gong (haijung
(at) andrew.cmu.edu)
Peter Kim ( pk (at)
andrew.cmu.edu )
Tiequan Zhang ( tiequanz (at) andrew.cmu.edu )
|
Sue Yi Chew ( syc (at)
andrew.cmu.edu )
Farokh
Jamalyaria ( farokhj
(at) cs.cmu.edu )
Prateek Kumar ( prateekk
(at) andrew.cmu.edu )
Rori Rohlfs ( rrohlfs (at)
andrew.cmu.edu )
|
Further Reading
The theoretical basis of this simulation
is described in:
Jamalyaria, F., R. Rohlfs, and R.
Schwartz. 2005.
Queue-based method for efficient simulation of biological self-assembly
systems. J. Comput. Phys. 204:100âÂÂ120.
The implementation of a simulator (Version 1.1) based on the
queue-based discrete event model is described in:
Zhang, T., R. Rohlfs, and R.
Schwartz. 2005. Implementation of a discrete event simulator for
biological self-assembly systems. Proc. 2005 Winter Simulation Conf .2223-2231
An application of our discrete-event simulator in the investigation of
virus capsid assembly pathways is described in a newly published paper:
T. Zhang and R. Schwartz. Simulation Study
of the Contribution of Oligomer/Oligomer Binding to Capsid Assembly
Kinetics. Biophys.
J. 90: 57-64 2006
Additional References:
1. B. Berger, P. W. Shor, L. Tucker-kellogg, J. King. Local rule-based
theory of virus shell assembly. Proc. Natl. Acad. Sci. USA Vol. 91, pp.
7732-7736, Aug. 1994
2. R. Schwartz, P. W. Shor, P. E. Prevelige Jr., B. Berger. Local rules
simulation of the kinetics of virus capsid self-assembly. Biophys. J.
75:2626-36. 1998
412-268-3971
(Phone)
412-268-7129 (Fax)
602 Mellon Institute
Department of Biological Sciences
Carnegie Mellon University
4400 Fifth Avenue
Pittsburgh, PA 15213
The work presented here was supported by
U.S. National Science Foundation grant EIA-0320595. Continuing work in
this direction is supported by U.S. National Science Foundation grant
DBI-0346981. Rori Rohlfs and Sue Yi Chew were supported in this work by
the Merck Computational Biology and Chemistry Program at Carnegie
Mellon University.
Any opinions, findings and conclusions or recomendations expressed
in this material are those
of the author(s) and do not necessarily reflect the views of the
National Science Foundation (NSF).
Permission is hereby granted, free of charge, to any person
obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this
permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT
WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.