Team:EPF-Lausanne/Analysis
From 2009.igem.org
(Difference between revisions)
(→Pressure as a function of simulation time) |
(→Examples) |
||
(41 intermediate revisions not shown) | |||
Line 19: | Line 19: | ||
- | = | + | =Tutorials= |
- | + | <br> | |
- | < | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
== Maxwell-Boltzmann Energy Distribution == | == Maxwell-Boltzmann Energy Distribution == | ||
Line 71: | Line 38: | ||
<p> | <p> | ||
- | <a href="javascript:ReverseDisplay('hs1')">Click here to show/hide</a> | + | <a href="javascript:ReverseDisplay('hs1')"> Click here to show/hide</a> |
</p> | </p> | ||
Line 169: | Line 136: | ||
</table> | </table> | ||
</form></center> | </form></center> | ||
- | |||
</p> | </p> | ||
</div> | </div> | ||
</html> | </html> | ||
+ | <br> | ||
== Energies == | == Energies == | ||
Line 192: | Line 159: | ||
<p> | <p> | ||
- | <a href="javascript:ReverseDisplay('hs2')">Click here to show/hide</a> | + | <a href="javascript:ReverseDisplay('hs2')"> Click here to show/hide</a> |
</p> | </p> | ||
Line 200: | Line 167: | ||
angles and dihedrals) and non-bonded (electrostatic, van der Waals)) over the course of a simulation. | angles and dihedrals) and non-bonded (electrostatic, van der Waals)) over the course of a simulation. | ||
<br><br> | <br><br> | ||
- | <b>1.</b> We start with a file obtained from NAMD: http://www.ks.uiuc.edu/Research/namd/utilities/ and download <i>namdstat.tcl</i> | + | <b>1.</b> We start with a file obtained from NAMD: <br>http://www.ks.uiuc.edu/Research/namd/utilities/ and download <i>namdstat.tcl</i> |
<br><br> | <br><br> | ||
<b>2.</b> In the VMD TkCon window, type : | <b>2.</b> In the VMD TkCon window, type : | ||
Line 209: | Line 176: | ||
</div> | </div> | ||
</html> | </html> | ||
+ | <br> | ||
== Temperature distribution == | == Temperature distribution == | ||
Line 227: | Line 195: | ||
<p> | <p> | ||
- | <a href="javascript:ReverseDisplay('hs3')">Click here to show/hide</a> | + | <a href="javascript:ReverseDisplay('hs3')"> Click here to show/hide</a> |
</p> | </p> | ||
Line 240: | Line 208: | ||
<br><br> | <br><br> | ||
Using EXCEL, we obtain the following graph, which represents the evolution of the temperature in function of time: | Using EXCEL, we obtain the following graph, which represents the evolution of the temperature in function of time: | ||
- | <br><img src="https://static.igem.org/mediawiki/2009/c/cf/Temp%28t%29.png"> | + | <br><br><img src="https://static.igem.org/mediawiki/2009/c/cf/Temp%28t%29.png"> |
<br>The first part corresponds the the heating, then we let the system reach an equilibrium (NPT state), a NVT portion, and finally a NPT portion again. | <br>The first part corresponds the the heating, then we let the system reach an equilibrium (NPT state), a NVT portion, and finally a NPT portion again. | ||
Line 279: | Line 247: | ||
</div> | </div> | ||
</html> | </html> | ||
+ | <br> | ||
== Density == | == Density == | ||
Line 297: | Line 266: | ||
<p> | <p> | ||
- | <a href="javascript:ReverseDisplay('hs4')">Click here to show/hide</a> | + | <a href="javascript:ReverseDisplay('hs4')"> Click here to show/hide</a> |
</p> | </p> | ||
Line 310: | Line 279: | ||
<br><center><img src="https://static.igem.org/mediawiki/2009/e/e7/Density.jpg"></center> | <br><center><img src="https://static.igem.org/mediawiki/2009/e/e7/Density.jpg"></center> | ||
<br>The first part corresponds the the heating, then we let the system reach an equilibrium (NPT state), a NVT portion, and finally a NPT portion again. | <br>The first part corresponds the the heating, then we let the system reach an equilibrium (NPT state), a NVT portion, and finally a NPT portion again. | ||
- | |||
<html><center> | <html><center> | ||
Line 347: | Line 315: | ||
</div> | </div> | ||
</html> | </html> | ||
+ | <br> | ||
== Pressure as a function of simulation time == | == Pressure as a function of simulation time == | ||
Line 365: | Line 334: | ||
<p> | <p> | ||
- | <a href="javascript:ReverseDisplay('hs5')">Click here to show/hide</a> | + | <a href="javascript:ReverseDisplay('hs5')"> Click here to show/hide</a> |
</p> | </p> | ||
Line 372: | Line 341: | ||
In order to obtain the data for the pressure from the log file we will again use the script <i>namdstats.tcl</i>, which has been updated for the occasion. | In order to obtain the data for the pressure from the log file we will again use the script <i>namdstats.tcl</i>, which has been updated for the occasion. | ||
- | <br>The file can be found <a href="https://static.igem.org/mediawiki/2009/6/67/Namdstats_igem09.txt> here </a> | + | <br>The file can be found <a href="https://static.igem.org/mediawiki/2009/6/67/Namdstats_igem09.txt"> here </a>. Please rename to namdstats<b>.tcl</b> after download. |
- | + | ||
<br><br> | <br><br> | ||
Here are the steps to use this script: | Here are the steps to use this script: | ||
<br><span style="font-family: Courier;"> source namdstats.tcl | <br><span style="font-family: Courier;"> source namdstats.tcl | ||
- | <br | + | <br> data_time DATA_NAME LOG_FILE </span> |
<br>It will extract data from LOG_FILE, creating a DATA_NAME.dat containing values and time informations. | <br>It will extract data from LOG_FILE, creating a DATA_NAME.dat containing values and time informations. | ||
<br><br> | <br><br> | ||
Line 386: | Line 354: | ||
Here is a small plot of pressure and temperature in function of time | Here is a small plot of pressure and temperature in function of time | ||
<img src="https://static.igem.org/mediawiki/2009/f/f9/1st_run.jpg"> | <img src="https://static.igem.org/mediawiki/2009/f/f9/1st_run.jpg"> | ||
- | |||
- | |||
<html><center> | <html><center> | ||
Line 424: | Line 390: | ||
</div> | </div> | ||
</html> | </html> | ||
+ | <br> | ||
==RMSD for individual residues== | ==RMSD for individual residues== | ||
- | |||
- | + | <html> | |
+ | <script type="text/javascript" language="JavaScript"><!-- | ||
+ | function HideContent(d) { | ||
+ | document.getElementById(d).style.display = "none"; | ||
+ | } | ||
+ | function ShowContent(d) { | ||
+ | document.getElementById(d).style.display = "block"; | ||
+ | } | ||
+ | function ReverseDisplay(d) { | ||
+ | if(document.getElementById(d).style.display == "none") { document.getElementById(d).style.display = "block"; } | ||
+ | else { document.getElementById(d).style.display = "none"; } | ||
+ | } | ||
+ | //--></script> | ||
+ | <p> | ||
+ | <a href="javascript:ReverseDisplay('hs6')"> Click here to show/hide</a> | ||
+ | </p> | ||
- | + | <div id="hs6" style="display:none;"> | |
- | + | <p> | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | We aim at finding the average RMSD over time for each residue in the protein using VMD. | ||
+ | <br> | ||
+ | <b>1.</b> We load the <i>.psf</i> and <i>.dcd</i> files obtained after the first round of simulation. | ||
+ | <br><br> | ||
+ | <b>2.</b> In the TkCon window type: | ||
+ | <br><span style="font-family: Courier;"> source residue_rmsd.tcl | ||
+ | <br> set sel_resid [[atomselect top "protein and alpha"] get resid] </span> | ||
+ | <br> | ||
+ | <br>This will get all the residues number of all alpha-carbons in the protein. Since there is just one and only one α-carbon per residue, it is a good option. | ||
+ | <br><br> | ||
+ | <b>3.</b> Now we will calculate the RMSD values of all atoms in the newly created selection: | ||
+ | <br><span style="font-family: Courier;"> rmsd_residue_over_time top $sel resid </span> | ||
+ | <br>At the end of the calculation, we have a list of the avergae RMSD per residue (in the file residue_rmsd.dat) | ||
+ | <br> | ||
+ | <br><b>Remark</b>: we updated <a href="https://static.igem.org/mediawiki/2009/1/1f/Residue_rmsd_v2.txt"> the script residue_rmsd.tcl</a> to be able to specify on which frames the rsmd has to be computed. Please have a look on this wiki for a more up-to-date version of the file... Command is: | ||
+ | <br><span style="font-family: Courier;"> rmsd_residue_over_time top $sel resid FIRST_FRAME LAST_FRAME </span> | ||
+ | <br><br> | ||
+ | <b>4.</b> In VMD, in Graphics → Representations, do the following actions: | ||
+ | <ul> | ||
+ | <li> create two replicates: protein and resname FMN in selected atoms | ||
+ | <li> for the FMN, choose CPK as a drawing method | ||
+ | <li> for the protein, choose tube as drawing method, and <i>user</i> as coloring method. Now click on the Trajectory tab, and in the Color Scale Data Range, type 0.40 and 1.00. | ||
+ | </ul><br><center> | ||
+ | <img src="https://static.igem.org/mediawiki/2009/thumb/d/dd/Vmd_color.png/200px-Vmd_color.png"></center> | ||
+ | <br><br> | ||
The protein is colored according to its average RMSD values. The residues displayed in blue are more mobile while the ones in red move less. | The protein is colored according to its average RMSD values. The residues displayed in blue are more mobile while the ones in red move less. | ||
+ | <br><br> | ||
+ | Here is a movie with the protein colored according to average RMSD values: <a href="https://static.igem.org/mediawiki/2009/4/4d/Moving_residue.mov"> video </a> | ||
+ | <br> | ||
- | + | <br><br> | |
- | + | <b>5.</b> Now we can plot the RMSD value per residue by typing in a Terminal window : | |
- | + | <br><span style="font-family: Courier;"> xmgrace residue rmsd.dat </span> | |
- | + | <br>We obtain the following picture: | |
- | + | <br> | |
- | + | <img src="https://static.igem.org/mediawiki/2009/thumb/c/cc/RMSD_CA_per_res.jpg/700px-RMSD_CA_per_res.jpg"> | |
- | : xmgrace residue rmsd.dat | + | <br> |
- | We obtain the following picture: | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | - | + | |
- | + | ||
- | + | ||
- | + | ||
+ | <hr/> | ||
+ | <p align="center"><big> <b>RMSD of residue within 3 angström of the FMN</b> </big></p> | ||
+ | <img src="https://static.igem.org/mediawiki/2009/6/6c/Resid_3A.jpg"> | ||
+ | <br><br> | ||
We can see that the residues that move the most are the residue number: 425, 451, 453 | We can see that the residues that move the most are the residue number: 425, 451, 453 | ||
+ | <br><br> | ||
+ | <hr/> | ||
+ | <p align="center"><big> <b>RMSD of residue within 6 angström of the FMN</b> </big></p> | ||
- | + | <img src="https://static.igem.org/mediawiki/2009/3/3e/Resid_6A.jpg"> | |
- | < | + | <br> |
- | + | ||
- | + | ||
- | + | ||
We can see that the residues that move the most are the residue number: 424, 425, 464, 468 | We can see that the residues that move the most are the residue number: 424, 425, 464, 468 | ||
+ | <br> | ||
- | |||
- | |||
- | |||
<p align="center" class="style1"><a href="#top"><img src="https://static.igem.org/mediawiki/2009/thumb/0/06/Up_arrow.png/50px-Up_arrow.png" alt="Back to top" border="0"></a><br></p> | <p align="center" class="style1"><a href="#top"><img src="https://static.igem.org/mediawiki/2009/thumb/0/06/Up_arrow.png/50px-Up_arrow.png" alt="Back to top" border="0"></a><br></p> | ||
- | |||
<br> | <br> | ||
- | |||
- | |||
<html><center> | <html><center> | ||
Line 524: | Line 504: | ||
</table> | </table> | ||
</form></center> | </form></center> | ||
+ | |||
+ | </p> | ||
+ | </div> | ||
</html> | </html> | ||
+ | <br> | ||
+ | == RMSD of selected atoms compared to initial position along time == | ||
+ | <html> | ||
+ | <script type="text/javascript" language="JavaScript"><!-- | ||
+ | function HideContent(d) { | ||
+ | document.getElementById(d).style.display = "none"; | ||
+ | } | ||
+ | function ShowContent(d) { | ||
+ | document.getElementById(d).style.display = "block"; | ||
+ | } | ||
+ | function ReverseDisplay(d) { | ||
+ | if(document.getElementById(d).style.display == "none") { document.getElementById(d).style.display = "block"; } | ||
+ | else { document.getElementById(d).style.display = "none"; } | ||
+ | } | ||
+ | //--></script> | ||
- | = | + | <p> |
- | '' | + | <a href="javascript:ReverseDisplay('hs7')"> Click here to show/hide</a> |
+ | </p> | ||
- | + | <div id="hs7" style="display:none;"> | |
+ | <p> | ||
+ | <b>This script was highly updated, please go to the <a href="https://2009.igem.org/Team:EPF-Lausanne/Scripts">script page</a> if you encounter a problem!!! | ||
- | + | <br>Selections are not precise here!</b> | |
- | + | <br><br> | |
+ | We made a small TCL script to calculate RMSD from selected atoms compared to their initial position along timestep. | ||
+ | The file can be found <a href="https://static.igem.org/mediawiki/2009/a/ad/Residue_rmsd_igem09.txt">here</a>. Please rename to Residue_rmsd_igem09<b>.tcl</b> after download. | ||
+ | <br><br> | ||
Example to run the script: | Example to run the script: | ||
- | :load ''.dcd'' + ''.psf'' on VMD | + | <br><span style="font-family: Courier;"> load ''.dcd'' + ''.psf'' on VMD |
- | + | <br> source residue_rmsd_igem09.tcl | |
- | + | <br> set sel_resid [[atomselect top "protein and alpha"] get resid] | |
- | + | <br> rmsd_residue_over_time top $sel_resid 0 0 </span> | |
- | + | <br><br> | |
We tried to select only backbone from protein + FMN → change | We tried to select only backbone from protein + FMN → change | ||
- | : | + | <br><span style="font-family: Courier;"> <i>set sel_resid [[atomselect top "backbone"] get resid] </i></span> |
- | + | <br><br> | |
- | + | <b>The script was updated to be able to define reference frame and first frame were RMSD will be calculated.</b> We usually don't need to compute RMSD during heating, for instance. RMSD takes a lot of time. In our first run 1 frame = 100 timesteps * 2 fs*timesteps^-1 = 200 fs | |
- | + | <br><br> | |
complete form for run is: | complete form for run is: | ||
- | : | + | <br><span style="font-family: Courier;"> <i>rmsd_residue_over_time top $sel_resid FIRST_FRAME REFERENCE_FRAME</i></span> |
- | + | <br><br> | |
For our first run, if we want to select only the 295°K NPT plateau, and set its first frame as reference, we have to launch: | For our first run, if we want to select only the 295°K NPT plateau, and set its first frame as reference, we have to launch: | ||
- | : | + | <br><span style="font-family: Courier;"> <i>rmsd_residue_over_time top $sel_resid 1115 1115</i></span> |
- | + | <br><br> | |
Here is how the script processes: | Here is how the script processes: | ||
- | + | <ul> | |
- | + | <li>calculate how many frames are in .dcd | |
- | + | <li>for each timestep, the script aligns (best fit) the backbone of the protein to the eference position to minimize RMDS. (Test: "and not mass 1,008000" == and noh was added in selection to remove hydrogen) | |
- | + | <li>for each residue (selected by sel_resid), RMSD is computed and the sum of all RMSD (one for each residue) is stored for current timestep | |
- | + | <li>script's output is data_rmsd.dat | |
+ | </ul> | ||
+ | <br><br> | ||
Here is a fast graph of the output of the average RMSD of the atoms in function of time. It seems normal. | Here is a fast graph of the output of the average RMSD of the atoms in function of time. It seems normal. | ||
- | + | <br><img src="https://static.igem.org/mediawiki/2009/b/bd/Rmsd.jpg"> | |
- | + | <br><br><br> | |
Here is what we got with FIRST_FRAME=1115 REFERENCE_FRAME=1115. Average=921.477, standard deviation=202.1708 | Here is what we got with FIRST_FRAME=1115 REFERENCE_FRAME=1115. Average=921.477, standard deviation=202.1708 | ||
- | + | <br><img src="https://static.igem.org/mediawiki/2009/2/2c/RMSD_plateau.jpg"> | |
- | + | <br><br><br> | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | FIRST_FRAME=0 REFERENCE_FRAME=0. The difference of the sum probably comes from the new selection of atoms from the backbone. <b>We should compute an average value to normalize amplitude</b>. (fluctuation is conserved, anyway) Average=781.3913, standard deviation=118.1393 | ||
+ | <br><img src="https://static.igem.org/mediawiki/2009/6/67/RMSD_COMPLETE_RUN.jpg"> | ||
<html> | <html> | ||
Line 611: | Line 614: | ||
</table> | </table> | ||
</form></center> | </form></center> | ||
+ | |||
+ | </p> | ||
+ | </div> | ||
</html> | </html> | ||
- | + | <br> | |
==Salt bridges== | ==Salt bridges== | ||
- | + | <html> | |
+ | <script type="text/javascript" language="JavaScript"><!-- | ||
+ | function HideContent(d) { | ||
+ | document.getElementById(d).style.display = "none"; | ||
+ | } | ||
+ | function ShowContent(d) { | ||
+ | document.getElementById(d).style.display = "block"; | ||
+ | } | ||
+ | function ReverseDisplay(d) { | ||
+ | if(document.getElementById(d).style.display == "none") { document.getElementById(d).style.display = "block"; } | ||
+ | else { document.getElementById(d).style.display = "none"; } | ||
+ | } | ||
+ | //--></script> | ||
- | + | <p> | |
- | + | <a href="javascript:ReverseDisplay('hs8')"> Click here to show/hide</a> | |
- | + | </p> | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | :'' | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | <div id="hs8" style="display:none;"> | ||
+ | <p> | ||
+ | As we wanted to redo the analysis from Schulten's article, we looked for salt bridges. VMD can easily compute this, it even propose an easy GUI. Standard configuration is just fine for now. You'll have a log file containing the list of nitrogen-oxygen susceptible of forming a salt bridge. You'll also get a file for each bridge containing the distance between both atoms along the simulation. | ||
+ | <br><br> | ||
+ | In the light state, we have 9 salt bridges witin the protein and 12 if we consider the protein and the flavin (use "protein or resname FMN" as selection). | ||
+ | <br> | ||
+ | <br><span style="font-family: Courier;"> ASP471-ARG467 | ||
+ | <br> GLU409-ARG442 | ||
+ | <br> FMN450-FMN450 | ||
+ | <br> ASP540-LYS544 | ||
+ | <br> ASP432-ARG442 | ||
+ | <br> <b>FMN450-ARG451</b> | ||
+ | <br> GLU457-LYS489 | ||
+ | <br> GLU444-LYS485 | ||
+ | <br> ASP522-ARG521 | ||
+ | <br> ASP424-ARG451 | ||
+ | <br> GLU475-LYS533 | ||
+ | <br> <b>FMN450-ARG467</b></span> | ||
+ | <br><br> | ||
Here is a plot for one of the bridges. We have to look for the max distance for a salt bridge. | Here is a plot for one of the bridges. We have to look for the max distance for a salt bridge. | ||
- | + | <img src="https://static.igem.org/mediawiki/2009/2/2a/Salt_bridge.jpg"> | |
- | + | ||
<html> | <html> | ||
<p align="center" class="style1"><a href="#top"><img src="https://static.igem.org/mediawiki/2009/thumb/0/06/Up_arrow.png/50px-Up_arrow.png" alt="Back to top" border="0"></a><br></p> | <p align="center" class="style1"><a href="#top"><img src="https://static.igem.org/mediawiki/2009/thumb/0/06/Up_arrow.png/50px-Up_arrow.png" alt="Back to top" border="0"></a><br></p> | ||
</html> | </html> | ||
- | |||
- | |||
<html><center> | <html><center> | ||
Line 673: | Line 696: | ||
</table> | </table> | ||
</form></center> | </form></center> | ||
+ | |||
+ | </p> | ||
+ | </div> | ||
</html> | </html> | ||
+ | <br> | ||
+ | ==RMSF== | ||
+ | <html> | ||
+ | <script type="text/javascript" language="JavaScript"><!-- | ||
+ | function HideContent(d) { | ||
+ | document.getElementById(d).style.display = "none"; | ||
+ | } | ||
+ | function ShowContent(d) { | ||
+ | document.getElementById(d).style.display = "block"; | ||
+ | } | ||
+ | function ReverseDisplay(d) { | ||
+ | if(document.getElementById(d).style.display == "none") { document.getElementById(d).style.display = "block"; } | ||
+ | else { document.getElementById(d).style.display = "none"; } | ||
+ | } | ||
+ | //--></script> | ||
+ | <p> | ||
+ | <a href="javascript:ReverseDisplay('hs9')"> Click here to show/hide</a> | ||
+ | </p> | ||
- | == | + | <div id="hs9" style="display:none;"> |
- | + | <p> | |
- | + | ||
- | + | ||
- | + | ||
+ | After changing the script [see <a href="https://2009.igem.org/Team:EPF-Lausanne/Scripts#RMSF_from_namd_.dcd"> here</a>], we perform an interesting analysis from these 2 files. First, we have to correct the RMSF, that can be linked to beta factor using this equation: | ||
+ | <br><center><img src="https://static.igem.org/mediawiki/2009/4/4c/Beta_rmsf.jpg"></center> | ||
+ | <br>If you plot beta factor and RMSF, you get such a thing. | ||
+ | <img src="https://static.igem.org/mediawiki/2009/7/71/2v02_1ns_rmsf.jpg"> | ||
+ | <br><br> | ||
This is a 1 nanosecond NPT run at 300°K. We hope to see a RMSF curve identical to the beta factor. It should only be shifted higher because of the increased temperature. But having a similar tendency would mean our simulation show oscillations similar to what was observed during crystallography. This is really a quite nice validation of our run! | This is a 1 nanosecond NPT run at 300°K. We hope to see a RMSF curve identical to the beta factor. It should only be shifted higher because of the increased temperature. But having a similar tendency would mean our simulation show oscillations similar to what was observed during crystallography. This is really a quite nice validation of our run! | ||
- | |||
- | |||
<p align="center" class="style1"><a href="#top"><img src="https://static.igem.org/mediawiki/2009/thumb/0/06/Up_arrow.png/50px-Up_arrow.png" alt="Back to top" border="0"></a><br></p> | <p align="center" class="style1"><a href="#top"><img src="https://static.igem.org/mediawiki/2009/thumb/0/06/Up_arrow.png/50px-Up_arrow.png" alt="Back to top" border="0"></a><br></p> | ||
- | |||
<br> | <br> | ||
+ | |||
+ | </p> | ||
+ | </div> | ||
+ | </html> | ||
Latest revision as of 09:21, 21 September 2009
Contents |
Scripts
As this page is getting crowded, we created another page to explain all the scripts we wrote. The current page has some kind of step by step tutorials, but if you want fast informations, you better go to the script page.
Tutorials
Maxwell-Boltzmann Energy Distribution
Energies
Temperature distribution
Density
Pressure as a function of simulation time
RMSD for individual residues
RMSD of selected atoms compared to initial position along time
Salt bridges
RMSF