Create a new nucleotide

Create a new AMBER-compatible nucleotide to perform MD simulations.

In this recipe, we will use CPPTRAJ (and several other programs) to create a new nucleotide that is compatible with AMBER to run Molecular Dynamics simulations. Please notice that there are multiple ways, programs and methods to generate a new residue, the purpose of this recipe is to show how to integrate CPPTRAJ functionalilty.

We will use as an example a thymine derivate on which the pentofuranose ring of DNA is replaced with a seven-membered (oxepane) sugar ring (see the work of Damha and collaborators for an example). We are going to build the structure and required parameters to create our new residue (example name: O37) that will have a 3′-7′ linkage (instead of the 5′-7′ linkage from the Damha article) within a DNA chain.

3-7-oxepane-thymine

As a starting point, we will use the deoxythymine molecule as generated directly from LEaP, this helps to retain the same atom names of the base. In tleap, run:

user@computer$ tleap
source leaprc.DNA.OL21
savepdb DT DT.pdb
quit

We have now our DT.pdb file that we can use as a starting point to create our oxepane analog. Using a molecular graphics software, we alter the 5-member ring into our 7-member ring:

In the left is the DT.pdb file we created from LEaP and in the right (blue) is the modified ‘O37′ residue – we are going to name this file o37-for-charges.pdb. In order to calculate the charges we need to add capping groups in our new residue. Notice the methyl capping group in the 3’-cargon and the oxy-methyl capping group in the phosphate group. To calculate the charges we are going to use antechamber (from AmberTools) to generate an input file for Gaussian:

antechamber -i o37-for-charges.pdb -fi pdb -o o37-charges.com -fo gcrt -nc -1

Notice the -nc flag set to -1 to indicate the overall charge of the residue. This will generate an input file for Gaussian with the correct internal option keywords (iop) to calculate the charges for our new residue. When this calculation is done, we will have a o37-charges.log file. We now can use this file to refit the charges following the RESP methodology using antechamber again:

antechamber -i o37-charges.log -fi gout -o o37-with-charges.mol2 -fo mol2 -rn O36 -at AMBER -c resp

This will read the charges from the Gaussian output, fit the charges using the RESP methodology, rename the residue to O37, assign atom types using AMBER atom types and generate a o37-with-charges.mol2 file. Because Gaussian does not use atom types, we have lost the atom names from our original template (o37-for-charges.pdb). We can use CPPTRAJ to map the names of the atoms that we have in the o37-for-charges.pdb file to our new o37-with-charges.mol2 file. For that, we use the atommap keyword and the following CPPTRAJ script:

parm o37-with-charges.mol2
reference o37-with-charges.mol2
parm o37-for-charges.pdb
reference o37-for-charges.pdb parmindex 1
atommap o37-with-charges.mol2 o37-for-charges.pdb mapout atommap.dat changenames
trajin o37-with-charges.mol2
trajout o37-with-charges-reordered.mol2 mol2

This new file: o37-with-charges-reordered.mol2 now has the charges, atom types and the atom names from our original starting structure. We now need to remove the capping groups marked in yellow:

 

The atom names for the cap at the phosphate are @O43,C20,1H20,2H20,3H20 and the atom names for the cap in the C3′ position are @C17,1H17,2H17,3H17.  We can use CPPTRAJ strip command to remove the capping groups and to refit the charge to the integer value of -1:

parm o37-with-charges-reordered.mol2 name sugar
trajin o37-with-charges-reordered.mol2 parm sugar
strip @O43,C20,1H20,2H20,3H20
strip @C17,1H17,2H17,3H17 charge -1.0
trajout o37-fragment.mol2 mol2
run

This will generate a new file called o37-fragment.mol2 without the capping groups, a total charge of -1 and AMBER atom names. We can now generate a library file that we can use to create AMBER topology and coordinate files.  With this tleap script we load the o37-fragment.mol2, assing head and tail atoms and generate a library file:

source leaprc.DNA.OL21
O37 = loadmol2 o37-fragment.mol2
set O37 restype nucleic
set O37 name O37
set O37 head O37.1.P
set O37 tail O37.1.O17
saveoff O37 O37.lib
quit

This script can be saved in a text file (for example – generate-lib.tleap) and run in this manner:
tleap -s -f generate-lib.tleap

The script will load the o37-fragment.mol2 file, set the residue type to nucleic, the name of the residue to O37, the head of the residue to the atom P and the tail to the atom O17. Finally it will create an AMBER library file with the name O37.lib. This library file can now be used in a simulation – for example – we can use the crystal structure of the DNA dodecamer (sequence CCGCGAATTCGCG) and insert our new residue.  First we download the 1bna.pdb file from the PDB. To clean the PDB, we can use the prepareforleap command using the following CPPTRAJ script:

parm 1bna.pdb
loadcrd 1bna.pdb name edited
prepareforleap crdset edited name from-prepareforleap \
   out from-prepareforleap-tleap.in leapunitname x \
   pdbout from-prepareforleap.pdb nowat noh
go

A way to change one residue to another, when some of the atom names are similar, is to change the residue name directly into the PDB file, delete the atoms that are not involved in the new residue and let LEaP to fill the missing atoms. To do this for this example, we open the DNA file from-prepareforleap.pdb created with the previous CPPTRAJ command in a text editor and change deoxythymine #7 from DT to O37 (which is the name of our new residue in the library file) – the original file is:

We substitue DT for O37 (delete the line with the O3′ atom, since in our example it has another name. This will be fixed by LEaP):

With this PDB file, we can now use LEaP to add water molecules, counter ions, and generate the AMBER topology and coordinates:

######################################
source leaprc.DNA.OL21
source leaprc.water.opc
loadoff O37.lib
######################################
x = loadpdb from-prepareforleap.pdb
solvateoct x OPCBOX 10.0
addions x MG 8
addions x Na+ 0
addions x Cl- 0
## Extra ions
addions x Na+ 40
addions x Cl- 40
saveamberparm x complex.parm7 complex.coords
quit

An example simulation is presented below: