Conversation
Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
for more information, see https://pre-commit.ci
|
No API break detected ✅ |
IAlibay
left a comment
There was a problem hiding this comment.
I think we've historically been missing some exposition here, so my question would be if it would be reasonable to add it or if it would end up being too much work (or if it should be elsewhere)?
| .. warning:: | ||
|
|
||
| The ``_adaptive_settings()`` method is experimental and subject to change. |
There was a problem hiding this comment.
This is great. As a small nit, it might be good to move that to the top so that it's the first thing folks read.
| For some protocols, such as :class:`.SepTopProtocol` and :class:`.AbsoluteBindingProtocol`, a single | ||
| :class:`.ChemicalSystem` is used to represent both legs of the thermodynamic cycle (complex and solvent). | ||
| This is in contrast to the :class:`.RelativeHybridTopologyProtocol`, where each leg is defined by | ||
| separate :class:`.ChemicalSystem`\s. |
There was a problem hiding this comment.
Maybe put this in a .. note: section? It would be good to say that this is subject to change too.
| # ligand_B + solvent | ||
| ligand_B_solvent = openfe.ChemicalSystem(components={'ligand': ligand_B, 'solvent': solvent}) | ||
|
|
||
| For a protein-membrane complex, the `ligand_A_complex` would instead use a |
There was a problem hiding this comment.
Thinking about it a bit more - will the code changes work for just any ExplicitPDBComponent? I.e. could this be reduced to just "if you explicitly defined the system components, e.g. with a protein membrane" and then "here is an example using a ProteinMembraneComponent".
There was a problem hiding this comment.
Changed this!
| 2. components can be reused to compose different systems. | ||
| 3. :class:`.Protocol`\s can have component-specific behavior. E.g. different force fields for each component. | ||
|
|
||
| When dealing with membrane-protein systems, the protein is represented using an explicitly solvated |
There was a problem hiding this comment.
The content of what is being added looks good, but there's a "missing link".
What I think we've been missing (since before membrane support) is the idea that the Components are composable. What would you think about something like this:
- These Components are additively added into a ChemicalSystem, which will define the chemical composition of the simulated system.
- For a conventional protein-ligand complex in water, this would look like [add protein, small and solvent components]
- Some mention that the protein component handles crystallographic waters and also can define SSBONDs via the CONECT records.
- For membrane proteins: what you have here
Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## membrane_prototype #1933 +/- ##
=====================================================
Coverage ? 90.57%
=====================================================
Files ? 206
Lines ? 18757
Branches ? 0
=====================================================
Hits ? 16990
Misses ? 1767
Partials ? 0
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
|
||
| Examples of components include: | ||
|
|
||
| * :class:`.ProteinComponent`: an entire biological assembly, typically the contents of a PDB file. |
There was a problem hiding this comment.
we could hint here that the ProteinComponent can also contain crystal waters.
|
|
||
| Box vectors can be estimated from the atomic coordinates in the PDB file. | ||
|
|
||
| Caveat: This approach can be inaccurate if the PDB comes from a previous simulation and some atoms are positioned in periodic images. |
There was a problem hiding this comment.
I would use a warning box for this to make it clear this should be a last resort.
There was a problem hiding this comment.
Added a warning box.
ProteinMembraneComponentexplanation, including example code of creating aChemicalSystemfor the complex leg of protein-membrane simulations._adaptive_settingsto the user guideChemicalSystems in ABFE and SepTop vs HybTop protocols.Checklist
newsentry, or the changes are not user-facing.pre-commit.ci autofix.Manual Tests: these are slow so don't need to be run every commit, only before merging and when relevant changes are made (generally at reviewer-discretion).
Developers certificate of origin