Project: Discrete Event Simulation of Self-Assembly Kinetics

 
complete virus capsid assembly (T=1)


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

Main Java souce code in tarred gzip format: Simulator_1.3.0.tar.gz(Size:  84 k)

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.
 
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.


Please visit here to browse  set of HTML pages describing the classes,  constructors , methods and fields of Discrete Event Simulator package.



Results



Close-up view of a collection of small filaments.
         



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:

XML Generator display during the process of rule specification. Model T=1 viral capsids generated from XML Generator 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



Copyright (c) 2004  Carnegie Mellon University.
Contact:
Dr. Russell Schwartz
russells (at) andrew.cmu.edu

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.