Hi,
I try to use OpenMM for aMD simulations. Specifically, I would like to use (DISEI-aMD) (see http://pubs.acs.org/doi/abs/10.1021/ct501090y), where only the direct intra solute electrostatic interactions are accelerated. Can I use AMDForceGroupIntegrator for this? How can I create a force group based on this nonbonded interaction just for solute atoms? Thanks for your help.
All the best
Marten
DISEI-aMD
- Peter Eastman
- Posts: 2588
- Joined: Thu Aug 09, 2007 1:25 pm
Re: DISEI-aMD
Hi Marten,
Yes, that can be done, though it will take a bit of cleverness. I see from the paper that the situation is actually a little more complicated than what you describe. The method uses PME, and aMD is only applied to a subset of the interactions in the direct space part. The reciprocal space part is unaffected. So to start with you'll need a standard NonbondedForce that can compute the reciprocal space interactions in the standard way. Then you need to split the direct space interactions into two parts and apply aMD to only one of those parts. But NonbondedForce doesn't have a way to do that, so you'll need one or more additional force objects.
Though it's a little inefficient, the simplest approach is probably just to let the NonbondedForce compute all the interactions, then subtract off the ones that are supposed to be separate. So you'll have three different forces:
1. A NonbondedForce that computes all interactions, both direct and reciprocal space, both electrostatic and Lennard-Jones, in the standard way.
2. A CustomNonbondedForce that computes only the electrostatic interactions between solute molecules. It should include the erfc() scaling used for direct space interactions with PME.
3. Another CustomNonbondedForce that is identical to #2, except with a negative sign in front.
So forces 2 and 3 would exactly cancel out, except that you're going to use aMD to alter the strength of #2. The sum of #1 and #3 gives all interactions except the electrostatic interactions within the solute.
To apply a CustomNonbondedForce to just a subset of interactions, call addInteractionGroup() on it.
There's one more complication: the 1-4 interactions. I assume you want those to be scaled by aMD also? If so, you can omit them from the NonbondedForce by setting the charge product to 0 for the corresponding exceptions. Then you'll need yet another force (a CustomBondedForce) to add them in. The erfc() screening should not be included here, since they'll already have been subtracted out from the reciprocal space part.
Peter
Yes, that can be done, though it will take a bit of cleverness. I see from the paper that the situation is actually a little more complicated than what you describe. The method uses PME, and aMD is only applied to a subset of the interactions in the direct space part. The reciprocal space part is unaffected. So to start with you'll need a standard NonbondedForce that can compute the reciprocal space interactions in the standard way. Then you need to split the direct space interactions into two parts and apply aMD to only one of those parts. But NonbondedForce doesn't have a way to do that, so you'll need one or more additional force objects.
Though it's a little inefficient, the simplest approach is probably just to let the NonbondedForce compute all the interactions, then subtract off the ones that are supposed to be separate. So you'll have three different forces:
1. A NonbondedForce that computes all interactions, both direct and reciprocal space, both electrostatic and Lennard-Jones, in the standard way.
2. A CustomNonbondedForce that computes only the electrostatic interactions between solute molecules. It should include the erfc() scaling used for direct space interactions with PME.
3. Another CustomNonbondedForce that is identical to #2, except with a negative sign in front.
So forces 2 and 3 would exactly cancel out, except that you're going to use aMD to alter the strength of #2. The sum of #1 and #3 gives all interactions except the electrostatic interactions within the solute.
To apply a CustomNonbondedForce to just a subset of interactions, call addInteractionGroup() on it.
There's one more complication: the 1-4 interactions. I assume you want those to be scaled by aMD also? If so, you can omit them from the NonbondedForce by setting the charge product to 0 for the corresponding exceptions. Then you'll need yet another force (a CustomBondedForce) to add them in. The erfc() screening should not be included here, since they'll already have been subtracted out from the reciprocal space part.
Peter