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

Including methods for equilibration detection #543

Open
ijpulidos opened this issue Oct 21, 2024 · 5 comments
Open

Including methods for equilibration detection #543

ijpulidos opened this issue Oct 21, 2024 · 5 comments

Comments

@ijpulidos
Copy link
Contributor

From https://github.com/fjclark/red, there are equilibration detection methods that are considered superior to those currently used in the timeseries module in pymbar. I'm opening this issue to discuss the potential inclusion of these (or other) methods as the default for automated equilibration detection within the module.

@fjclark
Copy link

fjclark commented Oct 23, 2024

Thanks for looking into our work!

If you decide you want to include any of the methods, I would be very happy to open a PR.

I've looked into the performance of a few of these methods on the outstanding equilibration issues I could find - please see here and here. Summarising across all the problematic time series:

  • Selecting the truncation point by minimising the marginal standard error increases the sensitivity to initial bias compared to maximising the effective sample size.
  • The root(N) window method and original MSER seem to discard the most problematic samples in all cases.
  • We'd recommend the root(N) window method over MSER since MSER is prone to under-discarding when a trend in the average is hidden by noise (discussion here). In general, we found the root(N) window method to be the most robust of the heuristics we tried, at least on our synthetic datasets.

The statistical inefficiency estimate the root(N) window method returns is usually a large underestimation, and so shouldn't be used for uncertainty estimation/ subsampling. So if you would like to include it, it seems sensible to separate the problems of equilibration detection and autocorrelation analysis.

Thanks.

@mrshirts
Copy link
Collaborator

@fjclark thanks so much for looking over this. This has been an issue for a while. I won't have time to give this the time/thought it needs for a couple of days, but wanted to make sure the conversation keeps going!

@mrshirts
Copy link
Collaborator

One big question is whether the equilibration detection software is useful in enough context outside of pymbar that we should just have wrapper functions to red or some joint package rather than maintain separate functionality inside pymbar. Maintenance issues are probably the biggest question that has been raised for NOT doing this.

@fjclark
Copy link

fjclark commented Nov 18, 2024

No problem! Apologies for the slow reply.

One big question is whether the equilibration detection software is useful in enough context outside of pymbar that we should just have wrapper functions to red or some joint package rather than maintain separate functionality inside pymbar. Maintenance issues are probably the biggest question that has been raised for NOT doing this.

Personally, I feel that the problems of equilibration detection/ statistical inefficiency estimation are independently important enough to justify a separate package. This seems to be the case for at least some other users, e.g. here. While the recommended equilibration detection methods in red are simple, there is scope to expand the code to include e.g. more robust methods for estimating autocorrelation which might bloat PyMBAR. Alternatively, it should be easy to include the (simple) recommended methods from red directly in PyMBAR to minimise maintenance issues.

If you decide you would like to use the methods, I'm very happy to grant access/ transfer ownership of red, or to contribute to a joint package/ PyMBAR. I'm committed to maintaining this code until at least 2027 (when I will finish my postdoc).

@mrshirts
Copy link
Collaborator

Posting that I am still interested in this, it may be a couple of weeks (about to travel) before I can sit down and think about what the right test cases are. Ping me again then.

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

No branches or pull requests

3 participants