This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############################################################################ | |
#CODE FOR ANALYZING NESTEDNESS OF A COMMUNITY MATRIX & PLOTTING THE RESULTS# | |
############################################################################ | |
require(vegan) | |
require(ade4) | |
#Here, samp_85 is simply a community matrix of my 85% OTU cyano bins. The [5:9] just chooses | |
#specific rows for analysis (here, a depth gradient). | |
samp <- samp_85[c(5:9),] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#This is code for those plots I made using the MPD and MNTD metrics. You need to organize them into a table such as the one below# | |
require(ggplot2) | |
data = read.csv("data.csv", header = TRUE, sep = "") | |
s <- c("NM1","NM2","NM3", "NM4", "NM5", "Green", "Pink", "Brown", "S1", "S2", "G1", "G2") | |
data$OTU <- factor(data$OTU) | |
cyanos = subset(data, group == "cyano") | |
PSBs = subset(data, group == "PSB") | |
closts = subset(data, group == "clost") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#This code uses a community matrix a'la VEGAN to make a bipartite network of how your taxa are organized into a particular habitat# | |
#Gets really messy with >100 species# | |
samp <- samp[c(4,10,1,11,12),] | |
require(bipartite) | |
visweb(samp, type="nested", prednames=TRUE, preynames=TRUE, labsize=1, | |
plotsize=12, square="black", text="no", frame=NULL, textsize=1, | |
textcol="red", pred.lablength=NULL, prey.lablength = NULL, clear=TRUE, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Example for calculating diversity profiles of Part of the Eectronic Supplementary Material for Leinster, T. & Cobbold C.A. 2011 | |
#"Measuring diversity: the importance of species similarity" # | |
#URL: www.esajournals.org/doi/abs/10.1890/10-2402.1 # | |
require(picante) | |
#assumes you already have a phylogeny (called "phylo") and a community matrix (called "samp")# | |
#where rows = sites, columns = taxa (the way VEGAN and PICANTE like them).# | |
samp <- t(samp) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require(picante) | |
#function that maps dissimilarity to similarity & scales between 0 and 1 | |
range01 <- function(x){exp((-1/max(x))*x)} | |
#Calculate branch lengths bewteen taxa | |
dist <- cophenetic(tree) | |
#calculate similarity between taxa from 0 to 1 | |
Z <- range01(dist) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Code to collapse a phylogeny by a tree's support values, when nodes have support value names | |
#tree = phylogenetic tree, cutoff = support value cutoff (can be changed or made into a vector) | |
require(ape) | |
h <- which(tree$node.label < cutoff) | |
nodes <- matrix(h + Ntip(tree)) | |
nodes <- nodes[-1] | |
k <- matrix(tree$edge[,2]) | |
j <- matrix(nrow = length(i), ncol = 1) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
nodes2root <- | |
function(phy,int.node) { | |
Ntaxa = length(phy$tip.label) + phy$Nnode | |
Nnode = phy$Nnode | |
tips = c() | |
nodes = int.node | |
repeat { | |
nodes = phy$edge[which(phy$edge[,2]%in%nodes),1] | |
if (length(nodes)==0) break | |
tips = c(tips,nodes) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require(reshape) | |
require(picante) | |
require(gtools) | |
#Function that lists all terminal tip labels descended from ancestral node | |
internal2tips.self = function (phy, int.node){ | |
#require(picante); require(ape) | |
Ntaxa = length(phy$tip.label) | |
Nnode = phy$Nnode | |
if ((Ntaxa + Nnode - 1) != nrow(phy$edge)) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############Here's a function that calculates Hill number diversity using a phylogeny from the Leinster and Cobbold (2012) paper | |
#Requires a phylogeny with tip labels and a community matrix (rows = samples, columns = species) | |
Phylo.Z <- function(phy,samp){ | |
#packages required for this to work: | |
require(reshape) | |
require(picante) | |
require(ape) | |
require(gtools) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require(picante) | |
require(gtools) | |
require(reshape) | |
########################################################### | |
### Utility functions ### | |
########################################################### | |
internal2tips.self = function (phy, int.node){ |
OlderNewer