Open pbuslaev opened 9 months ago
@pbuslaev Thanks for opening up this issue.
Short answer: unfortunately we do not have a defined way to specifically handle an explicit SolventComponent
, but some of the things you propose can currently be done via alternate means.
The long answer: implementing a means of reading in an explicit SolventComponent
is something we want to get done, particularly for dealing with membrane proteins. It's something we hope to spend time on in the new year.
For crystallographic waters & ions - if there are present in your ProteinComponent
and you are using a force field that has the right definition for those residues (I believe our defaults should cover basic ions), then those should be read in and handled properly. Solvation will then be applied on top of that.
For cofactors - for these you can load them in as seperate SmallMoleculeComponent
s. If you include these in both your states A and B then they will be handled as spectator molecules and treated with the chosen small molecule force field.
For membrane proteins - unfortunately this is not handled by OpenFE right now :( It's definitely on our to-do list though!
Hopefully this goes some way to help answer your question - happy to discsus more if necessary!
Thanks @IAlibay! Please let me know if you would need any help with that. I would be happy to contribute some code/test.
I also have a similar, but slightly different question. Is it possible to provide a modified ligand/protein parameters? Let's say, that I created Interchange
for a ligand and modified torsions on my own. Can I use this modified topology somehow with OpenFE
? I can open a separate issue about this question, if you suggest. But creating Component
from Open Force Field Interchange
object seems to be very appealing to me, since it can help with both predefined SolventComponent
and user-defined force field.
@pbuslaev - Component
s don't hold anything as fancy as FF information. Our current approach to providing custom FF is through what is implemented here: https://github.com/openmm/openmmforcefields/pull/288
If you pass your ffxml as an input to "small_molecule_forcefield" in the force field settings, then this will be picked up for use in this way.
Ah, ok. Thanks for the explanation.
A couple of other questions:
SmallMoleculeComponent
as well?OpenFF
parameters and I now have two ffxml
files. Can I provide a list of force fields to small_molecule_forcefield
?
I wonder if there is a way to generate a
SolventComponent
from a predefined structure? A use case might be a system with crystalographic waters, crystalographic ions, and cofactors, or a membrane protein.