Skip to content
Remco Bouckaert edited this page May 18, 2017 · 7 revisions

Trouble shooting

bModelTestAnalyser does not start (OSX)

This may be due to JAVA 8 not being the default JAVA version. You can test this by opening a terminal and type

java -version

which should report something like

java version "1.8.0_73"

To fix this, you should install the Java JDK from Oracle, not just the JAVA JRE. You can download it from http://www.oracle.com/technetwork/java/javase/downloads/index.html.

The bModelTestAnalyser graphic does not show in the browser

Chrome is not supported

If you have Chrome as your browser, you can uncheck the "Use Browser for Visualisation" flag in the bModelTestAnalyser dialog and a stand alone window pops up with the graphic.

Still not working...

On Ubuntu, make sure JavaFX is installed:

sudo apt-get install openjfx

Make sure a recent Java 8 version is installed, available from JDK download.

Note that on slow computers it may take a while for the image to show up.

Still not working...

If you are not allergic to command line intercases, an alternative is to use the program dotty (from www.graphviz.org). BModelAnalalyser writes one or more files (depending on how many partitions use bModelTest) in the bModelTest package directory in the js sub-directory. You can find the file

\Users\yourname\BEAST\2.4\bModelTest\js\bModelTest<number>.dot on Windows
~/Library/Application Support/BEAST/2.4/bModelTest/js/bModelTest<number>.dot on Mac
~/.beast/2.4/bModelTest/js/bModelTest<number>.dot on Linux

where <number> is an integer number, depending on how many models you have.

You can run for say model 1

dot -T pdf /path/to/bModelTest1.dot > bModelTest1.pdf

to create a pdf file with the image.

Low ESSs in Tracer

In general...

When you see low ESSs in Tracer usually this means you need to run the analysis longer. However, with bModelTest some parameters are not sampled very often, for example when there is a lot of support for HKY and almost nothing for GTR the sixth rate parameter is hardly ever sampled and ESSs will be low and may require excessively long MCMC runs to get ESSs of 200 or over.

Low ESSs for BMT_rate.XYZ6

The sixth rate is only sampled when the GTR model is used — all other substitution models use fewer parameters. So if the data does not support the GTR model, the sixth rate parameter will be sampled very infrequently, resulting in low ESS values of the sixth rate parameter. A better indicator of mixing is to have a look at the log entries for the realised rates: rateAC, rateAG, rateAT, rateCG, rateCT, and rateGT for each partition. These all should have good ESS values, even though the sixth rate parameter does not.

Low ESSs for hasEqualFreqs

If only the hasEqualFreqs parameter has low ESS, you might want to increase the weight of the BitFlipOperator and DeltaExchangeOperator that operates on this parameter. By default, the weight is just 0.1, so increasing to 1.0 should help. Since changing frequencies is quite expensive (it requires recalculation of the likelihood of the complete tree) such low weight it usually the most efficient way to run the chain, but in the case where there is considerable support for both equal and unequal frequencies, the weight of the operators needs to be increased by a lot (perhaps even to 30 or more) to guarantee mixing.

You can edit the weight in BEAUti by first choosing the Show/Operators menu, and in the Operators panel set the weight for the operator with BMT_FreqsFlipOperator.s:XYZ and BMT_FrequenciesExchanger.s:XYZ. Alternatively, you can edit the weight in the XML on the element with id=“BMT_FreqsFlipOperator.s:XYZ” and id="BMT_FrequenciesExchanger.s:XYZ".

The alternative to tuning the operator weights is to use empirical frequencies for those partitions that have low ESSs, which should give almost identical results.

No ESS at all!

When a parameter gets stuck at a value, the ESS cannot be calculate and Tracer reports and ESS of "-". This typically happens with indicator variables such as hasEqualFreqs, hasInvariableSites and hasGammaRates, and is completely harmless.

The hasEqualFreqs flags being stuck at 0 is not uncommon, as it means there is no support for the equal frequencies for all your partitions.

Likewise, hasInvariableSites being stuck at 1 means there is strong support for a proportion invariable sites, which happens when there are many invariable sites in an alignment.

And hasGammaRates being stuck at 1 means the data strongly supports gamma rate heterogeneity over not have rate heterogeneity.