openfe
openfe copied to clipboard
Predefined solvent component
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.
@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 SmallMoleculeComponents. 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 - Components 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:
- Do I understand correctly, that lipids (and actually waters and ions) can actually be considered as
SmallMoleculeComponentas well? - Let's say that I have a ligand and a cofactor in my system. For both I have generated modified
OpenFFparameters and I now have twoffxmlfiles. Can I provide a list of force fields tosmall_molecule_forcefield?