Tutorial: Using custom CHARMM parameters with Desmond in Schrödinger Suite 2013-2
by Dmitry Lupyan (Updated on 10/9/2013)
Generating CHARMM Ibuprofen parameters with SwissParam
Converting Ibuprofen viparr template
Preparing the Protein-Ligand complex for simulation
Solvating and neutralizing the protein-ligand complex
Assigning CHARMM force fields to the molecular system
Running an MD simulation with Desmond
The Desmond MD package includes the latest CHARMM force fields for proteins, DNA and RNA, lipids, and sugars, which can be readily used for molecular dynamics simulations. Often one would like to run an MD simulation with custom ligand parameters that are not part of the standard CHARMM-family parameter set. This tutorial covers the basics on how to convert CHARMM parameters to a viparr template. After the template is prepared, we will use it to assign CHARMM parameters, with viparr, to a molecular system for MD simulation.
Make sure you have the $SCHRODINGER variable set to your Schrodinger software installation.
The converter tool described in this document is not supported by either Schrödinger Inc. or D.E. Shaw Research. For help please consult other Desmond users via Google Desmond Group.
⚛All the input files needed to follow this tutorial can be downloaded from Google Drive.
The link contains the following files:
Filename | Description |
ibp.mol2 | Input structure for upload to SwissParam server |
ibp.zip | Output archive of Ibuprofen parameters from SwissParam server |
ibp_new.rtf | Modified topology file |
ibp_new.par | Modified parameter file |
IBP_viparr_templ.tgz | Viparr template of IBP generated from SwissParam files |
3p6h.pdb | PDB file containing a protein in complex with IBP |
desmond_setup.mae | Prepared protein-ligand structure in Maestro format |
desmond_setup-out.cms | Solvated and neutralized molecular system with OPLS_2005 parameters |
charmm-out.cms | Molecular system with CHARMM and custom IBP parameters |
charmm-start.cms | Molecular system with constraints set on the hydrogen atoms |
To simulate a molecule that is not covered by the standard CHARMM parameter set, we first need to obtain a topology and parameter file for that molecule. The source of the parameters can be one of the following:
Any of the above methods can be used to generate CHARMM-compatible parameters for the viparr converter tool.
Note: to ensure that the parameters you intend to use are the ones that are being assigned, it is best if the topology and parameter files are self-contained and do not depend on other parameter files.
For the sake of simplicity and reproducibility we will use the SwissParam server to generate topology and parameter files for this tutorial. Please refer to the original SwissParam documentation for more details on parameterization methods.
Figure 1. A 2d schematic of Ibuprofen. Source: RCSB.org |
Suppose we would like to run a simulation of a protein in complex with an Ibuprofen (IBP) ligand, Figure 1. The standard CHARMM parameter set lacks parameters for Ibuprofen. To generate CHARMM parameters for IBP, we first need its structure. The ligand structure can be obtained or generated by:
Note: When converting from 2D to 3D structures, please check you have the correct chirality.
SwissParam accepts only mol2 file format as an input, so after you have IBP 3D structure loaded in Maestro, with proper bond orders and all hydrogens, export it as ibp.mol2.
Upload the ibp.mol2 file to the SwissParam website. The SwissParam server prepares a ibp.zip file, which is ready to download after a short time. Follow the instructions on the site to download the file. The zip archive contains two files that we need; please extract them for further use.
Now that we have a custom parameter and topology file for IBP, we can convert it to a viparr-formatted template. To do so, we will run the converter script in the terminal:
%> $SCHRODINGER/run -FROM desmond ff_charmm_to_viparr.py -p ibp.par -t ibp.rtf IBP Couldnt convert element (Cr), in MASS statement: ['MASS', '202', 'CR', '12.011000'] %> |
The error is encountered because the converter script interprets the atom type ‘CR’ as chromium (chemical symbol ‘Cr’) and atom type ‘CO2M’ is believed to be cobalt (chemical symbol ‘Co’). To correct this, we need to change the atom types of both CO2M and CR to an atom type that is interpreted correctly by the viparr conversion tool.
Note: A safe name would include a number character in the second position of the atom type. Also we have to make sure that the new atom type is not already used in the standard CHARMM parameter set.
So make the following change: ‘CR’→‘C2R’ and ‘CO2M’→‘C2OM’ by either editing the ibp.par and ibp.rtf files manually with a text editor, or running the following two SED command in the terminal.
%> cat ibp.par | sed 's/CR /C2R /g' | sed 's/CO2M/C2OM/g' > ibp_new.par %> cat ibp.rtf | sed 's/CR /C2R /g' | sed 's/CO2M/C2OM/g' > ibp_new.rtf %> |
Running the two commands creates two new files: ibp_new.par and ibp_new.rtf with the atom types changed as described.
Note: Please manually inspect the new files to ensure that unintended substitutions were not made.
Now rerun the above command with the updated parameter and topology files as an input.
%> $SCHRODINGER/run -FROM desmond ff_charmm_to_viparr.py -p ibp_new.par -t ibp_new.rtf IBP No CMAP terms found %> |
The converter script now generates the IBP directory which contains the viparr-formatted CHARMM template for Ibuprofen. During the generation of the original parameter files, the SwissParam server changed the ligand’s residue name to ‘LIG.’ This is OK since viparr uses structure matching to assign force fields parameters, so the residue name is unimportant.
In this section we will prepare a protein in complex with IBP for MD simulations with CHARMM force fields. To do this, we will first build the system with Maestro and Desmond tools. The default force field used by Schrödinger Inc. is OPLS_2005, so we will later reassign CHARMM parameters to the system.
To use the IBP viparr template we generated in the previous section, we will use a PDB entry of a protein that is already complexed with IBP. We will use PDB ID: 3p6h in this section. To do open Maestro and:
Note: This window just alerts you that there are missing atoms on the terminal residues, which is not problematic since we’re capping these residues anyway. Also this window alerts you of overlapping atoms and alternative residue positions for some residues in the PDB file. All of these are just warnings and can be ignored for this system.
Completing these steps produces a Protein-Ligand complex in the Workspace where the partial and formal charges, protonation states, bond orders of protein residues and ligand groups have been determined and assigned. Hydrogens are also added to the protein, the ligand and the crystallographic water molecules.
Now that we have a protein-ligand complex loaded in the Workspace, we can solvate and neutralize the complex. To do this in Maestro:
After a short wait, the solvated system is displayed in the Workspace. This system is solvated with SPC waters, and neutralized with counterions. The completed system is also written out to the file desmond_setup-out.cms, which contains the coordinates and the OPLS_2005 parameters of the system.
The CMS file generated in the previous step is ready to run Desmond, but OPLS_2005 force fields have been used. In order to use CHARMM parameters, we need to reassign force fields to CHARMM.
The viparr utility comes prepackaged with standard sets of protein parameters. In an earlier step we generated a viparr template for the IBP ligand with CHARMM parameters (which should be in the IBP directory), so we have all the ingredients to reassign force fields in our system. To do this, run the following command in a Linux terminal.
%> $SCHRODINGER/run -FROM desmond viparr.py -f charmm27 -f tip3p_charmm -d IBP desmond_setup-out.cms charmm-out.cms viparr 1.5.1 All FF directories, in order: $SCHRODINGER/desmond-v3.4/data/viparr/ff/charmm27 $SCHRODINGER/desmond-v3.4/data/viparr/ff/tip3p_charmm IBP Plug-in directory: $SCHRODINGER/desmond-v3.4/bin/Linux-x86_64/viparr1/plugins Reading maestro file <desmond_setup-out.cms> ... Done reading maestro file Skipping full_system structure <1> Analyzing ct block 2 Warning: Missing backward edges...adding them now Analyzing ct block 3 Warning: Missing backward edges...adding them now ******Constructing residue list for <charmm27> Structure 2 ******Constructing residue list for <charmm27> Structure 3 ******Constructing residue list for <tip3p_charmm> Structure 2 ******Constructing residue list for <tip3p_charmm> Structure 3 ******Constructing residue list for <IBP> Structure 2 ******Constructing residue list for <IBP> Structure 3 Note: Struct 2, Res <"A_INS_ ",-7> (GLN) matched (ALA) Note: Struct 2, Res <"A_INS_ ",-6> (GLN) matched (ALA) Note: Struct 2, Res <"A_INS_ ",93> (HID) matched (HIS) Note: Struct 2, Res <"A_INS_ ",133> (IBP) matched (LIG) Note: Struct 3, Res <" ",1> (SPC) matched (TIP3) Note: Struct 3, Res <" ",2> (SPC) matched (TIP3) Note: Struct 3, Res <" ",3> (SPC) matched (TIP3) Note: Struct 3, Res <" ",4> (SPC) matched (TIP3) Note: Struct 3, Res <" ",5> (SPC) matched (TIP3) Ignoring further messages for (SPC) matching (TIP3) ******Main loop: Structure 2 Pre-processing force field <charmm27> for rules and pseudos Pre-processing force field <tip3p_charmm> for rules and pseudos Pre-processing force field <IBP> for rules and pseudos Processing force field <charmm27> Processing force field <tip3p_charmm> Processing force field <IBP> Building mae data structure... Number of pseudo particles: 0 ******Main loop: Structure 3 Pre-processing force field <charmm27> for rules and pseudos Pre-processing force field <tip3p_charmm> for rules and pseudos Pre-processing force field <IBP> for rules and pseudos Processing force field <charmm27> Processing force field <tip3p_charmm> Compressing FF representation... Processing force field <IBP> Building mae data structure... Number of pseudo particles: 0 Writing maestro file <charmm-out.cms> %> |
This command assigned CHARMM27 parameters to the protein, ions, and waters (tip3p). We also assigned our custom IBP parameters to the Ibuprofen ligand by specifying the -d IBP flag. The output charmm-out.cms file contains the system’s structural and CHARMM force field information.
Note: If your custom parameters depend on the predefined parameters set, instead of “-d IBP” flag you should use a merge flag “-m IBP”. This is often the case with CGenFF, where parameters in the prm file are incomplete and depend on other parameters included in the generalized CGenFF set. In this case your viparr command should also include ‘-f cgenff_base_v2b7’.
Now that the system force field parameters have been assigned in the charmm-out.cms file, we need to add hydrogen constraints. To do this, run the following command:
%> $SCHRODINGER/run -FROM desmond build_constraints.py charmm-out.cms charmm-start.cms Reading maeff file charmm-out.cms Finding constraint terms... Examining 2216 bonds in ffio_bonds section... Found 703 hydrogen groups. Generating 198 unique AH2 constraint groups. Generating 105 unique AH3 constraint groups. Generating 400 unique AH1 constraint groups. Will constrain 1111 unique bonds, 0 unique angles. Examining 2 bonds in ffio_bonds section... Found 1 hydrogen groups. Generating 1 unique HOH constraint groups. Will constrain 2 unique bonds, 1 unique angles. --------------------- | Total: | | | | 198 AH2 groups | | 105 AH3 groups | | 400 AH1 groups | | 6556 HOH groups | --------------------- Writing maeff file charmm-start.cms %> |
The resulting file, charmm-start.cms is now ready for use in a Desmond simulation.
Now that the system is prepared with CHARMM parameters, Desmond can minimize, equilibrate and run an MD simulation of the system. In Maestro, do the following:
Note: To test the described method and parameters, we ran a 10 ns simulation, please see the Simulation Interactions Diagram (SID, available in 2013-2 Schrodinger suite release) PDF report here.
For further information please consult the Desmond User Manual.
Great thanks to Vincent Zoete and Olivier Michielin, from Swiss Institute of Bioinformatics and coauthors of SwissParam utilities.