-
Notifications
You must be signed in to change notification settings - Fork 29
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
PBC issue in particle separation #22
Comments
Can you give some more context for your system? What is a basic explanation of your system? What CVs are you using? (Looks like you have 5 quantities plotted here - are you sampling on all of them?) Is your box size commensurate with these large jumps you are seeing (~2)? SSAGES does follow the PBCs set in whatever engine you're using (GROMACS, LAMMPS, etc.). However, SSAGES does not have a concept of "molecules" and relies on the order of atoms passed to the CV to determine when to unwrap. There are certain cases where manually setting the PBCs for the CV calculation have solved some issues, but may not work for your specific case. |
Sorry, I should have provided more details. In my system I have two relatively large molecules (~100-150 atoms each and 1-2 nm large in the largest dimension). I have a dodecahedron box with 9 nm in each dimension of the unit cell and about ~16000 water molecules. The box is large enough to separate the COM between the two molecules ~4 nm without seeing each other. I am using GROMACS 2018.3 As I said in my previous message, I am using 5 walkers for the sampling... so I guess each curve (the node-x files) corresponds to the value of the CV for each walker along the trajectories, isn't it? I checked the trajectories with a molecular viewer and everything looks right... except the jumps in the node-x files, that I believe come from a wrong correction of the PBCs Since I am using the distance between the COM of both molecules as a CV for ABF or ANN, I would expect that the algorithm consider the correction through the PBCs to determine CV value. This should be easy just comparing the distance between COM to the box size... If the sampling is based on wrong distance values then all the results would be definitely wrong... |
Hmmm, I don't think that SSAGES is able to handle a dedecahedral box properly. Our current implementation unwraps PBCs assuming you have a rectangular box. There could definitely be issues in the disconnect between the dimensions in a rectangular box vs dodecahedral box, which you are seeing as these large jumps in CV values. I would be curious to see if it works correctly with your system in a rectangular box. Since SSAGES cannot handle the dodecahedral geometry, it should detect this and throw a warning or an error. I plan to look more into this to see exactly which cases are or are not handled by SSAGES unwrapping scheme. Thank you for raising this issue! |
Hi |
Ideally, SSAGES would have printed a warning or error message for you, instead of having to figure it out on your own. I'm definitely adding this to the developers' to-do list. Since we support various engines, it may be difficult to encompass every geometry, but at least we should tell the users about the current limitations of SSAGES (especially for new users). |
Actually, from diving further into the GROMACS documentation, it should convert dodecahedral and octahedral boxes into triclinic cells, internally. This would mean that SSAGES is actually unwrapping correctly, regardless of specified geometry. However, this is a place where our testing is lacking, and it would definitely help to test out some simple cases with different cell geometries in various engines. Could you include some input files (SSAGES .json and GROMACS files) so that we can check through some of the other input parameters to make sure that parameters are chosen judiciously? |
Here is one of my json files:
I cannot publicly share my real systems but I could build a small sample and share it with you off the list. I could also perform some tests for you if that helps. |
and this is one of the input files that I have been using with ANN for my tests:
|
The correction of the PBCs seems to be correct at least in cubic boxes. The new plots look clean. Anyway, using the previous json files I see that most of my walkers remain stuck at almost fix positions. I guess I should modify something in the json input files to facilitate their diffusion throughout the CV... although the minimum_count in ABF and the nsweep in ANN are already quite small... any advice? |
As mentioned previously, GROMACS converts essentially all box geometry to triclinic cells to create the box matrix ( With ABF, you could try reducing the I have not used the ANN method extensively. I think it is designed to be fairly agnostic to choices of parameters. I might suggest reducing the number of points in the grid somewhat, since that might be trying to get too fine of a resolution and might end up messing with the fitting of the network. In terms of the topology, usually one layer is sufficient when you're only sampling one CV, so 15 nodes in one layer should be able to sample the surface. You could try adding another layer, but there's a chance it would end up over fitting the system. |
Thank you for the comments. I will follow your advices to see I am able to free my walkers... |
I have been doing several tests with ABF&ANN + Particle separation as CV, with different number of walkers distributed in different regions of the expected PMF landscape (I have previously got the PMF from umbrella sampling). The representation of the CV as a function of time for each walker shows a lot of sharp jumps as typically appear when PBCs are not corrected (see image below). I guess the bias sampling in your implementation of these algorithms does not use the CV values written in the node-x files (default name of the CV per walker) but in that case the corrected values should be written in the files so that the user can effectively check the evolution of the CVs. Am I doing anything wrong?
The text was updated successfully, but these errors were encountered: