openmmtools nc file parser for alchemlyb analysis #296
Replies: 6 comments 16 replies
-
Do you know if the openmmtools is API stable? I have a bunch of old codes that I used to parse the openmmtools but I didn't put it here as it is said that openmmtools is not API stable. I will have a dig and see if I can get it here. |
Beta Was this translation helpful? Give feedback.
-
Thank you very much for your time. I have uploaded a relevant nc file, yaml file containing estimated FE estimates at various % values of the run, and rest.py file containing a RestraintComposableState class definition used to modify/set lambda values to github: https://github.com/coparks2012/openmmtools_alchemlyb_dev Please let me know if you have any issues accessing the files,, and thank you again. |
Beta Was this translation helpful? Give feedback.
-
Sorry, I'm not too familiar with the NC file generated by OpenMMTools, I could retrieve the reduced potential array but I have trouble finding the all other lambda states. |
Beta Was this translation helpful? Give feedback.
-
Asking the openmmtools people if they could include the relevant information in the NC file choderalab/openmmtools#652 |
Beta Was this translation helpful? Give feedback.
-
No need to apologize. Your responses are quite helpful, and I believe I am nearly there. I have a remaining question that I think resolve the issue fully. For any future readers, here is how I envision the process: step 1: read in openmm written NC file, and extract replica_energies and state_indices
replica_energies is an [i,j,k] array where i = replica index, j = state index, and k = step index. So, replica_energies[0,1,3] would give the reduced potential energy of replica 0 evaluated at state 1 at step 3. replica_state_indices gives is an [i,j] array where replica_state_indices[i,j] gives the state index of replica i and step j. For example, if replica 3 is in state 4 at step 3, replica_state_indcies[3,3] = 4 step 2: obtain state vector
step 3: extract u_nk for each lambda i, and create data_list array. In the code snippet below, I am grabbing a subset that has replica i evaluated at all states at all timesteps. I do not think this is the right subset to grab, but I just put something in to test if the whole code would work end to end. Could you please help me determine how to parse the replica_energies/replica_state_indices to create the right data_slice for a given lambda i? This would be greatly appreciated.
Step4: plot
I confirmed that dF_t.pdf was succesfully generated |
Beta Was this translation helpful? Give feedback.
-
Hmmm, in case anyone else reads this, I suspect our approach is buggy somehow. I am testing the alchemlyb implementation which produced the following plot: This differs substantially from the plot produced by plotting the openmmtools FE estimate (which is also using mbar) using the same nc file. I am fairly confident in the openmm code, so not sure where the issue is with the openmm/alchemlyb interface.
Please note that since I am unable to calculate the reverse FE using openmmtools, I have just been passing in fe to plot_convergence to produce a plot. |
Beta Was this translation helpful? Give feedback.
-
Hello,
I am performing ABFE calculation using openmm with the openmmtools toolkit for Hamiltonian replica exchange. I would very much like to be able to process the resulting nc files in a manner that would enable analysis with alchemlyb. In particular, I am interested in plotting the forward and backward convergence.
I am curious regarding whether there is a way to parse the information stored in a MultistateReporter or MultiStateAnalyzer openmmtools variable so that is can be subsequently processed using alchemlyb.
Any help pointing me in the right direction would be greatly appreciated.
Beta Was this translation helpful? Give feedback.
All reactions