[gmx-developers] Non Equilibrium alchemy implementation in gromacs

Michael R Shirts Michael.Shirts at Colorado.EDU
Thu Dec 13 20:44:17 CET 2018


> One can update lambda by discrete small quantities dlambda at regular time intervals according to a prescribed input protocol. This is what I intend to do in gromacs sparing me to go inside the direct lattice force routines.
    
Yes, although my understanding is that some questions have emerged about about getting this work exactly right, given that the true Hamiltonian is actually slightly different than the shadow Hamiltonian actually simulated using a finite dt process.

> Does gromacs *always* exchange coordinates instead of "parameters" or can the code do both? Exchanging scaling factors (instead of coordinates or the whole parameters set) would imply close to zero communication overhead at the MPI (inter-nodes) level allowing to exchange frequently.
    
Yes, it only exchanges by exchanging  coordinates.  I had this conversation a while ago with the developers implementing it, and apparently in most cases, the limiting factor is STOPPING for communication, not the data communication itself.  But I am not an expert in this.  It's SIMPLER to exchange coordinates, since all of the information is of one type, rather than exchanging a much more complex data structure of parameters that one might consider swapping.  Someone else involved with the actual implementation (and not just adapting it) might speak up.



    Il Giovedì 13/12/2018 14:42 Michael R Shirts ha scritto:
    >>     REM question: how does gromacs implement H-REM? namely, are
    >     topology/parameter
    >     arrays exchanged or the replica exchange concerns (like in ORAC) 
    > only
    >     specific
    >     scaling factors (e.g .factors for torsional scaling, 14 scaling, 
    > intra
    >     scaling, inter scaling etc. etc.) with invariant topology 
    > throughout
    >     the GE?
    > 
    > Currently, the coordinates are exchanged.  It does assume the topology
    > is the same, with only parameters changing, though there is quite a
    > bit of flexibility in defining parameters (i.e. some atoms off at one
    > endpoint, other atoms off at the other endpoint).
    > 
    >> ALCHEMY question: when electrostatic of a solute molecule are turned
    >     off no longer interacting with the solvent, are the 
    > *intramolecular*
    >     electrostatic interactions also scaled?  namely, if (e.g.)
    >     lambda_q=0.5, do two atomic charges on the solute interact with a 
    > 0.25
    >     scaling
    >     factor?  And if so, how does this get corrected when calcuting 
    > solvation
    >     energies?
    > 
    > Both area implemented. Not sure what you mean when you say
    > "corrected".  Either method gives a valid Hamiltonian that is smoothly
    > interpolated between lambda=0 and lambda=1; clearly, they are
    > different Hamiltonians with different behaviors, and the equations are
    > given in full detail in the manual.
    > 
    >> The idea is to transpose the ORAC hybrid OpenMP/MPI implementation for
    > NUMA architectures (which I wrote) to gromacs.
    > 
    > This sounds complicated.  I cannot speak to this.  Other people may be 
    > able to.
    > 
    > Best,
    > ~~~~~~~~~~~~~~~~
    > Michael Shirts
    > Associate Professor
    > michael.shirts at colorado.edu
    > http://www.colorado.edu/lab/shirtsgroup/
    > Phone: (303) 735-7860
    > Office: JSCBB C123
    > Department of Chemical and Biological Engineering
    > University of Colorado Boulder
    > 
    > 
    > On 12/13/18, 6:32 AM,
    > "gromacs.org_gmx-developers-bounces at maillist.sys.kth.se on behalf of
    > Piero Procacci"
    > <gromacs.org_gmx-developers-bounces at maillist.sys.kth.se on behalf of
    > piero.procacci at unifi.it> wrote:
    > 
    >     Dear colleagues
    > 
    >     I would like to implement non equilibrium work (NEW) alchemical
    >     methods for solvation and binding free energy calculations in 
    > gromacs
    >     The idea is to transpose the ORAC hybrid OpenMP/MPI implementation 
    > for
    >     NUMA architectures (which I wrote) to gromacs.  A NEW calculation 
    > is
    >     done in two steps:
    > 
    >     i) a H-REM simulation where the initial thermodynamic state is
    >     canonically
    >     sampled (e.g. fully coupled solute/ligand or fully decoupled
    >     solute/ligand)
    > 
    >     ii) starting from a representative sample of these canonical
    >     configurations, a
    >     swarm of fast annihilation or growth NE trajectories (typically few
    >     hundreds) are launched in parallel on the MPI layer. Each 
    > trajectory
    >     can be n-threaded on the OpenMP layer.
    > 
    >     As I have no experience (as contributor) in the gromacs code, 
    > before
    >     embarking in this task I would like to get some info regarding
    >     the current HREM and alchemical implementation in gromacs.
    > 
    >     REM question: how does gromacs implement H-REM? namely, are
    >     topology/parameter
    >     arrays exchanged or the replica exchange concerns (like in ORAC) 
    > only
    >     specific
    >     scaling factors (e.g .factors for torsional scaling, 14 scaling, 
    > intra
    >     scaling, inter scaling etc. etc.) with invariant topology 
    > throughout
    >     the GE?
    > 
    >     ALCHEMY question: when electrostatic of a solute molecule are 
    > turned
    >     off no longer interacting with the solvent, are the 
    > *intramolecular*
    >     electrostatic interactions also scaled?  namely, if (e.g.)
    >     lambda_q=0.5, do two atomic charges on the solute interact with a 
    > 0.25
    >     scaling
    >     factor?  And if so, how does this get corrected when calcuting 
    > solvation
    >     energies?
    > 
    >     Thank you in advance for your help
    > 
    >     Piero Procacci
    >     --
    >     Gromacs Developers mailing list
    > 
    >     * Please search the archive at
    > http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List
    > before posting!
    > 
    >     * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
    > 
    >     * For (un)subscribe requests visit
    > 
    > https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
    > or send a mail to gmx-developers-request at gromacs.org.
    -- 
    Gromacs Developers mailing list
    
    * Please search the archive at http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List before posting!
    
    * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
    
    * For (un)subscribe requests visit
    https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers or send a mail to gmx-developers-request at gromacs.org.



More information about the gromacs.org_gmx-developers mailing list