nosoi
simulationR/output_treeGenerator.r
getTransmissionTree.Rd
From a nosoi
simulated epidemics, this function extracts the full transmission tree in a form mimicking a phylogenetic tree.
getTransmissionTree(nosoiInf)
nosoiInf | an object of class |
---|
A tree of class treedata
, containing a
phylogenetic tree based on the transmission chain and the mapped data at all the nodes.
This function uses packages tidytree and treeio,
that rely on ape
.
For exporting the annotated tree to other software packages, see functions
in treeio (e.g. write.beast
).
To sub-sample this tree, see functions sampleTransmissionTree
and sampleTransmissionTreeFromExiting
# \donttest{ t_incub_fct <- function(x){rnorm(x,mean = 5,sd=1)} p_max_fct <- function(x){rbeta(x,shape1 = 5,shape2=2)} p_Exit_fct <- function(t){return(0.08)} p_Move_fct <- function(t){return(0.1)} proba <- function(t,p_max,t_incub){ if(t <= t_incub){p=0} if(t >= t_incub){p=p_max} return(p) } time_contact = function(t){round(rnorm(1, 3, 1), 0)} transition.matrix = matrix(c(0, 0.2, 0.4, 0.5, 0, 0.6, 0.5, 0.8, 0), nrow = 3, ncol = 3, dimnames = list(c("A", "B", "C"), c("A", "B", "C"))) set.seed(805) test.nosoi <- nosoiSim(type="single", popStructure="discrete", length=20, max.infected=100, init.individuals=1, init.structure="A", structure.matrix=transition.matrix, pMove=p_Move_fct, param.pMove=NA, nContact=time_contact, param.nContact=NA, pTrans = proba, param.pTrans = list(p_max=p_max_fct, t_incub=t_incub_fct), pExit=p_Exit_fct, param.pExit=NA )#>#>#>#>#>#>## Make sure all needed packages are here if (requireNamespace("ape", quietly = TRUE) || requireNamespace("tidytree", quietly = TRUE) || requireNamespace("treeio", quietly = TRUE)) { library(ape) library(tidytree) library(treeio) #' ## Full transmission tree ttreedata <- getTransmissionTree(test.nosoi) plot(ttreedata@phylo) ## Sampling "non dead" individuals hID <- c("H-1", "H-7", "H-15", "H-100") samples <- data.table(hosts = hID, times = c(5.2, 9.3, 10.2, 16), labels = paste0(hID, "-s")) sampledTree <- sampleTransmissionTree(test.nosoi, ttreedata, samples) plot(sampledTree@phylo) ## Sampling "dead" individuals sampledDeadTree <- sampleTransmissionTreeFromExiting(ttreedata, hID) plot(sampledDeadTree@phylo) }#> #>#>#> #>#> #>#>#> #>#>#> #>#>#> #>#>#> #> #> #>#> #>#>#> #>#>#> #>#> Warning: `mutate_()` was deprecated in dplyr 0.7.0. #> Please use `mutate()` instead. #> See vignette('programming') for more help# }