11-rmsd-equilibration.sh 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #!/usr/bin/env bash
  2. export VMDNOCUDA=1
  3. #export VMDNOOPTIX=1
  4. export VMDNOOSPRAY=1
  5. . functions.sh
  6. #######################################################################################
  7. ## ADJUSTABLE PARAMETERS ##
  8. #######################################################################################
  9. # set atom selection for alignment
  10. align_sel=${1?"chain A and name CA and resid 81 to 103 118 to 138 195 to 215 221 to 241 308 to 328 331 to 350 860 to 88 912 to 932 991 to 1011 1014 to 1034 1103 to 1123 1129 to 1149"}
  11. # set atom selection for rmsd calculation
  12. rmsd_sel=${2?"chain A and name CA and resid 81 to 103 118 to 138 195 to 215 221 to 241 308 to 328 331 to 350 860 to 88 912 to 932 991 to 1011 1014 to 1034 1103 to 1123 1129 to 1149"}
  13. #######################################################################################
  14. ## SET VARS ##
  15. #######################################################################################
  16. # set folder name for output files
  17. set_and_make_out_dir
  18. # Get array of concatenated, indvidual jobs
  19. get_jobs_individual
  20. #######################################################################################
  21. ## CALCULATE RMSD ##
  22. #######################################################################################
  23. function calc_rmsd() {
  24. for _job in ${_jobs_individual}; do
  25. get_system_and_date ${_job}
  26. psf=$(ls ${_job}/*.psf)
  27. dcd=$(ls ${_job}/*.dcd)
  28. # load trajectory
  29. echo "mol new ${psf}" > temp.tcl
  30. echo "mol addfile ${dcd} waitfor all" >> temp.tcl
  31. # ALIGN
  32. echo "set align_ref [atomselect top \""${align_sel}"\" frame 0]" >> temp.tcl
  33. echo "set align_sel [atomselect top \""${align_sel}"\"]" >> temp.tcl
  34. echo "set rmsd_ref [atomselect top \""${rmsd_sel}"\" frame 0]" >> temp.tcl
  35. echo "set rmsd_sel [atomselect top \""${rmsd_sel}"\"]" >> temp.tcl
  36. echo 'set all [atomselect top "all"]' >> temp.tcl
  37. echo 'set n [molinfo top get numframes]' >> temp.tcl
  38. echo "set fp [open "${out_dir}/${_system}-${_date}.csv" w]" >> temp.tcl
  39. echo 'for { set i 1 } { $i < $n } { incr i } {' >> temp.tcl
  40. echo ' $align_sel frame $i' >> temp.tcl
  41. echo ' $rmsd_sel frame $i' >> temp.tcl
  42. echo ' $all frame $i' >> temp.tcl
  43. echo ' $all move [measure fit $align_sel $align_ref]' >> temp.tcl
  44. # CALC RMSD
  45. echo ' puts $fp "$i [measure rmsd $rmsd_sel $rmsd_ref]"' >> temp.tcl
  46. echo '}' >> temp.tcl
  47. echo 'close $fp' >> temp.tcl
  48. echo 'exit' >> temp.tcl
  49. vmd -dispdev text -eofexit < "temp.tcl"
  50. sync
  51. rm "temp.tcl"
  52. plot_rmsd ${_system} "${out_dir}/${_system}-${_date}"
  53. done
  54. }
  55. function plot_rmsd() {
  56. gnuplot -persist <<-GNUPLOT_INPUT
  57. set terminal pngcairo enhanced size 1200,1200 font "arial,24" linewidth 2
  58. set output "${2}.png"
  59. set autoscale
  60. #set title "Backbone RMSD" font "arial,40"
  61. #set xlabel "Time (ns)" font "arial,32"
  62. #set ylabel "RMSD (Å)" font "arial,32"
  63. set border 1+2
  64. #set xtics nomirror
  65. set ytics nomirror 1
  66. set grid
  67. set grid noxtics
  68. set key box off
  69. #set yrange [0:4]
  70. #set xrange [0:120]
  71. #set format y "%+-2.f"
  72. set style data lines
  73. set xzeroaxis ls 8
  74. # linetypes
  75. #set style line 1 pi 0 lw 1 ps 1 pt 0 lc rgb '#000000'
  76. plot "${2}.csv" using (\$1 / 50):(\$2 + 1) with linespoints ls 8 pi 0 pt 0
  77. exit
  78. GNUPLOT_INPUT
  79. }
  80. calc_rmsd