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/