Dear list,

I'm trying to use MuSSE (package diversitree, FitzJohn 2012) to test for
associations between diversification rates and a 3-state (discrete)
character. I ran make.musse() for models where same rates affect the whole
tree. I used this code from the diversitree tutorial, which worked fine for
most models:

> lik <- make.musse(phy, states, 3, sampling.f=freq, strict=TRUE,
control=list()) ## arguments details below
> lik.base <- constrain(lik, lambda2 ~ lambda1, lambda3 ~ lambda1, mu2 ~
mu1, mu3 ~ mu1, q13 ~ 0, q21 ~ q12, q23 ~ q12, q31 ~ 0, q32 ~ q12)
> p <- starting.point.musse(phy, 3)
> fit.base <- find.mle(lik.base, p[argnames(lik.base)])
> lik.lambda <- constrain(lik, mu2 ~ mu1, mu3 ~ mu1, q13 ~ 0, q21 ~ q12,
q23 ~ q12, q31 ~ 0, q32 ~ q12)
## the line above defines an alternative model to be tested against the
null.
> fit.lambda <- find.mle(lik.lambda, p[argnames(lik.lambda)])

Now I want to run a similar analysis using make.musse.split() so as to let
rates vary between sections of the tree (based on the diversification
shifts recovered by MEDUSA).
However, I keep getting this error message:

> lik.split <- make.musse.split(phy, states, 3, nodes=Nodes,
split.t=Times, sampling.f=freq)
Error in check.split(phy, nodes, split.t) : Invalid node specification

- The values in Nodes are taken from the MEDUSA summary (MedusaSUM$break.pts).
One of the nodes is the root node and another is a tip (I guess it means a
shift along a terminal branch). I have tried omitting the root node and/or
the tip, thinking their location at either end of the tree might be causing
the problem.
- Times is the same length as Nodes. I have tried specifying all '0's, all
'Inf', and several combinations thereof, like non-zero for the tip node and
zero for the root etc.
- freq is the different states' frequencies in the data. (3 elements that
sum up to 1).
- phy is a fully dichotomous, family-level phylogeny, so most tips have
richness >1.
- states is the same length and order as phy$tip.label.
I'm running diversitree v0.9.8 in R v3.2.3 on a Windows10 machine.

1- My first question is what am I doing wrong with make.musse.split that
gives the error? I searched the diversitree tutorial and help files, and of
course google, but found nothing to help me solve this problem.

2- For standard MuSSE models (where lambda was constrained equal regardless
of character, e.g.:
> lik.lambda <- constrain(lik, lambda2~lambda1, lambda3~lambda1, q13 ~ 0,
q31 ~ 0)
> fit.lambda <- find.mle(lik.lambda, p[argnames(lik.lambda)])
find.mle() failed to return any output.
Such lambda-constrained models were left to run for up to 13 hours
(compared to <1min for models with unconstrained lambda) before terminating
the process.
The question here is what could make the algorithm fail there? In my mind
it should theoretically be possible that multiple extinction rates result
in a given richness pattern even if the speciation rate is equal for all
character states.

Any help will be greatly appreciated!

Many thanks,
Roi Maor

PhD student
Department of Zoology,
Tel Aviv University,
Tel Aviv, 6997801
Israel

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-phylo mailing list - R-sig-phylo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-phylo@r-project.org/

Reply via email to