Skip to content

ExplicitSolvationComponent #299

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
IAlibay opened this issue Mar 19, 2024 · 7 comments · May be fixed by #453
Open

ExplicitSolvationComponent #299

IAlibay opened this issue Mar 19, 2024 · 7 comments · May be fixed by #453
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@IAlibay
Copy link
Member

IAlibay commented Mar 19, 2024

We need a component that explicitly defines the solvent / environment of a system.

Examples use cases:

  • Defining the system box + solvent molecules that a ligand will sit in
  • Defining the a system box + membrane + solvent that a protein + ligand will sit in

Potential user facing behaviour:

  • Pass in a PDB with all the necessary polymers & solvent + SmallMoleculeComponent for the ligand
    • This then creates "ProteinComponents" for the protein + lipids + a SolventComponent with the necessary box dimensions that doesn't attempt to add any more waters + SmallMoleculeComponents for the small molecule ligands
@dotsdl dotsdl moved this to Upcoming Sprint - Queued in gufe : advancement sprints Nov 26, 2024
@dotsdl
Copy link
Member

dotsdl commented Nov 26, 2024

@IAlibay what is the urgency of this? I'd like to triage it into an upcoming milestone, so any sense of when you'd like to see this enhancement would help!

@dotsdl dotsdl added the enhancement New feature or request label Nov 26, 2024
@dotsdl dotsdl added this to the Release 1.4 milestone Dec 10, 2024
@dotsdl dotsdl moved this from Upcoming Sprint - Queued to Sprint - In Progress in gufe : advancement sprints Dec 10, 2024
@dotsdl dotsdl moved this from Sprint - In Progress to Sprint - Available in gufe : advancement sprints Jan 7, 2025
@dotsdl dotsdl moved this from Sprint - Available to Planned in gufe : advancement sprints Jan 7, 2025
@dotsdl dotsdl moved this from Planned to Upcoming Sprint - Queued in gufe : advancement sprints Jan 7, 2025
@dotsdl dotsdl modified the milestones: Release 1.4, Release 1.3 Jan 7, 2025
@dotsdl
Copy link
Member

dotsdl commented Jan 7, 2025

@atravitz is driving this; will work closely with @jthorton to develop our approach.

@dotsdl dotsdl moved this from Upcoming Sprint - Queued to Sprint - Available in gufe : advancement sprints Jan 7, 2025
@atravitz atravitz linked a pull request Jan 9, 2025 that will close this issue
2 tasks
@jthorton
Copy link
Contributor

Here are some more thoughts based on the last GUFE meeting on the design of these components.

Based on the need for an ExplicitSolvationComponent we identified a general ExplicitRepeatedComponent that be created which represents any molecule in the system that is repeated like a solvent or a membrane. This class would then have the following attributes:

ExplicitRepeatedComponent:

  • smiles of the repeated unit molecule (needed if we are to parameterise using Sage to ensure correct bonding info if loaded from PDB file)
  • some representation of the positions and atoms (rdkit molecule?)
  • need to be able to load from a PDB/pdbx file
  • convert to pdb/pdbx and openmm topology for system creation
  • flag to consider it a small molecule or not (this flags if we should treat the unit with the small molecule force field (solvation calculation) or not (membrane))

From this we can then create an ExplicitSolvationComponent which adds optional box vectors to the class and a MembraneComponent though I am not sure what extra attributes that component would need over the ExplicitRepeatedComponent.

From the need to be loaded from a pdb it might make sense if it inherits from the protein component are there any draw backs to this and are there any glaring issues with this design?

One thing I would point out is that from a user perspective this is a bit more awkward, simulating an explicitly solvated protein-ligand complex now requires you to extract the protein, solvent, and small molecule into different files before loading them into the components and creating the system. Does this seem reasonable @atravitz, @IAlibay @hannahbaumann ?

@IAlibay
Copy link
Member Author

IAlibay commented Jan 14, 2025

From an initial read, I don't think this would work.

Could you maybe present this at a meeting for further discussion please?

@jthorton
Copy link
Contributor

A simpler option for the solvated membrane component case is to just sneak this all into a ProteinCompoent and add box vectors to the model see the example here then when defining the system the solvent component would just be missed out and no solvation would be done on the system. This however will not help the solvation free energy case which will still need some kind of explicit solvation component.

@jthorton
Copy link
Contributor

Another related issue that might help with design work OpenFreeEnergy/openfe#911

@dotsdl
Copy link
Member

dotsdl commented Feb 4, 2025

We are currently gathering user stories from folks on this to help guide the design of the implementation. We want to get these user stories as part of our v1.3 cycle, even if the implementation lands in a future release.

@dotsdl dotsdl modified the milestones: Release 1.3, Release 1.4 Feb 18, 2025
@dotsdl dotsdl moved this from Sprint - Available to Planned in gufe : advancement sprints Mar 4, 2025
@dotsdl dotsdl modified the milestones: Release 1.4, Release 1.5 Apr 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Planned
Development

Successfully merging a pull request may close this issue.

4 participants