Skip to content
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

OpenMM parsers #8

Open
dotsdl opened this issue Feb 6, 2017 · 8 comments
Open

OpenMM parsers #8

dotsdl opened this issue Feb 6, 2017 · 8 comments

Comments

@dotsdl
Copy link
Member

dotsdl commented Feb 6, 2017

In line with the overall API proposal, we want to have parsers for each of the major MD engines, and eventually have coverage for all of those in use. Since there are essentially two types of estimators (TI and FEP), each packages needs a parser for:

  1. Extracting reduced potentials u_nk from output files (for FEP).
  2. Extracting derivatives DHdl from output files (for TI).

This issue is the nexus for discussion for such parsers for the OpenMM package. If you have existing parsing code for this package, comment below and we can begin adapting it into the parsers outlined above in a PR.

@davidlmobley
Copy link

I'm not sure that framing this as OpenMM in general is really the right way, as OpenMM doesn't have free energy calculations built into it as I understand it. These have been implemented in a couple of different efforts that I'm aware of -- particularly, Sire and Yank. Relevant people might be @jchodera , @Lnaden, @jmichel80, and probably someone else in Julien Michel's group -- @Steboss or @ppxasjsm maybe? @andrizzi on the Yank end may also have interest.

@jmichel80
Copy link

To add to that, we use a number of tools in the group to do free energy estimation.
There is analyse_freenrg written by @chryswoods which does TI, FEP, BAR by reading in sire containers that hold potential energies or gradients (http://siremol.org/pages/apps/analyse_freenrg.html). This has nothing to do with what the OpenMM interface to Sire does.

There is an MBAR/TI variant written by @ppxasjsm that reads in an ascii file (custom format) that contains reduced potentials and gradients.

https://github.com/michellab/Sire/blob/devel/wrapper/python/scripts/analyse_freenrg_mbar.py

These are computed by OpenMM at the moment. The code is essentially an interface to pymbar.
Earlier versions were called analyse_freenrg_mbar. We are in the process of merging the two tools so there is a consistent way to do free energy estimation from the data sampled by the various simulation tools within the Sire suite.

@davidlmobley
Copy link

@jmichel80 - perhaps your process of merging the two tools could produce parsers to be included here? Basically, alchemlyb IS what you're describing only broader: It's intended as a library and interface to pymbar which will provide "a consistent way of doing free energy estimation from the data sampled by the various simulation tools", but in this case, not just tools within the Sire suite but across all the "standard" free energy codes.

The goal is that, potentially, the community could maintain just a single library for doing this analysis rather than everyone having their own independent tools which are supposed to (but may or may not) be doing the same thing.

@jmichel80
Copy link

@davidlmobley yes it would be good if we could load our energies easily into another tool to make sure the same decisions are applied to the raw data. Will keep this in mind, but I'm not convinced we have yet a sufficiently stable file format, and a sufficiently broad user community, for a parser in a third party tools to be useful yet.

@davidlmobley
Copy link

@jmichel80 - just to be completely clear, though, this really could just be as simple as maintaining a copy of whatever parsers you do already have on here, with minor tweaks so that they output things in the way alchemlyb requires.

@jmichel80
Copy link

jmichel80 commented Feb 9, 2017 via email

@dotsdl
Copy link
Member Author

dotsdl commented Feb 9, 2017

@jmichel80 alchemlyb as a project will try to track changes in each package it maintains parsers for to ensure they keep working, so even if, say, Sire doesn't have a standard format for outputting gradients or potentials quite yet, we can still include parsers for what it is you currently do. We can clearly point out in the docs for the Sire parsers the state of the format, and the parsers can be written to try and do strict checks so they fail loudly when they can't be expected to properly read what they're given.

See my comment on the CHARMM parsers, since the situation might be a bit similar. For us right now I think something is better than nothing, since that gives us something to iterate forward on.

@ppxasjsm
Copy link

@jmichel80 and @davidlmobley I suppose the 'parser' we currently have with the somewhat suboptimal fileformat can be incorporated here. I'll try and see what the easiest way to do so would be with minimal effort.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants