Nothing
## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE)
knitr::opts_chunk$set(cache=FALSE)
## ---- eval=TRUE---------------------------------------------------------------
suppressPackageStartupMessages(library(hisse))
## ---- eval=TRUE---------------------------------------------------------------
set.seed(42)
phy <- TreeSim::sim.bd.taxa(n = 100, numbsim = 1, lambda = 0.3, mu = 0.2)[[1]]
## ---- eval=TRUE---------------------------------------------------------------
f <- GetFossils(phy, psi=0.05)
fbd.tree <- ProcessSimSample(phy, f)
## ---- eval=TRUE---------------------------------------------------------------
names(fbd.tree)
head(fbd.tree$k.samples)
## ---- eval=FALSE--------------------------------------------------------------
# k.samples <- data.frame(taxon1="sp12", taxon2="sp12", timefrompresent=3.164384,
# state=1, stringsAsFactors=FALSE)
## ---- eval=FALSE--------------------------------------------------------------
# k.samples <- data.frame(taxon1="sp12", taxon2="sp12", timefrompresent=3.164384,
# state1=0, state2=1, stringsAsFactors=FALSE)
## ---- eval=FALSE--------------------------------------------------------------
# turnover <- c(1)
# eps <- c(1)
# one.rate <- MiSSE(fbd.tree$phy, f=1, turnover=turnover, eps=eps,
# includes.fossils=TRUE, k.samples=fdb.tree$k.samples, sann=TRUE,
# sann.its=1000)
## ---- eval=FALSE--------------------------------------------------------------
# one.rate <- MiSSE(fbd.tree$phy, f=1, turnover=turnover, eps=eps,
# includes.fossils=TRUE, k.samples=NULL, sann=TRUE, sann.its=1000)
## ---- eval=FALSE--------------------------------------------------------------
# margin.test <- MarginReconMiSSE(phy=fbd.tree$phy, f=1, pars=one.rate$solution,
# hidden.states=1, includes.fossils=TRUE, k.samples=fbd.tree$k.samples,
# aic=one.rate$AIC)
## ---- eval=FALSE--------------------------------------------------------------
# trans.rate <- TransMatMakerHiSSE()
# pp <- hisse(phy=fbd.tree$phy, data, f=c(1,1), turnover=c(1,1), eps=c(1,1),
# trans.rate=trans.rate, k.samples=fbd.tree$k.samples,
# includes.fossils=TRUE)
# margin.test <- MarginReconHiSSE(phy=fbd.tree$phy, data=data, f=c(1,1),
# pars=pp$solution, hidden.states=1, includes.fossils=TRUE,
# k.samples=fbd.tree$k.samples)
## ---- eval=FALSE--------------------------------------------------------------
# trans.rate <- TransMatMakerMuHiSSE()
# pp <- MuHiSSE(phy=fbd.tree$phy, data, f=c(1,1,1,1), turnover=c(1,1,1,1),
# eps=c(1,1,1,1), trans.rate=trans.rate, k.samples=k.samples,
# includes.fossils=TRUE)
# margin.test <- MarginReconMuHiSSE(phy=fbd.tree$phy, data=data, f=c(1,1,1,1),
# pars=pp$solution, hidden.states=1, includes.fossils=TRUE,
# k.samples=fbd.tree$k.samples)
## ---- eval=TRUE---------------------------------------------------------------
strat.tree <- ProcessSimStrat(phy, f)
## ---- eval=TRUE---------------------------------------------------------------
names(strat.tree)
head(strat.tree$strat.intervals)
## ---- eval=FALSE--------------------------------------------------------------
# turnover <- c(1)
# eps <- c(1)
# one.rate <- MiSSE(strat.tree$phy, f=1, turnover=turnover, eps=eps,
# includes.fossils=TRUE, k.samples=NULL,
# strat.intervals=strat.tree$strat.intervals, sann=TRUE,
# sann.its=5000)
## ---- eval=FALSE--------------------------------------------------------------
# margin.test <- MarginReconMiSSE(phy=strat.tree$phy, f=1, pars=one.rate$solution,
# hidden.states=1, includes.fossils=TRUE, k.samples=NULL,
# strat.intervals=strat.tree$strat.intervals, aic=one.rate$AIC)
## ---- eval=TRUE---------------------------------------------------------------
plot(ladderize(phy), show.tip.label=FALSE, edge.width=0.75)
### Split the table into m and k for the points ###
extinct.samples <- f[which(f$fossiltype_long=="extinct_terminal" |
f$fossiltype_long=="extinct_internal"),]
k.samples.tmp <- extinct.samples[which(extinct.samples$has_sampled_descendant == TRUE),]
extinct.samples <- extinct.samples[which(extinct.samples$has_sampled_descendant == FALSE),]
k.samples <- f[which(f$fossiltype_long == "surviving_terminal" |
f$fossiltype_long == "surviving_internal"),]
k.samples <- rbind(k.samples, k.samples.tmp)
AddFossilPoints(ladderize(phy), f=extinct.samples, pch=19, cex=0.8,
col="#0D79F2")
AddFossilPoints(ladderize(phy), f=k.samples, pch=19, cex=0.8, col="#F25E0D")
## ---- eval=TRUE---------------------------------------------------------------
plot(ladderize(phy), show.tip.label=FALSE, edge.width=0.75)
AddFossilPoints(ladderize(phy), f=extinct.samples, pch=19, cex=0.8,
col="#0D79F2")
AddFossilPoints(ladderize(phy), f=k.samples, pch=19, cex=0.8, col="#F25E0D")
AddStratIntervals(ladderize(phy), f=f, pch=19, cex=0.8, col="purple", lwd=2)
## ---- eval=TRUE---------------------------------------------------------------
library(diversitree)
pars <- c(0.1, 0.2, 0.03, 0.03, 0.01, 0.01)
set.seed(4)
phy <- NULL
while( is.null( phy ) ){
phy <- tree.bisse(pars, max.t=30, x0=0, include.extinct=TRUE)
}
k.samples <- data.frame(taxon1="sp12", taxon2="sp12", timefrompresent=3.164384,
state=1, stringsAsFactors=FALSE)
hidden.states=FALSE
phy.k <- hisse:::AddKNodes(phy, k.samples)
fix.type <- hisse:::GetKSampleMRCA(phy.k, k.samples)
nb.tip <- Ntip(phy.k)
nb.node <- phy.k$Nnode
gen <- hisse:::FindGenerations(phy.k)
data <- data.frame(taxon=names(phy$tip.state), phy$tip.state,
stringsAsFactors=FALSE)
data <- hisse:::AddKData(data, k.samples)
data.new <- data.frame(data[,2], data[,2], row.names=data[,1])
data.new <- data.new[phy.k$tip.label,]
dat.tab <- hisse:::OrganizeDataHiSSE(data.new, phy=phy.k, f=c(1,1),
hidden.states=FALSE, includes.fossils=TRUE)
edge_details <- hisse:::GetEdgeDetails(phy=phy.k,
intervening.intervals=strat.cache$intervening.intervals)
fossil.taxa <- edge_details$tipward_node[which(edge_details$type == "extinct_tip")]
pars.bisse <- c(0.1+0.03, 0.1+0.03, 0.03/0.1, 0.03/0.1, 0.01, 0.01)
model.vec <- numeric(48)
model.vec[1:6] = pars.bisse
phy$node.label = NULL
cache <- hisse:::ParametersToPassfHiSSE(model.vec, hidden.states=hidden.states,
nb.tip=Ntip(phy.k), nb.node=Nnode(phy.k), bad.likelihood=-300,
f=c(1,1), ode.eps=0)
cache$psi <- 0.01
hisse.full <- hisse:::DownPassHiSSE(dat.tab, gen, cache, root.type="madfitz",
condition.on.survival=TRUE, root.p=NULL, node=fix.type$node,
state=fix.type$state, fossil.taxa=fossil.taxa,
fix.type=fix.type$type)
## ---- eval=TRUE---------------------------------------------------------------
dat.tab <- hisse:::OrganizeDataMiSSE(phy=phy.k, f=1, hidden.states=1, includes.fossils=TRUE)
model.vec <- c(0.1+0.03, 0.03/0.1, rep(0,51))
cache = hisse:::ParametersToPassMiSSE(model.vec=model.vec, hidden.states=1,
fixed.eps=NULL, nb.tip=nb.tip, nb.node=nb.node,
bad.likelihood=exp(-500), ode.eps=0)#
cache$psi <- 0.01
gen <- hisse:::FindGenerations(phy.k)
MiSSE.logL <- hisse:::DownPassMisse(dat.tab=dat.tab, cache=cache, gen=gen,
condition.on.survival=TRUE, root.type="madfitz", root.p=NULL,
fossil.taxa=fossil.taxa, node=fix.type$node, fix.type=fix.type$type)
## ---- eval=TRUE---------------------------------------------------------------
library(corHMM)
char.logL <- corHMM(phy.k, data, rate.cat=1, model = "ER", node.states = "none",
fixed.nodes=FALSE, p=0.01, root.p="maddfitz")
## ---- eval=TRUE---------------------------------------------------------------
tot.logL <- char.logL$loglik + MiSSE.logL
comparison <- identical(round(hisse.full,3), round(tot.logL,3))
comparison
## ---- eval=TRUE---------------------------------------------------------------
library(diversitree)
pars <- c(.1, .15, .2, .1,
.03, .045, .06, 0.03,
.05, .05, .00,
.05, .00, .05,
.05, .00, .05,
.00, .05, .05)
set.seed(2)
phy <- NULL
while( is.null( phy ) ){
phy <- tree.musse(pars, 30, x0=1, include.extinct=TRUE)
}
k.samples <- data.frame(taxon1="sp20", taxon2="sp37", timefrompresent=8.54554,
state1=0, state2=1, stringsAsFactors=FALSE)
phy.k <- hisse:::AddKNodes(phy, k.samples)
fix.type <- hisse:::GetKSampleMRCA(phy.k, k.samples)
nb.tip <- Ntip(phy.k)
nb.node <- phy.k$Nnode
gen <- hisse:::FindGenerations(phy.k)
states <- phy$tip.state
states <- data.frame(phy$tip.state, phy$tip.state,
row.names=names(phy$tip.state))
states <- states[phy$tip.label,]
states.trans <- states
for(i in 1:Ntip(phy)){
if(states[i,1] == 1){
states.trans[i,1] = 0
states.trans[i,2] = 0
}
if(states[i,1] == 2){
states.trans[i,1] = 0
states.trans[i,2] = 1
}
if(states[i,1] == 3){
states.trans[i,1] = 1
states.trans[i,2] = 0
}
if(states[i,1] == 4){
states.trans[i,1] = 1
states.trans[i,2] = 1
}
}
data <- data.frame(taxon=names(phy$tip.state),
states.trans[,1], states.trans[,2], stringsAsFactors=FALSE)
data <- hisse:::AddKData(data, k.samples, muhisse=TRUE)
data.new <- data.frame(data[,2], data[,3], row.names=data[,1])
data.new <- data.new[phy.k$tip.label,]
pars.muhisse <- c(rep(0.1+0.03,4), rep(0.03/.1, 4), 0.05,0.05,0, 0.05,0,0.05,
0.05,0,.05, 0,0.05,.05)
model.vec = rep(0,384)
model.vec[1:20] = pars.muhisse
cache <- hisse:::ParametersToPassMuHiSSE(model.vec=model.vec, hidden.states=FALSE,
nb.tip=Ntip(phy.k), nb.node=Nnode(phy.k), bad.likelihood=exp(-500),
f=c(1,1,1,1), ode.eps=0)
cache$psi <- 0.01
gen <- hisse:::FindGenerations(phy.k)
dat.tab <- hisse:::OrganizeData(data.new, phy.k, f=c(1,1,1,1),
hidden.states=FALSE, includes.fossils=TRUE)
fossil.taxa <- which(dat.tab$branch.type == 1)
muhisse.full <- hisse:::DownPassMuHisse(dat.tab, gen=gen, cache=cache,
root.type="madfitz", condition.on.survival=TRUE, root.p=NULL,
node=fix.type$node, state=fix.type$state, fossil.taxa=fossil.taxa,
fix.type=fix.type$type)
## Trait independent model should be loglik_tree + loglik_character ##
#Part 1: MiSSE loglik:
dat.tab <- hisse:::OrganizeDataMiSSE(phy=phy.k, f=1, hidden.states=1, includes.fossils=TRUE)
model.vec <- c(0.1+0.03, 0.03/0.1, rep(0,51))
cache = hisse:::ParametersToPassMiSSE(model.vec=model.vec, hidden.states=1,
fixed.eps=NULL, nb.tip=nb.tip, nb.node=nb.node,
bad.likelihood=exp(-500), ode.eps=0)#
cache$psi <- 0.01
edge_details <- hisse:::GetEdgeDetails(phy=phy.k,
intervening.intervals=strat.cache$intervening.intervals)
fossil.taxa <- edge_details$tipward_node[which(edge_details$type == "extinct_tip")]
gen <- hisse:::FindGenerations(phy.k)
MiSSE.logL <- hisse:::DownPassMisse(dat.tab=dat.tab, cache=cache, gen=gen,
condition.on.survival=TRUE, root.type="madfitz", root.p=NULL,
fossil.taxa=fossil.taxa,node=fix.type$node, fix.type=fix.type$type)
#Part 2: corHMM loglik:
char.logL <- corHMM(phy.k, data, rate.cat=1, model = "ER", node.states = "none",
fixed.nodes=FALSE, p=0.05, root.p="maddfitz")
tot.logL <- char.logL$loglik + MiSSE.logL
comparison <- identical(round(muhisse.full,3), round(tot.logL,3))
comparison
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.