-
Notifications
You must be signed in to change notification settings - Fork 504
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
Potential improvements to modeller.addSolvent()? #3687
Comments
|
|
@peastman : It's not obvious to me how to find the axis aligned bounding box if the protein isn't already aligned to the cartesian axes. If the protein was already aligned like this: However, if my protein is oriented like this: |
The axis aligned bounding box is always aligned with the axes. However your protein is oriented, Of course, you could try to first rotate the protein before building the solvent box. That would allow for a smaller solvent box (assuming you are really really certain it isn't going to rotate). John suggested calculating the principle axes, which is a quick way of doing it that would probably work reasonably well. A more robust approach would be to run an optimization (with |
Ah sorry, I think I was misusing some of the terminology since I'm new to thinking about solvent boxes.
This is what I'm trying to do -- I want to rotate the protein before building the solvent box so that the solvent box will be smaller than if I hadn't rotated it.
It's not obvious to me how to implement this -- is this something you could help implement as a feature for openmm? |
I'm not sure it would make sense as a feature in OpenMM. Because most of the time, it's something people really shouldn't do. If the solute rotates during the simulation, it will lead to getting wrong results. (And I'm still not convinced you should be doing it. Are you really certain your protein won't rotate? 50 ns is a long time.) You should be able to find instructions online for computing principle axes. It's pretty easy: just form a matrix, diagonalize it, and the eigenvectors become the columns of your rotation matrix. |
I just realized the PDB file I had been using was the output after alignment to a variant of the same protein. When I look at the PDB file without any alignment, the protein doesn't need any rotation -- its principle axes are already oriented in the same directions as the cartesian axes. I am going to do what @peastman suggested above:
with the aformentioned PDB file -- if it doesn't seem to be rotating during the simulation, maybe this will help motivate the need for a rotation feature in openmm. |
Regarding the point about orientational correlation times: this paper has a great plot: |
Closing this since I believe the question has been answered. Feel free to reopen if I missed something. |
@jchodera and I were going through the new solvation code (introduced by: #3480 and #3537) and we have 2 questions:
Question 1: The center of the box is computed using:
However, if the starting solute is not perfectly spherical, the center may be different depending on how it's rotated. Is this the right way to compute the center that always yields the minimal solvent box? Or should the solute be aligned to some axis first to ensure we add the minimal amount of solvent?
Question 2: I am currently working with a protein:protein system that is very long in one dimension (i.e. not spherical).
![Screen Shot 2022-07-07 at 4 55 27 PM](https://user-images.githubusercontent.com/35546250/177869754-9fba2d41-9427-4c10-95bc-33e622cd7f89.png)
I am running free energy calculations (5-50 ns per replica) on them, so I am not super worried about solute tumbling. Therefore, the current solvation code adds a lot of unecessary solvent. I would like to be able to use a minimal solvent box that ensures there is enough clearance on all sides in the solvent box. An easy way to do this would be to compute the principal axes of the solute and use that to determine the the right amount of padding to each side.
Could we add a different mode to
addSolvent()
to better handle the aforementioned non-spherical solute case?Attached is a PDB of my protein:protein system before solvating and after solvating.
Here are my solvation parameters:
files_for_issue.zip
cc: @peastman
The text was updated successfully, but these errors were encountered: