----- Original Message -----<br>From: Alan &lt;alanwilter@gmail.com&gt;<br>Date: Tuesday, August 17, 2010 21:24<br>Subject: [gmx-users] dihedraltypes funct 4 and 9 in gmx 4.5 amber ff<br>To: Gromacs &lt;gmx-users@gromacs.org&gt;<br><br><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>Hi there,<div><br></div><div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>I've been looking at amber ff implementation of gmx 4.5 since I am familiar to Sorin's ffamber works and I am the developer of ACPYPE.</div><div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font><br></div><div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>I noticed that proper dih are not converted to RB anymore (which's great for understanding) and to accomplish that apparently 2 new funct were added to the gmx code, namely 4 and 9.</div>  <div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font><br></div><div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>Needless to say that I couldn't find anything about funct 4 and 9 in the current gmx manual.<br><br>Type 9 was added to facilitate CHARMM's multiple proper dihedrals, in git commit a7c597c778351f by Erik, whose message was <br><br>&nbsp;&nbsp;&nbsp; Added support for dihedraltype 9, which allows multiple terms for proper dihedrals.<br>&nbsp;&nbsp;&nbsp; By listing a dihedral with type 9, grompp will now scan the force field to see if there are<br>&nbsp;&nbsp;&nbsp; multiple terms on _adjacent_ lines listed in the dihedraltypes section, and in that case add them all.<br><br>A code snippet in src/kernel/toppush.c reads<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(ft == 9)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Previously, we have always overwritten parameters if e.g. a torsion<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; with the same atomtypes occurs on multiple lines. However, CHARMM and<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; some other force fields specify multiple dihedrals over some bonds,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; including cosines with multiplicity 6 and somethimes even higher.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thus, they cannot be represented with Ryckaert-Bellemans terms.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To add support for these force fields, Dihedral type 9 is identical to<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; normal proper dihedrals, but repeated entries are allowed.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bAllowRepeat = TRUE;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ft = 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;<br></div><div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&nbsp;</font><br></div><div><font style="font-style: normal; font-weight: normal; background-color: rgb(245, 248, 240); font-size: 14px;">&gt; </font>I would appreciate more information about it. Among other things I would like to know, e.g., what funct 4 would have different from funct 1, since in the seminal work of Sorin, amber impr. dih are treated as prop. dih in gromacs.</div><br>From src/gmxlib/{ifunc,bondfree}.c and src/kernel/{topdirs,toppush}.c it can be seen that dihedraltypes 4 and 1 call the same evaluation function. Perhaps Erik can confirm this.<br><br>src/gmxlib/ifunc.c did suggest to me that something is not quite right...<br><br>&nbsp; def_bonded&nbsp; ("PDIHS",&nbsp;&nbsp;&nbsp; "Proper Dih.",&nbsp;&nbsp;&nbsp;&nbsp; 4, 3, 3,&nbsp; eNR_PROPER, pdihs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>&nbsp; def_bonded&nbsp; ("RBDIHS",&nbsp;&nbsp; "Ryckaert-Bell.",&nbsp; 4, 6, 6,&nbsp; eNR_RB, rbdihs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>&nbsp; def_bonded&nbsp; ("FOURDIHS", "Fourier Dih.",&nbsp;&nbsp;&nbsp; 4, 4, 4,&nbsp; eNR_FOURDIH, rbdihs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>&nbsp; def_bonded&nbsp; ("IDIHS",&nbsp;&nbsp;&nbsp; "Improper Dih.",&nbsp;&nbsp; 4, 2, 2,&nbsp; eNR_IMPROPER,idihs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>&nbsp; def_bonded&nbsp; ("PIDIHS",&nbsp;&nbsp; "Improper Dih.",&nbsp;&nbsp; 4, 3, 3,&nbsp; eNR_PROPER, pdihs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>&nbsp; <br>If PIDIHS is an improper dihedral with the functional form of a proper dihedral, should it not use eNR_IMPROPER?<br><br>Mark