alchemistry / alchemlyb

the simple alchemistry library
https://alchemlyb.readthedocs.io
BSD 3-Clause "New" or "Revised" License
197 stars 51 forks source link

CHARMM parsers #9

Open dotsdl opened 7 years ago

dotsdl commented 7 years ago

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 CHARMM 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 commented 7 years ago

@donghyuksuh - is there someone on the CHARMM side you would recommend who might be interested in contributing code towards a CHARMM parser as part of a python library for general analysis of alchemical free energy calculations? I'm thinking there may be someone in the Roux group, perhaps you?

donghyuksuh commented 7 years ago

Dear Professor Mobley,

I modified GROMACS parser in alchemy script to calculate TI-CUBIC from CHARMM energy gradient output, and so this must not be too hard to get done.

Hope you have a great day, Sincerely, Donghyuk

On Wed, Feb 8, 2017 at 6:47 PM, David L. Mobley notifications@github.com wrote:

@donghyuksuh https://github.com/donghyuksuh - is there someone on the CHARMM side you would recommend who might be interested in contributing code towards a CHARMM parser as part of a python library for general analysis of alchemical free energy calculations? I'm thinking there may be someone in the Roux group, perhaps you?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/alchemistry/alchemlyb/issues/9#issuecomment-278511387, or mute the thread https://github.com/notifications/unsubscribe-auth/AYclgV6-QRccfhfU2WX0hJwZCHMCgL4uks5ramIggaJpZM4L4tgc .

davidlmobley commented 7 years ago

@donghyuksuh - none of us are CHARMM users, as far as I am aware, nor do we have energy gradient files, so if you could provide some sample files and, perhaps, your modified parser, that would be very helpful.

donghyuksuh commented 7 years ago

Dear Professor Mobley,

In CHARMM input file, you can set

open unit 54 write card name blah // to set up the wham output file and put wham 54 // and putting this in dynamics part will redirect E gradient to that file.

Such file contains two columns, first column is lambda value, and the second column is gradient.

I hard-coded most part as I thought no one would need this (i.e. lambda schedule / maxn / default as kcal as it is with CHARMM / works for TI-CUBIC only ), so this must be a mess. But anyways sample input and the scripts I modified are attached. If you want me to clean this code up and make it parser parser, please let me know. I run this with ./alchemical_analysis.py -p 'vdw' -m 'TI-CUBIC' -u 'kcal'

Hope you have a great day, Sincerely, Donghyuk

On Wed, Feb 8, 2017 at 10:08 PM, David L. Mobley notifications@github.com wrote:

@donghyuksuh https://github.com/donghyuksuh - none of us are CHARMM users, as far as I am aware, nor do we have energy gradient files, so if you could provide some sample files and, perhaps, your modified parser, that would be very helpful.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/alchemistry/alchemlyb/issues/9#issuecomment-278542008, or mute the thread https://github.com/notifications/unsubscribe-auth/AYclgdnqajgel4HN1P2i21LYyoE3DlSwks5rapFDgaJpZM4L4tgc .

dotsdl commented 7 years ago

Are there any standard-ish ways that outputs for alchemical free energy runs are done in CHARMM, or is this something that is done ad hoc each time depending on the script used? If it's the latter, then we can still build parsers, and in the docs for the CHARMM parser we can include instructions for how one should output data so the parsers can easily ingest it.

donghyuksuh commented 7 years ago

Dear Professor Mobley,

When alchemical FE calculation is done with PERT module in CHARMM, it gives out TI windowing result(TI) and TP windowing result(FEP) by the end of the run. Or you can set up the wham keyword as explained earlier to get input for wham, and use wham to get free energy. These three things are standard ways, as far as I know.

https://www.charmm.org/charmm/documentation/by-version/c40b1/params/doc/pert/

If you are asking if the ( 1st column=lambda && 2nd column=gradient ) output is standard output for wham input, yes it is.

Hope you have a great day, Sincerely, Donghyuk

On Thu, Feb 9, 2017 at 2:10 PM, David Dotson notifications@github.com wrote:

Are there any standard-ish ways that outputs for alchemical free energy runs are done in CHARMM, or is this something that is done ad hoc each time depending on the script used? If it's the latter, then we can still build parsers, and in the docs for the CHARMM parser we can include instructions for how one should output data so the parsers can easily ingest it.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/alchemistry/alchemlyb/issues/9#issuecomment-278758195, or mute the thread https://github.com/notifications/unsubscribe-auth/AYclgbaHfpHmWwI4fjG09OBkOxPTQEaUks5ra3KrgaJpZM4L4tgc .