/gmx

Bash scripts for GROMACS

Primary LanguageShell

bash scripts for GROMACS

job script for a single gmx simulation: qsub0.sh

#!/bin/bash
#SBATCH -N 1
#SBATCH -C knl
#SBATCH -q debug
#SBATCH -t 00:30:00
#SBATCH -J fK_NPD

#OpenMP settings:
export OMP_NUM_THREADS=64
export OMP_PLACES=threads
export OMP_PROC_BIND=spread

module load gromacs/2018.4.knl
cd 100
gmx_sp grompp -f pull.mdp -c conf.gro -p topol.top -o pull1.tpr
srun -n 1 -c 64 mdrun_mpi_sp -s pull1.tpr -o pull1.trr -c pull1.gro -g md1.log -pf pullf1.xvg -px pullx1.xvg
cd ..

download

loop multiple jobs in one submission: qsub1.sh

#!/bin/bash
#SBATCH -N 1
#SBATCH -C knl
#SBATCH -q regular
#SBATCH -t 6:00:00
#SBATCH -J KNPD-150K1

#OpenMP settings:
export OMP_NUM_THREADS=64
export OMP_PLACES=threads
export OMP_PROC_BIND=spread

module load gromacs/2018.4.knl
for i in {101..357..5}
do
cd $i/
gmx_sp grompp -f pull.mdp -c conf.gro -p topol.top -o pull1.tpr
srun -n 1 -c 64 mdrun_mpi_sp -s pull1.tpr -o pull1.trr -c pull1.gro -g md1.log -pf pullf1.xvg -px pullx1.xvg
cd ..
done

download

edit qsub$i.sh file in one batch: edit.sh

#!/bin/bash
for i in {1..5}
do
sed -i 's/150K/200K/g' qsub$i.sh
sed -i 's/regular/premium/g' qsub$i.sh
done

download

copy output e.g. pull1.tpr and pullf1.xvg to current directory and rename for WHAM: cpdata.sh

#!/bin/bash
for i in {0..357}
do
cp ../$i/pullf1.xvg $i.xvg
cp ../$i/pull1.tpr $i.tpr
done

download

generate the corresponding tpr.dat and xvg.dat files for WHAM based on the non-empty pullx.xvg: dat.sh

#!/bin/bash
for i in {100..340}
do
if [ -s $i.xvg ]
then
echo $i.xvg >> xvg.dat
echo $i.tpr >> tpr.dat
fi
done

download

job script for WHAM on KNL at NERSC: wham.sh

#!/bin/bash
#SBATCH -N 1
#SBATCH -C knl
#SBATCH -S 4
#SBATCH -q debug
#SBATCH -t 00:10:00
#SBATCH -J wham

#OpenMP settings:
export OMP_NUM_THREADS=64
export OMP_PLACES=threads
export OMP_PROC_BIND=spread

module load gromacs/2018.4.knl
gmx_sp wham -it tpr.dat -if xvg.dat -o -hist -unit kJ -nBootstrap 10 -bs-method b-hist -bsres

download

Tips:

To translate the trajactory coordinates, one easy way is to use gmx command trjconv.
-trans <vector> All coordinates will be translated by trans. This can advantageously be combined with -pbc mol -ur compact.
-pbc atom will puts all the atoms in the box.
e.g. gmx_sp trjconv -f pull1.trr -s pull1.tpr -o traj1.gro -pbc atom -trans 0 0 1