Various tools to help with performing phylogenetic comparative methods and curating/visualizing the results.
library(devtools) install_github("willgearty/pcmtools")library(pcmtools)library(OUwie) data(tworegime) ou.results <- list() ou.results[[1]] <- OUwie(tree,trait,model=c("BM1")) ou.results[[2]] <- OUwie(tree,trait,model=c("BMS"), root.station = FALSE) ou.results[[3]] <- OUwie(tree,trait,model=c("OUM")) ou.results[[4]] <- OUwie(tree,trait,model=c("OUMV")) #Both regimes have same parameters for BM1 model. Both regimes have different parameters for other models. regime.mat <- data.frame(BM1 = c(1, 1), BMS = c(1,2), OUM = c(1,2), OUMV = c(1,2), row.names = c(1,2)) #Extract and map parameters to regimes ou.parameters <- OUwieParSumm(ou.results, regime.mat) #Summarize model fit ou.aic <- OUwieAICSumm(ou.parameters) #Model average parameters ou.avg <- OUwieModelAvg(ou.parameters)library(phytools) #Simulate a mapped tree set.seed(4) Q <- matrix(c(-2,1,1,1,-2,1,1,1,-2),3,3) rownames(Q) <- colnames(Q) <- letters[1:3] tree <- sim.history(pbtree(n=100,scale=1),Q) cols <- setNames(c("blue","red","green","orange"),letters[1:4]) #Plot the mapping plot(tree, cols, ftype="i", fsize=0.7) #Split state c to state d within subclade tree2 <- mergeMappedStates2(tree, "c", "d", 173) #Plot new mapping plot(tree2, cols, ftype="i", fsize=0.7)library(phytools) #Simulate tree tree <- pbtree(n=70,scale=1) #Simulate discrete trait Q <- matrix(c(-1,1,1,-1),2,2) rownames(Q) <- colnames(Q)<-c(0,1) x1 <- sim.history(tree,Q)$states #Generate stochastic maps and density map mtrees <- make.simmap(tree,x1,nsim=100) map1 <- densityMap(mtrees) #Simulate continuous trait x2 <- fastBM(tree,sig2=0.1) #Generate cont map map2 <- contMap(tree, x2) #Extract posterior densities pp_data <- extractSimmapDensity(map1, map2) #Plot to see how traits have evolved with respect to one another plot(pp_data$map1, pp_data$map2)library(phytools) #Simulate tree tree <- pbtree(n=70,scale=1) #Simulate discrete trait Q <- matrix(c(-1,1,1,-1),2,2) rownames(Q) <- colnames(Q)<-c(0,1) tree <- sim.history(tree,Q) #Simulate continuous trait x2 <- fastBM(tree,sig2=0.1) #Calculate stats through time tstt <- traitStatsThroughTime(tree, x2) coords <- tstt$xy stats <- tstt$stats #Plot phenogram ys <- c(coords$y1, coords$y2) plot(NULL, xlim=c(0,1), ylim=c(min(ys), max(ys)), ylab="trait", xlab="time") segments(coords$x1, coords$y1, coords$x2, coords$y2) #Plot stats plot(stats$x, stats$mean)- Plotting phenotypes through time
- Plotting OU models
- And more!