Gaussian Network Model (GNM) predicts the flexibility of the structure by reducing it to be a set of certain atoms. The interactions of these atoms depend solely on their location. This representative set of atoms is known as nodes. Then a cutoff distance is defined such that outside of this distance, there are no interactions between nodes. The bonds between the atoms are estimated as a spring, with spring constant k=1.
For a network of N nodes with given coordinates, the cutoff distnace is rc. The fundamental NxN Kirchhoff matrix, Γ, has elements:
where rij is the distance between node i and node j. H(x) is the Heaviside step function where H(x)=1 for x>0 and H(x)=0 for x≤0.
The elements of the covariance matrix predicted by the GNM are related to the inverse of the Kirchhoff matrix (Γ-1). The covariance matrix is defined as:
kB is Boltzmann constant, T is temperature in Kelvins, γ is the force constant of the imaginary spring between two nodes.
The diagonal elements of the covariance matrix are autocorrelations of the nodes and can be treated as fluctuations after being normalized.
Example: GNM Applied
From the image above, there are 5 nodes. Nodes 1,3 and 4 are all within the cutoff distance. Nodes 2 and 5 are not within the cutoff distance. The interactions between these 5 nodes would be defined such that there would be a 5x5 Kirchhoff matrix. Each row would have the interactions corresponding to its node (i.e. row 1 would be interactions for node 1 to all other nodes). Interactions for node 1 are circled and explained below.
Assume ai,j is a position in the matrix of row i and column j.
For node 1:
The matrix for ONLY row 1 would look like (colors correspond to circles in image): [2 0 -1 -1 0]
These steps are then repeated for each node to make a 5x5 matrix.
How We Applied GNM to Synthetic DNA
1. Structure was built in NanoEngineer-1 and exported as a PDB file.
2. Coordinates (x,y and z) were extracted from the PDB file and saved as an Excel file.
3. Calculations for the matrix were done in MATLAB with code written by our team. The program uses the math described above. The output of the program is a matrix that has fluctuations that correspond to each node.
4. Fluctuation data, with corresponding node number, was again saved as an Excel file.
5. Coloration of the data was done in MATLAB but was also done in PyMOL for better images. The output is an image of the structure with colors that corresponded to the fluctuation of the node. Dark blue was used for nodes with the least amount of flexibility. Red was used for nodes with the most flexibility. In between colors were used to represent that correct fluctuation.
NanoEngineer-1 is an open-source computational modeling tool created by Nanorex Inc. This program allowed us to create the multiple synthetic DNA structures shown in this wiki. It is very user friendly and operates similar to Solid Works. The difference is that instead of creating structures with plastic or metal, we could create structures made of DNA. We are able to edit the DNA strands however we please, make connections as we see necessary and define the sequence of the DNA.
Function to calculate fluctuations: Media:Fluctuations.m
Function to get 3D graph of structure with fluctuations: Media: Colorgraph.m