Nothing
## ---- eval=TRUE---------------------------------------------------------------
suppressWarnings(library(hisse))
phy <- read.tree("whales_Steemanetal2009.tre")
## ---- eval=FALSE--------------------------------------------------------------
# turnover <- c(1)
# eps <- c(1)
# one.rate <- MiSSE(phy, f=1, turnover=turnover, eps=eps)
## ---- eval=FALSE--------------------------------------------------------------
# turnover <- c(1,2)
# eps <- c(1,1)
# two.rate <- MiSSE(phy, f=1, turnover=turnover, eps=eps)
## ---- eval=FALSE--------------------------------------------------------------
# #rate classes A:C
# turnover <- c(1,2,3)
# eps <- c(1,1,1)
# three.rate <- MiSSE(phy, f=1, turnover=turnover, eps=eps)
# #rate classes A:D
# turnover <- c(1,2,3,4)
# eps <- c(1,1,1,1)
# four.rate <- MiSSE(phy, f=1, turnover=turnover, eps=eps)
# #rate classes A:E
# turnover <- c(1,2,3,4,5)
# eps <- c(1,1,1,1,1)
# five.rate <- MiSSE(phy, f=1, turnover=turnover, eps=eps)
## ---- eval=FALSE--------------------------------------------------------------
# turnover <- c(1,2)
# eps <- c(1,2)
# two.rate.weps <- MiSSE(phy, f=1, turnover=turnover, eps=eps)
#
# #rate classes A:C, but include eps as well:
# turnover <- c(1,2,3)
# eps <- c(1,2,3)
# three.rate.weps <- MiSSE(phy, f=1, turnover=turnover, eps=eps)
## ---- eval=TRUE, echo=FALSE, fig.cap = "The fit of an incremental increase in the number of rate classes estimated under a MiSSE analysis of the cetacean phylogeny of Steeman et al. (2009). There is a clear reduction in AIC from one to three rate classes, which levels off at four rate classes and five rate classes returns an AIC that is about 1 unit higher than either the three and four rate class."----
load("misse.vignette.Rsave")
model.fits <- c(one.rate$AIC, two.rate$AIC, three.rate$AIC, four.rate$AIC, five.rate$AIC)
plot(x=1:5, y=model.fits, bty="n", xlab="", ylab="", type="l", axes=FALSE, xlim=c(1,5.0), ylim=c(530,560))
title(xlab=c("Models"), line=2)
title(ylab=c("AIC"), line=2.5)
par(tck=.01)
axis(2, at = seq(530, 560, by = 5), las =1, lwd=1, labels=TRUE, mgp=c(.75,.5,0))
axis(1, at = seq(1, 5, by = 1), las =1, lwd=1, labels=c("One Rate", "Two Rate", "Three Rate", "Four Rate", "Five Rate"), mgp=c(.75,.5,0))
## ---- eval=TRUE---------------------------------------------------------------
# two.rate.recon <- MarginReconMiSSE(phy=phy, f=1, hidden.states=2,
#pars=two.rate$solution, n.cores=3, AIC=two.rate$AIC)
load("misse.vignette.Rsave") # Line above shows the command to create this result.
class(two.rate.recon)
two.rate.recon
## ---- eval=FALSE--------------------------------------------------------------
# plot.misse.states(two.rate.recon, rate.param="net.div", show.tip.label=TRUE, type="phylogram",
# fsize=.25, legend="none")
## ---- eval=TRUE, echo=FALSE, fig.cap = "A two-rate class MiSSE analysis and reconstruction of the cetacean phylogeny of Steeman et al. (2009) shows a clear increase in the net diversification rate within the Delphinidae (dolphins) relative to all other cetaceans; there also seems to be a slightly elevated rates in the sister group of Delphinidae, the Monodontidae+Phocenidae. Overall, this particular MiSSE model seems to correctly identify the source of 'trait-independent' diversification that can plague BiSSE analyses of simulated data sets on the cetacean tree (see Rabosky and Goldberg, 2015)."----
plot.misse.states(two.rate.recon, rate.param="net.div", show.tip.label=TRUE, type="phylogram",
fsize=.25, legend="none")
## ---- eval=TRUE---------------------------------------------------------------
misse.results.list = list()
misse.results.list[[1]] = one.rate.recon
misse.results.list[[2]] = two.rate.recon
misse.results.list[[3]] = three.rate.recon
misse.results.list[[4]] = four.rate.recon
misse.results.list[[5]] = five.rate.recon
## ---- eval=FALSE--------------------------------------------------------------
# plot.misse.states(misse.results.list, rate.param="net.div", show.tip.label=TRUE, type="phylogram",
# fsize=.25, legend="none")
## ---- eval=TRUE, echo=FALSE, fig.cap = "A model-averaged MiSSE analysis of the cetacean phylogeny of Steeman et al. (2009) shows an apparent slow down in the net diversification through time."----
plot.misse.states(misse.results.list, rate.param="net.div", show.tip.label=TRUE, type="phylogram",
fsize=.25, legend="none")
## ---- eval=FALSE--------------------------------------------------------------
# turnover <- c(1,2)
# eps <- c(0,0)
## ---- eval=FALSE--------------------------------------------------------------
# two.rate <- MiSSE(phy, f=1, turnover=turnover, eps=eps, fixed.eps=0.9)
## ---- eval=TRUE---------------------------------------------------------------
two.rate
three.rate
## ---- eval=TRUE---------------------------------------------------------------
expected.transitions.two <- 0.004 * sum(two.rate$phy$edge.length)
expected.transitions.two
expected.transitions.three <- 0.131 * sum(three.rate$phy$edge.length)
expected.transitions.three
## ---- eval=TRUE---------------------------------------------------------------
load("misse.support.Rsave")
two.rate.support$ci[,"q0"]
three.rate.support$ci[,"q0"]
## ---- eval=FALSE--------------------------------------------------------------
# tree <- rcoal(50)
# potential.combos <- generateMiSSEGreedyCombinations(max.param=4, vary.both=TRUE)
#
# #run on one core:
# model.set <- MiSSEGreedy(tree, possible.combos=potential.combos, n.cores=1)
#
# #run on all available cores: (commented out because CRAN does not allow this in examples)
# model.set <- MiSSEGreedy(phy, potential.combos, n.cores=parallel::detectCores(), f=1)
#
# AICc <- unlist(lapply(result, "[[", "AICc"))
# deltaAICc <- AICc-min(AICc)
# print(length(result))
#
# # Yes, [[ is a function you can lapply, and the name of elements within each list
# # object can be arguments. Life is awesome.
## ---- eval=FALSE--------------------------------------------------------------
# model.recons <- as.list(1:length(model.set))
# for (model_index in 1:length(model.set)) {
# nturnover <- length(unique(model.set[[model_index]]$turnover))
# neps <- length(unique(model.set[[model_index]]$eps))
# misse_recon <- MarginReconMiSSE(phy = model.set[[model_index]]$phy, f = 1,
# hidden.states = nturnover,
# pars = model.set[[model_index]]$solution,
# AIC = model.set[[model_index]]$AIC)
# model.recons[[model_index]] <- misse_recon
# }
## ---- eval=FALSE--------------------------------------------------------------
# tip.rates <- GetModelAveRates(model.recons, type = c("tips"))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.