Error: check and think about multifurcating trees..

149 views
Skip to first unread message

Jui-Hung

unread,
Aug 29, 2022, 11:08:49 AM8/29/22
to PAML discussion group
Hi there,

I am using MCMCtree (paml version 4.10.3) for calculating the divergence time in phylogenetic tree, and the tree consist of 11 species.

When I run the MCMCtree, it always came out a error message.

Error: check and think about multifurcating trees..

No matter how I re-root the tree, MCMCtree always got error.
I think this is just how my tree looks like.

Please help me to solve this problem.
The attached files are the tree file and mcmctree.ctl.

Thank you very much.

Best,
Jui-Hung
mcmctree.ctl
species_tree_time.nwk

Sandra AC

unread,
Dec 12, 2022, 10:23:16 AM12/12/22
to PAML discussion group
Hi Jui-Hung, 

I have quickly opened your tree file with FigTree, and it seems that you had a multifurcation on the root and hence MCMCtree could not proceed -- you need bifurcated trees. I have randomly rooted the tree so the outgroup is `Ttib` and generated a dummy alignment with two nucleotides to run a quick test -- it ran successfully, find attached dummy files here. If the root is different, please make sure that you root the tree accordingly.

All the best,
Sandra

P.S.: After going through your control file, I have some suggestions:
  • The options `finetune` and `RootAge` are no longer needed to be specified in the control file. However, make sure that you have a calibration for the root in your tree file (Newick format) or MCMCtree will not run. You can see I have added a random calibration for the root age in the dummy tree file I attach. You will see that I have removed the options `finetune` and `RootAge` from the control file I attach.
  • You are running 2,000 + 20,000*10 = 202,000 iterations (num_iterations = burnin + samp_freq*num_samples). I recommend you increase the sampling frequency (`sampfreq`) to increase the number of iterations so the chains run longer and have a higher chance to converge. 
  • Make sure that you run at least two independent chains (two jobs with MCMCtree, make sure the seed number is different so you guarantee the chains are independent) and check they have converged (e.g., convergence plots, ESS for each model parameter > 200, etc.). You can find more details about these checks in section "2. Checks" here (R scripts and detailed explanations about these checks are given for a specific analysis, but they can be applied to other datasets and the R scripts can also be customised!). If you explore this GitHub repository, you will find more tips and step-by-step guidelines to run MCMCtree analyses.
  • Make sure that the prior on the rates that you have defined is correct and that you have not used the default. According to your prior distribution, G(2,20), you estimate the true evolutionary rate to be around 0.1 (mean_rate = mean_gamma = alpha/beta = 2/20 = 0.1). If that is not the case, I suggest you keep alpha = 2 (vague distribution to account for uncertainty) and modify beta. If you use R, you can do something like the following:
    # Your estimated evolutionary rate
    mean <- 0.1
    # Start with 2, change if you want the distribution shape to be narrower or more vague
    alpha <- 2  
    beta  <- alpha/mean  
    # Check that you get the value assigned to "mean"
    alpha/beta                
    # Plot -- does the shape of this distribution fit your prior belief about the rate?
    # If not, find better values of alpha and beta that do
    curve( dgamma( x, shape = alpha, rate = beta ), from = 0, to = 1 )
mcmctree.ctl
test.tree
test.phy
Reply all
Reply to author
Forward
0 new messages