-
Notifications
You must be signed in to change notification settings - Fork 14
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
Refactor wrapper and add Gromacs support #140
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have to change the openff-evaluator
paprika protocol in light of this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't run through the tutorial, so I trust that it works.
However, it struck me that perhaps we should create a simplified workflow because not every step is obvious. This could live in the documentation. For example, I noticed after converting the System
to Gromacs, format you do:
# Add dummy atom restraints - load in the Gromacs files instead
# of the amber files because the coordinates a shifted.
structure = pmd.load_file(
os.path.join(work_dir, window, f"{base_name}-sol.top"),
xyz=os.path.join(work_dir, window, f"{base_name}-sol.gro"),
structure=True
)
plumed.add_dummy_atoms_to_file(structure,window=window)
...and I was thinking to myself, how would someone know to do this? It seems like the dummy atoms are in the structure already, because tleap
is adding them, but I guess they still need to be added? (Also, should add_dummy_atoms_to_file
be renamed to add_dummy_atoms_to_structure
)?
Maybe the workflow could look something like:
- Setup the complex for the calculation by creating a bound pose and aligning it.
- Determine the number of windows for the umbrella sampling (attach, pull, and release phases of the calculation).
- Setup the restraints.
- Create the windows.
- Write the restraints to a file in each window (either AMBER-format or PLUMED-format).
- Create coordinates for all windows.
- Solvate the complex in each window and add dummy atoms. (Is this how you'd phrase things?)
- If using PLUMED, add dummy atoms to the restraint file (??)
[...etc...]
What do you think?
I don't think we need to change the |
Hmm, maybe
Yeah, I agree that the workflow/protocol of doing APR calculations with pAPRika is not clear. I am planning on adding more info to the documentation and maybe have a flowchart diagram to demonstrate this.
The dummy atoms are already added with |
I think that is a bit more explicit.
+1
This makes sense. I think I didn't totally appreciate the distinction before. |
I'll give it another once-over tomorrow. |
Do we need to upload the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks pretty good. I added a bunch of comments about minor wording changes, mostly in the documentation.
Yeah, I can remove the complex folder from the repository and the tutorials can use the files from |
Fixes bug in #140 where additional PDB files were suppressed by filter_template
This PR refactors the
Amber
simulation wrapper modulepaprika/amber.py
and adds a new wrapper forGromacs
. Simulation wrappers are now stored inpaprika/simulate.py
.Also added a small function in
tleap.System
to convert Amber prmtop/rst7 to Gromacs top/gro format.Question: do you think it's better to have all caps for the simulation wrapper class name?
EDIT: I've made simulation class names all caps.
TODO
Status