Open marscher opened 8 years ago
this happened on win32/py2 only.
This is presumably happening because nsamples_in_state
is zero. We should just raise an informative exception in this case.
Actually, we should somehow prevent any state from becoming empty in the first place. Gibbs sampling updates should presumably be rejected if any state ends up empty.
(This problem would not be unique to windows.)
Am 10.08.2015 um 19:51 schrieb John Chodera:
This is presumably happening because |nsamples_in_state| is zero. We should just raise an informative exception in this case.
— Reply to this email directly or view it on GitHub https://github.com/bhmm/bhmm/issues/20#issuecomment-129547923.
The question is, why it only occurs on 32bit systems.
Is this in a nosetest, or is this in actual usage?
It is a doctest executed by nosetest.
I can look into this when I'm back in the US (now in Singapur). Indeed states must be prevented from becoming empty, but the requirement is even a bit stronger: we need to have a trajectory that connects all states in the Gibbs sampling update. Once we loose connectivity, we cannot recover from it. I have solved this problem by using priors that ensure connectivity, but it may be that in this test the corresponding prior is not used.
It would be weird that it only occurs under Win32. Perhaps this was just by chance since it would depend on the random trajectory generated. I'll take care of it.
Am 10/08/15 um 19:52 schrieb John Chodera:
Actually, we should somehow prevent any state from becoming empty in the first place. Gibbs sampling updates should presumably be rejected if any state ends up empty.
— Reply to this email directly or view it on GitHub https://github.com/bhmm/bhmm/issues/20#issuecomment-129548199.
Prof. Dr. Frank Noe Head of Computational Molecular Biology group Freie Universitaet Berlin
Phone: (+49) (0)30 838 75354 Web: research.franknoe.de
We can simply reject proposed trajectory sets that do not sample all states. As long as we don't start with an initial trajectory set that doesn't sample all states, this should be sufficient.
Sampling all states is insufficient, we need connectivity if we want to use the reversible option.
I would also say that reject proposed trajectory sets that don't have the required structural properties is the most attractive option, which is why I have tried this first (ensuring connectivity rather than just visiting every state). Unfortunately that didn't work at all. I think the problem is that you can run into situations where the current estimate for the parameters becomes more and more unlikely to generate a connected trajectory, resulting in the Gibbs sampler getting stuck. I can have a look at this again when I have some time and try to understand it in detail, but for now using a prior that ensures connectivity at least works.
Am 22/08/15 um 16:36 schrieb John Chodera:
We can simply reject proposed trajectory sets that do not sample all states. As long as we don't start with an initial trajectory set that doesn't sample all states, this should be sufficient.
— Reply to this email directly or view it on GitHub https://github.com/bhmm/bhmm/issues/20#issuecomment-133709650.
Prof. Dr. Frank Noe Head of Computational Molecular Biology group Freie Universitaet Berlin
Phone: (+49) (0)30 838 75354 Web: research.franknoe.de