- using R version 3.0.1 Patched (2013-05-20 r62767)
- using platform: x86_64-unknown-linux-gnu (64-bit)
- using session charset: UTF-8
- checking for file ‘diversitree/DESCRIPTION’ ... OK
- this is package ‘diversitree’ version ‘0.9-3’
- checking package namespace information ... OK
- checking package dependencies ... OK
- checking if this is a source package ... OK
- checking if there is a namespace ... OK
- checking for executable files ... OK
- checking for hidden files and directories ... OK
- checking for portable file names ... OK
- checking for sufficient/correct file permissions ... OK
- checking whether package ‘diversitree’ can be installed ... OK
- checking installed package size ... OK
- checking package directory ... OK
- checking DESCRIPTION meta-information ... OK
- checking top-level files ... OK
- checking for left-over files ... OK
- checking index information ... OK
- checking package subdirectories ... OK
- checking R files for non-ASCII characters ... OK
- checking R files for syntax errors ... OK
- checking whether the package can be loaded ... OK
- checking whether the package can be loaded with stated dependencies ... OK
- checking whether the package can be unloaded cleanly ... OK
- checking whether the namespace can be loaded with stated dependencies ... OK
- checking whether the namespace can be unloaded cleanly ... OK
- checking loading without being on the library search path ... OK
- checking for unstated dependencies in R code ... OK
- checking S3 generic/method consistency ... OK
- checking replacement functions ... OK
- checking foreign function calls ... NOTE
Foreign function calls with ‘PACKAGE’ argument in a different package:
.C("node_depth", ..., PACKAGE = "ape")
.Call("call_lsoda", ..., PACKAGE = "deSolve")
See the chapter ‘System and foreign language interfaces’ of the
‘Writing R Extensions’ manual.
- checking R code for possible problems ... OK
- checking Rd files ... OK
- checking Rd metadata ... OK
- checking Rd cross-references ... OK
- checking for missing documentation entries ... OK
- checking for code/documentation mismatches ... OK
- checking Rd \usage sections ... OK
- checking Rd contents ... OK
- checking for unstated dependencies in examples ... OK
- checking line endings in C/C++/Fortran sources/headers ... OK
- checking line endings in Makefiles ... OK
- checking for portable compilation flags in Makevars ... OK
- checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK
- checking compiled code ... OK
- checking examples ... ERROR
Running examples in ‘diversitree-Ex.R’ failed
The error most likely occurred in:
> ### Name: make.bisse
> ### Title: Binary State Speciation and Extinction Model
> ### Aliases: make.bisse starting.point.bisse
> ### Keywords: models
>
> ### ** Examples
>
> pars <- c(0.1, 0.2, 0.03, 0.03, 0.01, 0.01)
> set.seed(4)
> phy <- tree.bisse(pars, max.t=30, x0=0)
>
> ## Here is the 52 species tree with the true character history coded.
> ## Red is state '1', which has twice the speciation rate of black (state
> ## '0').
> h <- history.from.sim.discrete(phy, 0:1)
> plot(h, phy)
>
> lik <- make.bisse(phy, phy$tip.state)
Warning in make.ode.deSolve(info, control) :
diversitree is not known to work with deSolve > 1.10.3
falling back on slow version
> lik(pars) # -159.71
[1] -159.71
>
> ## Heuristic guess at a starting point, based on the constant-rate
> ## birth-death model (uses make.bd).
> p <- starting.point.bisse(phy)
>
> ## Start an ML search from this point. This takes some time (~7s)
> fit <- find.mle(lik, p, method="subplex")
> logLik(fit) # -158.6875
'log Lik.' -158.6875 (df=6)
>
> ## The estimated parameters aren't too far away from the real ones, even
> ## with such a small tree
> rbind(real=pars,
+ estimated=round(coef(fit), 2))
lambda0 lambda1 mu0 mu1 q01 q10
real 0.10 0.20 0.03 0.03 0.01 0.01
estimated 0.14 0.18 0.12 0.04 0.00 0.02
>
> ## Test a constrained model where the speciation rates are set equal
> ## (takes ~4s).
> lik.l <- constrain(lik, lambda1 ~ lambda0)
> fit.l <- find.mle(lik.l, p[-1], method="subplex")
> logLik(fit.l) # -158.7357
'log Lik.' -158.7357 (df=5)
>
> ## Despite the difference in the estimated parameters, there is no
> ## statistical support for this difference:
> anova(fit, equal.lambda=fit.l)
Df lnLik AIC ChiSq Pr(>|Chi|)
full 6 -158.69 329.37
equal.lambda 5 -158.74 327.47 0.096466 0.7561
>
> ## Run an MCMC. Because we are fitting six parameters to a tree with
> ## only 50 species, priors will be needed. I will use an exponential
> ## prior with rate 1/(2r), where r is the character independent
> ## diversificiation rate:
> prior <- make.prior.exponential(1 / (2 * (p[1] - p[3])))
>
> ## This takes quite a while to run, so is not run by default
> ## Not run:
> ##D tmp <- mcmc(lik, fit$par, nsteps=100, prior=prior, w=.1, print.every=0)
> ##D
> ##D w <- diff(sapply(tmp[2:7], range))
> ##D samples <- mcmc(lik, fit$par, nsteps=1000, prior=prior, w=w,
> ##D print.every=100)
> ##D
> ##D ## See profiles.plot for more information on plotting these
> ##D ## profiles.
> ##D col <- c("blue", "red")
> ##D profiles.plot(samples[c("lambda0", "lambda1")], col.line=col, las=1,
> ##D xlab="Speciation rate", legend="topright")
> ## End(Not run)
>
> ## BiSSE reduces to the birth-death model and Mk2 when diversification
> ## is state independent (i.e., lambda0 ~ lambda1 and mu0 ~ mu1).
> lik.mk2 <- make.mk2(phy, phy$tip.state)
> lik.bd <- make.bd(phy)
>
> ## 1. BiSSE / Birth-Death
> ## Set the q01 and q10 parameters to arbitrary numbers (need not be
> ## symmetric), and constrain the lambdas and mus to be the same for each
> ## state. The likelihood function now has just two parameters and
> ## will be proprtional to Nee's birth-death based likelihood:
> lik.bisse.bd <- constrain(lik,
+ lambda1 ~ lambda0, mu1 ~ mu0,
+ q01 ~ .01, q10 ~ .02)
> pars <- c(.1, .03)
> ## These differ by -167.3861 for both parameter sets:
> lik.bisse.bd(pars) - lik.bd(pars)
[1] -167.3861
> lik.bisse.bd(2*pars) - lik.bd(2*pars)
[1] -167.3861
>
> ## 2. BiSSE / Mk2
> ## Same idea as above: set all diversification parameters to arbitrary
> ## values (but symmetric this time):
> lik.bisse.mk2 <- constrain(lik,
+ lambda0 ~ .1, lambda1 ~ .1,
+ mu0 ~ .03, mu1 ~ .03)
> ## Differ by -150.4740 for both parameter sets.
> lik.bisse.mk2(pars) - lik.mk2(pars)
[1] -150.474
> lik.bisse.mk2(2*pars) - lik.mk2(2*pars)
[1] -150.474
>
> ## 3. Sampled BiSSE / Birth-Death
> ## Pretend that the tree is only .6 sampled:
> lik.bd2 <- make.bd(phy, sampling.f=.6)
> lik.bisse2 <- make.bisse(phy, phy$tip.state, sampling.f=c(.6, .6))
Warning in make.ode.deSolve(info, control) :
diversitree is not known to work with deSolve > 1.10.3
falling back on slow version
> lik.bisse2.bd <- constrain(lik.bisse2,
+ lambda1 ~ lambda0, mu1 ~ mu0,
+ q01 ~ .01, q10 ~ .01)
>
> ## Difference of -167.2876
> lik.bisse2.bd(pars) - lik.bd2(pars)
[1] -167.2876
> lik.bisse2.bd(2*pars) - lik.bd2(2*pars)
[1] -167.2876
>
> ## 4. Unresolved clade BiSSE / Birth-Death
> set.seed(1)
> unresolved <- data.frame(tip.label=I(sample(phy$tip.label, 5)),
+ Nc=sample(2:10, 5), n0=0, n1=0)
> unresolved.bd <- structure(unresolved$Nc, names=unresolved$tip.label)
> lik.bisse3 <- make.bisse(phy, phy$tip.state, unresolved)
Warning in make.ode.deSolve(info, control) :
diversitree is not known to work with deSolve > 1.10.3
falling back on slow version
> lik.bisse3.bd <- constrain(lik.bisse3,
+ lambda1 ~ lambda0, mu1 ~ mu0,
+ q01 ~ .01, q10 ~ .01)
> lik.bd3 <- make.bd(phy, unresolved=unresolved.bd)
>
> ## Difference of -167.1523
> lik.bisse3.bd(pars) - lik.bd3(pars)
At line 125 of file dsexpvi.f
Fortran runtime error: Index '212' of dimension 1 of array 'w' above upper bound of 211