CHARMM
In this section:
Description
According to the CHARMM page, CHARMM (Chemistry at HARvard Macromolecular Mechanics) is a molecular simulation program with broad application to many-particle systems, with comprehensive energy functions, advanced sampling methods, and support for multi-scale techniques including QM/MM, MM/CG, and implicit solvent models.
Available Versions
charmm/c26b2 (free version for academic use)
charmm/c26b2-serial (free serial version)
charmm/c37b2 (default)
charmm/c37b2-serial
Note
The c26b2 versions are free for academic use without a license.
Serial Job Submission
#!/bin/bash
#SBATCH -J charmm_serial
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 03:00:00
#SBATCH --mem=4G
export INPUT="md-analysis.inp"
export OUTPUT="*.out *.log"
module load charmm/c37b2-serial
job-nanny charmm < md-analysis.inp
Parallel Job Submission
#!/bin/bash
#SBATCH -J charmm_mpi
#SBATCH -N 2
#SBATCH --ntasks-per-node=28
#SBATCH -t 48:00:00
#SBATCH --mem-per-cpu=2G
export INPUT="md.inp"
export OUTPUT="*.out *.log *.dcd"
module load charmm/c37b2
job-nanny srun -n $SLURM_NTASKS charmm < md.inp
GPU Job Submission
#!/bin/bash
#SBATCH -J charmm_gpu
#SBATCH -p gpu
#SBATCH --gres=gpu:1
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 24:00:00
#SBATCH --mem=32G
export INPUT="md_gpu.inp"
export OUTPUT="*.out *.log *.dcd"
module load charmm/c37b2
job-nanny charmm -gpu md_gpu.inp
Example Input File
* Minimization and Molecular Dynamics
*
! Read topology and parameters
open read card unit 10 name top_all36_prot.rtf
read rtf card unit 10
close unit 10
open read card unit 10 name par_all36_prot.prm
read para card unit 10
close unit 10
! Read coordinates
open read card unit 10 name protein.crd
read coor card unit 10
close unit 10
! Define system
update cutnb 14.0 ctofnb 12.0 ctonnb 10.0
! Minimization
mini sd nstep 1000
! Molecular dynamics
dynamics leap verlet start timestep 0.002 nstep 50000 -
iunread -1 iunwrite -1 iuncrd 20 -
nsavc 500 nsavv 0 nprint 100 -
firstt 300.0 finalt 300.0 teminc 0.0 -
ichecw 0 twindl -5.0 twindh +5.0 -
iasors 0 iasvel 1 iscvel 0 ichecw 0 -
echeck -1
stop
Job Array for Multiple Simulations
#!/bin/bash
#SBATCH -J charmm_array
#SBATCH --array=1-10
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 24:00:00
#SBATCH --mem=8G
export INPUT="template.inp"
export OUTPUT="run_${SLURM_ARRAY_TASK_ID}/"
module load charmm/c37b2-serial
# Create directory for this run
mkdir -p run_${SLURM_ARRAY_TASK_ID}
cd run_${SLURM_ARRAY_TASK_ID}
# Modify parameters in input file
sed "s/TEMPERATURE/$((300 + SLURM_ARRAY_TASK_ID))/g" ../template.inp > md.inp
job-nanny charmm < md.inp
References
CHARMM documentation: https://www.charmm.org/documentation.html
Tutorials: https://www.charmm.org/tutorial.html
See also
NAMD - Alternative for molecular dynamics
GROMACS - Alternative for molecular dynamics
Running Simulations - How to submit jobs