CHARMM

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

submit_charmm_serial.sh
#!/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

submit_charmm_mpi.sh
#!/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

submit_charmm_gpu.sh
#!/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

md.inp
* 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

submit_charmm_array.sh
#!/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

See also