I am looking at the various GBSA options available for use with OpenMM(6.2), with the Amber forcefield parameters, and I am left a little confused.
I have been trying to use the python wrappers, and here is what I have discovered so far:
1. If I start with a pdb, then I can create a forcefield object from the xml files and the topology from the pdb. I usually use the amber99sb.xml and the amber99_obc.xml to create the forcefield. Using the forcefield object, I then create a system object using the createSystem function in forcefield.py. The function definition is as follows:
"
def createSystem(self, topology, nonbondedMethod=NoCutoff, nonbondedCutoff=1.0*unit.nanometer,
constraints=None, rigidWater=True, removeCMMotion=True, hydrogenMass=None, **args)
"
The function seems to eventually create a GBSAOBCForce object from the C++ API.
2. Instead of a pdb, I can also start with Amber parameter files. In this case, I use the Amber99SB forcefield to create a prmtop file using tleap. Using the prmtop, I can create an AmberPrmtopFile object. Now, to use GBSA, I have to create a system object using the createSystem function in amberprmtopfile.py. The function definition is as follows:
"
def createSystem(self, nonbondedMethod=ff.NoCutoff, nonbondedCutoff=1.0*unit.nanometer,
constraints=None, rigidWater=True, implicitSolvent=None,
implicitSolventSaltConc=0.0*(unit.moles/unit.liter),
implicitSolventKappa=None, temperature=298.15*unit.kelvin,
soluteDielectric=1.0, solventDielectric=78.5,
removeCMMotion=True, hydrogenMass=None, ewaldErrorTolerance=0.0005):
"
This function gives me the option to select the type of implicit solvent I want to use - with different types corresponding to different Amber igb parameters. The function seems to eventually create a CustomGBForce object from the C++ API.
Options 1) and 2) seem to do different things, and I am not sure which one I should be using. Do they produce different results? Is there a difference in how efficient these methods are?
GBSA using the python wrapper
- Peter Eastman
- Posts: 2564
- Joined: Thu Aug 09, 2007 1:25 pm
Re: GBSA using the python wrapper
If you specify implicitSolvent=OBC2 and implicitSolventSaltConc=0, AmberPrmtopFile will also create a GBSAOBCForce. The amber99_obc.xml file specifies one particular implicit solvent model. AmberPrmtopFile also supports that same model, but it also supports lots of others. All of them (including OBC) can be implemented with a CustomGBForce, but when possible it uses GBSAOBCForce instead since that's slightly faster (typically around 10%).
If you're not sure what implicit solvent model you want to use, OBC2 is probably a pretty good choice. That's why we chose it as the one to include XML files for. But implicit solvent models are an active field of research, so that advice could change in the future.
Peter
If you're not sure what implicit solvent model you want to use, OBC2 is probably a pretty good choice. That's why we chose it as the one to include XML files for. But implicit solvent models are an active field of research, so that advice could change in the future.
Peter
- Saugat Kandel
- Posts: 7
- Joined: Wed Nov 05, 2014 4:50 pm
Re: GBSA using the python wrapper
That makes sense. Thanks!
- martin spichty
- Posts: 10
- Joined: Thu Jul 23, 2009 12:36 am
Re: GBSA using the python wrapper
Hi, Peter,
If I understand your post correctly, using amber99_obc.xml (with forcefield object) and the argument implicitSolvent=OBC2 (with AmberPrmtopFile) should give the same solvation model.
In the User Guid documentation of OpenMM 6.2, it says, however, that *_obc.xml uses specialized GBSA-Parameters from Tinker. So, does implicitSolvent=OBC2 (with AmberPrmtopFile) also use these Tinker-Parameters?
Thanks in advance!
Best,
Martin
If I understand your post correctly, using amber99_obc.xml (with forcefield object) and the argument implicitSolvent=OBC2 (with AmberPrmtopFile) should give the same solvation model.
In the User Guid documentation of OpenMM 6.2, it says, however, that *_obc.xml uses specialized GBSA-Parameters from Tinker. So, does implicitSolvent=OBC2 (with AmberPrmtopFile) also use these Tinker-Parameters?
Thanks in advance!
Best,
Martin
- Peter Eastman
- Posts: 2564
- Joined: Thu Aug 09, 2007 1:25 pm
Re: GBSA using the python wrapper
Hi Martin,
If you load from a prmtop file, it uses whatever parameters are stored in the file. So those will probably be different from the ones in amber99_obc.xml. It's still using the same solvation model (OBC2), but with slightly different values for the atomic radii.
Peter
If you load from a prmtop file, it uses whatever parameters are stored in the file. So those will probably be different from the ones in amber99_obc.xml. It's still using the same solvation model (OBC2), but with slightly different values for the atomic radii.
Peter
- martin spichty
- Posts: 10
- Joined: Thu Jul 23, 2009 12:36 am
Re: GBSA using the python wrapper
Hi, Peter,
OK, this is clear now!
Thanks for the speedy reply,
Martin
OK, this is clear now!
Thanks for the speedy reply,
Martin