[ w y P h y s . c o m ]
Molecular Dynamics using PDB Entity
Contents
IntroductionPhysical Model
Video Examples
Downloads
Introduction
Note: the information presented in this introduction will help clarify the meanings of various actions performed in the video examples section, and the video examples will help clarify the information presented in this introduction. That is, neither will make sense until both have been read/viewed.
The molecular dynamics application, PDB Entity, is so named because it is built upon the entity software architecture that I developed with Dr. Hayden Porter (Furman University Department of Computer Science). The reason for using the entity architecture as the basis for PDB Entity is that it provides a flexible environment in which the components of the molecular dynamics application can be combined and modified at runtime to suit the needs of a given simulation.
In the entity architecture, a program can be treated as a graph whose nodes are various components of the application:
![]() |
At left is a screenshot from the Graph Viewer window of the PDB Entity application. Program components (nodes) are represented as diamonds, and their interrelations are represented by lines between the diamonds. The node labeled simple2 is the programmatic representation of a PDB file (simple2.pdb). It contains the data from the PDB file (atom positions, and bond information), and it provides common methods of interacting with that data (such as saving and loading PDB files). The node labeled Modeler is the application component for creating PDB objects from scratch, or for modifying them later (changing atom positions, adding new atoms, etc.). LatticeSim is the component that performs simulations on PDB objects. The example at left shows a combination of these three components in which a PDB file was opened using the first node, that data was passed into the modeler where it may have been modified, and the resulting configuration of atoms was then passed to the LatticeSim as input. |
The boxes below the diamonds can be clicked on to toggle a 3D view of the data stored in a given component (for all three components above, that view shows the atoms and bonds that make up the PDB object being modified and simulated).
The Main Objects window shown above is used to add components to the running application. Clicking on one of the buttons will create a new node in the Graph Viewer window. From left to right, the buttons are: Collection, PDB Object, LatticeSim, and Modeler. The only component not yet described is the Collection component because it is not explicitly used by the application in its current form (it is used implicitly by the Modeler component to be able to modify collections of PDB objects at the same time).
At right is a screenshot from the Property Editor window which displays the various properties and structures of a selected program component that permit interaction with the underlying data. The tree structure at the bottom of the window shows the logical layout of a LatticeSim component. A LatticeSim consists of:
The panel above the tree structure exposes basic properties that can be modified. For instance, k is the spring constant used to define the bond restoring force (note that the simplifying, assumption is made that all bonds are equally strong and have equal restoring forces). If an element of the tree structure other than the root (LatticeSim), is clicked, then the panel will show the properties of the selected sub-component that can be modified. For instance, clicking on Oscillation Field would allow the user to modify parameters such as the magnitude, direction, and angular frequency of oscillation. The buttons at the top correspond to simple actions that can be performed on the simulation:
At right is a screenshot from the Connector window. This window allows the user to map properties from one simulation component to another (in this case, from the Modeler to the LatticeSim). For example, the output PDB object of the Modeler is mapped as input to the LatticeSim. |
![]() ![]() |
Physical Model
![]() |
The figure at left is a free body diagram of the topmost atom in a tetrahedrally shaped molecule. In the figure it is assumed that the top atom is displaced slightly so that it is closer to the central atom than normal, and its bond is angled slightly to the right of where it should be in relation to the other bonds emanating from the central atom.
All forces shown here are mirrored by forces on other appropriate atoms so as to fulfill proper action-reaction pairs. The simulation is run as a series of time-steps; during a given time-step the forces on each atom are calculated and
then applied to solve the differential equations of motion for each atom. The differential equations are numerically
solved using the Verlet algorithm as implemented by
OSP (Open Source Physics) |
This model has a number of fundamental limitations and serves primarily as a way of gaining a qualitative understanding of some of the processes occurring at the molecular level. All interactions are treated classically whereas processes occuring in the molecular size regime are more properly treated quantum mechanically. This model also lacks correct values for the bonding spring constants, which could be determined empirically or by first principles calculations, but are currently left as input values to the simulation.
Video Examples
Note: Since the videos in this section are not streaming videos, they will not play until they are fully loaded. With a reasonable internet connection, they should load in the time it takes to read the sections above and to watch the first few videos that appear.
Several of these examples have multiple views that can be seen by clicking the links directly above the flash movie. Once a movie is playing there are standard movie controls underneath the flash movie.
Example 1: Simple Molecule construction and simulation
Views: Construction | Simulation Setup | Simulation Run
Example 2: Setting up a C60 molecule to roll on a graphene-like plane (Examples 3 and 4 below show the results)
Because of the limitations of the physical model being used, the movies that follow do not show what would occur in reality. The movies do, however, provide a qualitative understanding of some of the underlying processes taking place. For instance, a collection of frictionless particles can, as a group, lose translational and rotational energy to random vibrations and wave propagation. Even though no individual particle experiences friction, a C60 molecule can roll on a plane of atoms.
Downloads
The program and its source code (provided under the GPL
) can be downloaded here:nTt_dev.zip (6MB).
To run PDB Entity you will need both Java and Java 3D which you can download from:
-
Java download site
(most computers come with Java already installed - if the QMWave applet runs in your browser,
then you already have Java)
- Java 3D download site

Note that you should download and install Java and Java 3D in the order listed above to ensure proper installation.
Once Java and Java 3D are installed, unzip nTt_dev.zip to the location of your preference. There should be a file called run.bat (the .bat extension may or may not show up) in the nTt_dev folder which will run PDB Entity on Windows (2K/XP/Vista).
It is also possible to run PDB Entity on linux and Mac OS X. In the nTt_dev folder there is a script file called linux_run.sh which, on linux, will run PDB Entity.
Back to the main page...
