123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #!/usr/bin/env bash
- export VMDNOCUDA=1
- #export VMDNOOPTIX=1
- export VMDNOOSPRAY=1
- . functions.sh
- #######################################################################################
- ## ADJUSTABLE PARAMETERS ##
- #######################################################################################
- # set atom selection for alignment
- 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"}
- # set atom selection for rmsd calculation
- 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"}
- #######################################################################################
- ## SET VARS ##
- #######################################################################################
- # set folder name for output files
- set_and_make_out_dir
- # Get array of concatenated, indvidual jobs
- get_jobs_individual
- #######################################################################################
- ## CALCULATE RMSD ##
- #######################################################################################
- function calc_rmsd() {
- for _job in ${_jobs_individual}; do
-
- get_system_and_date ${_job}
- psf=$(ls ${_job}/*.psf)
- dcd=$(ls ${_job}/*.dcd)
-
- # load trajectory
- echo "mol new ${psf}" > temp.tcl
- echo "mol addfile ${dcd} waitfor all" >> temp.tcl
-
- # ALIGN
- echo "set align_ref [atomselect top \""${align_sel}"\" frame 0]" >> temp.tcl
- echo "set align_sel [atomselect top \""${align_sel}"\"]" >> temp.tcl
- echo "set rmsd_ref [atomselect top \""${rmsd_sel}"\" frame 0]" >> temp.tcl
- echo "set rmsd_sel [atomselect top \""${rmsd_sel}"\"]" >> temp.tcl
- echo 'set all [atomselect top "all"]' >> temp.tcl
- echo 'set n [molinfo top get numframes]' >> temp.tcl
- echo "set fp [open "${out_dir}/${_system}-${_date}.csv" w]" >> temp.tcl
- echo 'for { set i 1 } { $i < $n } { incr i } {' >> temp.tcl
- echo ' $align_sel frame $i' >> temp.tcl
- echo ' $rmsd_sel frame $i' >> temp.tcl
- echo ' $all frame $i' >> temp.tcl
- echo ' $all move [measure fit $align_sel $align_ref]' >> temp.tcl
- # CALC RMSD
- echo ' puts $fp "$i [measure rmsd $rmsd_sel $rmsd_ref]"' >> temp.tcl
- echo '}' >> temp.tcl
- echo 'close $fp' >> temp.tcl
- echo 'exit' >> temp.tcl
-
- vmd -dispdev text -eofexit < "temp.tcl"
- sync
- rm "temp.tcl"
-
- plot_rmsd ${_system} "${out_dir}/${_system}-${_date}"
-
- done
-
- }
- function plot_rmsd() {
- gnuplot -persist <<-GNUPLOT_INPUT
- set terminal pngcairo enhanced size 1200,1200 font "arial,24" linewidth 2
- set output "${2}.png"
- set autoscale
- #set title "Backbone RMSD" font "arial,40"
- #set xlabel "Time (ns)" font "arial,32"
- #set ylabel "RMSD (Å)" font "arial,32"
- set border 1+2
- #set xtics nomirror
- set ytics nomirror 1
- set grid
- set grid noxtics
- set key box off
- #set yrange [0:4]
- #set xrange [0:120]
- #set format y "%+-2.f"
- set style data lines
- set xzeroaxis ls 8
-
- # linetypes
- #set style line 1 pi 0 lw 1 ps 1 pt 0 lc rgb '#000000'
- plot "${2}.csv" using (\$1 / 50):(\$2 + 1) with linespoints ls 8 pi 0 pt 0
-
- exit
- GNUPLOT_INPUT
- }
-
- calc_rmsd
|