vvoelz / biceps

Bayesian inference of conformational populations
https://github.com/vvoelz/biceps
Other
12 stars 3 forks source link

IDEA: replica averaging #32

Open vvoelz opened 6 years ago

vvoelz commented 6 years ago

Hey guys. I just got back from the Canadian Society for Chemistry conference in Edmonton, Alberta and heard Masimiliamo Bonomi's talk on meta-inference, which is a lot like BICePs. He copped to being "reviewer #3" on Yunhui's latest BICePs paper; he pointed out that BICePs has some conceptual problems with restraints to ensemble averages.

An example: suppose the ensemble-average of some observable is r_j = 2. A 50%/50% ensemble of two populations with r_j = 1 and r_j =3 should be scored the same as a 100% ensemble with r_j = 2, but BICePs doesn't do this -- the latter ensemble would get a much better -ln P score. The problem is that we're comparing individual states to ensemble averages.

Meta-inference gets around this by maintaining a ensemble of multiple replicas, and then computing -ln P for the replica-averaged observables. This is pretty ingenious!

Anyway, I think this sort of thing could easily be implemented in BICePs. We just would do MCMC separately for some number of replicas and do the averaging before each -ln P calculation.

FOOD FOR THOUGHT!!

The Bonomi et al. meta-inference paper is worth checking out: http://advances.sciencemag.org/content/2/1/e1501177

yunhuige commented 6 years ago

Adding replicas in the current BICePs scripts may not be difficult (may need modify the way we compute SSE and how we do sampling before neglogP). But keep in mind this will dramatically increase the memory pressure and also the time of saving files. I'm okay with big data in the future as a "programmer" but we need think more about how to deal with it if we really want to implement it in BICePs. We can add a flag for people asking if they want to do replica sampling since it's not always necessary.