choderalab / pymbar

Python implementation of the multistate Bennett acceptance ratio (MBAR)
http://pymbar.readthedocs.io
MIT License
240 stars 93 forks source link

Incorporate automatic equilibration detection module #207

Open jchodera opened 9 years ago

jchodera commented 9 years ago

A manuscript describing the automatic equilibration detection procedure is now available: http://dx.doi.org/10.1101/021659

We should cite this in the code and README.md.

I have written a separate equilibration module that also implements several good schemes for computing statistical inefficiency. We may want to incorporate this module.

mrshirts commented 9 years ago

Should we just eliminate the equiilbration stuff in pymbar, and call the equilibration module in the examples? I think that would be best to separate the functionality.

On Thu, Aug 13, 2015 at 9:41 PM, John Chodera notifications@github.com wrote:

A manuscript describing the automatic equilibration detection procedure is now available: http://dx.doi.org/10.1101/021659

We should cite this in the code and README.md.

I have written a separate equilibration https://github.com/choderalab/automatic-equilibration-detection/blob/master/examples/liquid-argon-density/equilibration.py module that also implements several good schemes for computing statistical inefficiency. We may want to incorporate this module.

— Reply to this email directly or view it on GitHub https://github.com/choderalab/pymbar/issues/207.

jchodera commented 9 years ago

Would you want to separate the whole timeseries module? Currently, it has facilities for detecting the equilibrated region and decorrelating the data, which are totally interrelated operations.

jchodera commented 9 years ago

We had originally included these with pymbar because we can only operate on decorrelated, equilibrium data, and thought we needed to provide tools to ensure that they could easily extract uncorrelated equilibrium data. Both equilibration detection and decorrelation tools are necessary to do that.

mrshirts commented 9 years ago

I wonder if it would be better to eventually separate both equilibration detection and decorrelation to allow those modules to expand and develop, and more easily allow their use in other contexts. Obviously, all of the pymbar examples would use the tools, so we promote good use by using them in all of the examples.

jchodera commented 9 years ago

Logically, it doesn't sense to split them up: You need equilibrated data in order to decorrelate, so you need to use both schemes to prep your data for pymbar.

Operationally, they could be split up, but because they both use autocorrelation analysis tools, we would need to make three separate packages to remove cyclic dependencies:

Currently, there is duplication of the autocorrelation analysis code, with more options being offered in the equilibration detection version, which is undesirable.