gravatar for Mensur Dlakic

4 hours ago by

USA

I would have to see the whole .log file to be certain, but there is a good chance that nothing is wrong with your commands. This type of error will appear in at least two cases I know about: 1) when the run was continued after the interruption, and the resulting files don't have the same number of samples; 2) when a nan event was encountered at least once during the log-likelihood calculation.

You can diagnose this by: 1) checking the length of your .p files (typing wc -l *.p should give you identical numbers); 2) searching for nan in your .p files (grep "nan" *.p), or for -- [nan] in your .log file (grep "-- [nan]" *.log). If #2 is causing the error, you may need to realign your sequences or change the parameters inside your command block to avoid the numeric overflow. For example, you could try using gamma rates and the GTR model in your lset command, or change the heating scheme (the temp parameter in mcmcp). Sometimes decreasing the temperature will overcome the issue by making the cold and heated chains more similar to each other. Also, I suggest larger number of nswaps when you have more than 4 chains.

You could try replacing the two relevant commands in your block with these:

lset nst=6 rate=gamma;
mcmcp ngen=10000000 relburnin=yes burninfrac=0.50 printfreq=1000 samplefreq=1000 nchains=6 nswaps=4 savebrlens=yes temp=0.1;

My suggestion is to go with shorter runs (1-2 million generations) and smaller burn-in fraction (0.25) until you find parameters that will allow a complete run. Then you can increase both parameters to your desired values.



Source link