# What this shows is that 1/e-information is like a special type of alpha diversity,
#
### 2 species held at a constant ratio, another varying - plot as a
### function of (log2) changes of that changing species.
## Intuitively I want the measure of alpha diversity to half every time
## that changing species doubles (if that species is dominant)
one.species.true <- seq(.1,20,by=.1) # True abundance of the one changing species
one.species.data <- acomp(cbind(one.species.true,1,1))
plot(one.species.true,1/norm(one.species.data),log='y')
##### Now I will do the same but for generalized true diversity
#####
# q : is the order of the diversity
# x : is a compositional vector (not acomp)
gen.tdiv <- function(x,q) {
return(rowSums(x**q)**(1/(1-q)))
}
##
gen <- gen.tdiv(data,20)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity', sub='Note: Red is High, Blue is Low')
# What about the Geometric mean?
mean.acomp <- geometricmeanRow(acomp(data))
mean.color <- rbPal(30)[cut(mean.acomp,breaks=30)]
plot(acomp(data),col=mean.color)
title(main='Geometric Mean', sub='Note: Red is High, Blue is Low')
library(compositions)
### Compute Shannon Info and Aitchison Norm for a Grid of Compositions ###
###
# Create grid of points
data <- expand.grid(seq(.01,1,by=.03),seq(.01,1,by=.03),seq(.01,1,by=.03))
#data <- data+0.1 # What does it look like with a pseudocount.
data <- clo(data)
# First Compute the Aitchison norm for each of these points
norm.data <- norm(acomp(data))
# Compute Shannon Information of each of these points
shannon <- function(x){
# x is a vector summing to 1
return(-rowSums(x*log(x)))
}
shannon.info <- shannon(data)
### Now that the computation is done start on the Plotting ###
###
# Create a function to generate a continuous color palette
# Blue is low red is high
rbPal <- colorRampPalette(c('blue','red'))
# This adds a column of color values based on the norm/info
norm.color <- rbPal(30)[cut(norm.data,breaks=30)]
shannon.color <- rbPal(30)[cut(shannon.info,breaks=30)]
### Now Plot the ternary diagrams
# Note this is how that evenlyspaced 3d grid of points was converted in to the simplex
plot(acomp(data),pch='.')
plot(acomp(data),col=shannon.color)
title(main='Shannon Information', sub='Note: Red is High, Blue is Low')
plot(acomp(data), col=norm.color)
title(main='Aitchison Norm / e-information', sub='Note: Red is High, Blue is Low')
# plot(acomp(c(1,1,1)),pch=19,col='yellow',add=TRUE) # Plot neutral element
# for (i in seq(.1,20,by=.1)){
#   plot(acomp(c(i,1,1)),col='yellow',add=TRUE)
# }
# What this shows is that 1/e-information is like a special type of alpha diversity,
#
### 2 species held at a constant ratio, another varying - plot as a
### function of (log2) changes of that changing species.
## Intuitively I want the measure of alpha diversity to half every time
## that changing species doubles (if that species is dominant)
one.species.true <- seq(.1,20,by=.1) # True abundance of the one changing species
one.species.data <- acomp(cbind(one.species.true,1,1))
plot(one.species.true,1/norm(one.species.data),log='y')
##### Now I will do the same but for generalized true diversity
#####
# q : is the order of the diversity
# x : is a compositional vector (not acomp)
gen.tdiv <- function(x,q) {
return(rowSums(x**q)**(1/(1-q)))
}
##
gen <- gen.tdiv(data,20)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity of order 20', sub='Note: Red is High, Blue is Low')
gen <- gen.tdiv(data,.5)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity of order 0.5', sub='Note: Red is High, Blue is Low')
# What about the Geometric mean?
mean.acomp <- geometricmeanRow(acomp(data))
mean.color <- rbPal(30)[cut(mean.acomp,breaks=30)]
plot(acomp(data),col=mean.color)
title(main='Geometric Mean', sub='Note: Red is High, Blue is Low')
gen <- gen.tdiv(data,0)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity of order 0', sub='Note: Red is High, Blue is Low')
gen <- gen.tdiv(data,0.01)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity of order 0.01', sub='Note: Red is High, Blue is Low')
gen <- gen.tdiv(data,-1)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity of order -1', sub='Note: Red is High, Blue is Low')
gen <- gen.tdiv(data,-2)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity of order -2', sub='Note: Red is High, Blue is Low')
gen <- gen.tdiv(data,-10)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity of order -2', sub='Note: Red is High, Blue is Low')
gen <- gen.tdiv(data,-10)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity of order -10', sub='Note: Red is High, Blue is Low')
gen <- gen.tdiv(data,-10)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity of order -1', sub='Note: Red is High, Blue is Low')
gen <- gen.tdiv(data,-1)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity of order -1', sub='Note: Red is High, Blue is Low')
library(compositions)
### Compute Shannon Info and Aitchison Norm for a Grid of Compositions ###
###
# Create grid of points
data <- expand.grid(seq(.01,1,by=.03),seq(.01,1,by=.03),seq(.01,1,by=.03))
#data <- data+0.1 # What does it look like with a pseudocount.
data <- clo(data)
# First Compute the Aitchison norm for each of these points
norm.data <- norm(acomp(data))
# Compute Shannon Information of each of these points
shannon <- function(x){
# x is a vector summing to 1
return(-rowSums(x*log(x)))
}
shannon.info <- shannon(data)
### Now that the computation is done start on the Plotting ###
###
# Create a function to generate a continuous color palette
# Blue is low red is high
rbPal <- colorRampPalette(c('blue','red'))
# This adds a column of color values based on the norm/info
norm.color <- rbPal(30)[cut(norm.data,breaks=30)]
shannon.color <- rbPal(30)[cut(shannon.info,breaks=30)]
### Now Plot the ternary diagrams
# Note this is how that evenlyspaced 3d grid of points was converted in to the simplex
plot(acomp(data),pch='.')
plot(acomp(data),col=shannon.color)
title(main='Shannon Information', sub='Note: Red is High, Blue is Low')
plot(acomp(data), col=norm.color)
title(main='Aitchison Norm / e-information', sub='Note: Red is High, Blue is Low')
# plot(acomp(c(1,1,1)),pch=19,col='yellow',add=TRUE) # Plot neutral element
# for (i in seq(.1,20,by=.1)){
#   plot(acomp(c(i,1,1)),col='yellow',add=TRUE)
# }
# What this shows is that 1/e-information is like a special type of alpha diversity,
#
### 2 species held at a constant ratio, another varying - plot as a
### function of (log2) changes of that changing species.
## Intuitively I want the measure of alpha diversity to half every time
## that changing species doubles (if that species is dominant)
one.species.true <- seq(.1,20,by=.1) # True abundance of the one changing species
one.species.data <- acomp(cbind(one.species.true,1,1))
plot(one.species.true,1/norm(one.species.data),log='y')
##### Now I will do the same but for generalized true diversity
#####
# q : is the order of the diversity
# x : is a compositional vector (not acomp)
gen.tdiv <- function(x,q) {
return(rowSums(x**q)**(1/(1-q)))
}
##
gen <- gen.tdiv(data,20)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity of order 20', sub='Note: Red is High, Blue is Low')
gen <- gen.tdiv(data,.5)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity of order .5', sub='Note: Red is High, Blue is Low')
gen <- gen.tdiv(data,-1)
gen.color <- rbPal(30)[cut(gen,breaks=30)]
plot(acomp(data), col=gen.color)
title(main='Generalized diversity of order -1', sub='Note: Red is High, Blue is Low')
# What about the Geometric mean?
mean.acomp <- geometricmeanRow(acomp(data))
mean.color <- rbPal(30)[cut(mean.acomp,breaks=30)]
plot(acomp(data),col=mean.color)
title(main='Geometric Mean', sub='Note: Red is High, Blue is Low')
plot(acomp(data), col=norm.color)
title(main='Aitchison Norm / e-information', sub='Note: Red is High, Blue is Low')
plot(acomp(c(1,1,1)),pch=19,col='yellow',add=TRUE) # Plot neutral element
for (i in seq(.1,20,by=.1)){
plot(acomp(c(i,1,1)),col='yellow',add=TRUE)
}
load('~/Research/writing/phylocomp/reprod/hmp_analysis/ilr_hmp_gmc_blwsqrt.RData')
load('~/Research/writing/phylocomp/reprod/hmp_analysis/ilr_hmp_gmc_blwsqrt.RData')
library(phyloseq)
?distance
library(phyloseq)
data("enterotype")
enterotype
rm(enterotype)
.1
.1 == .3/3
.3/3
.Machine
.Machine
library(philr)
?plot_balance
matrix(c(1,3,4,4,5,6,6,7,8),ncol=3)
library(compositions)
acomp(matrix(c(1,3,4,4,5,6,6,7,8),ncol=3))
df  <- acomp(matrix(c(1,3,4,4,5,6,6,7,8),ncol=3))
df.acomp  <- df
df  <- matrix(c(1,3,4,4,5,6,6,7,8),ncol=3)
log(df)
log(df.acomp)
library(ggtree)
ggtree((2:0.0022,(1:0.0023,(3:0.0431,(4:0.0803,(((10:0.0054,11:0.0049):0.3099,(7:0.3465,(8:0.2897,9:0.2819):0.1351):0.0311):0.1694,(5:0.0545,6:0.0455):0.1155):0.0868):0.0457):0.0315):0);)
read.tree(text='(2:0.0022,(1:0.0023,(3:0.0431,(4:0.0803,(((10:0.0054,11:0.0049):0.3099,(7:0.3465,(8:0.2897,9:0.2819):0.1351):0.0311):0.1694,(5:0.0545,6:0.0455):0.1155):0.0868):0.0457):0.0315):0);')
tr  <- read.tree(text='(2:0.0022,(1:0.0023,(3:0.0431,(4:0.0803,(((10:0.0054,11:0.0049):0.3099,(7:0.3465,(8:0.2897,9:0.2819):0.1351):0.0311):0.1694,(5:0.0545,6:0.0455):0.1155):0.0868):0.0457):0.0315):0);')
ggtree(tr)
ggtree(tr) + tip_labels()
ggtree(tr) + geom_tiplab()
?ggtree
ggtree(tr, layout='unrooted') + geom_tiplab()
ggtree(tr, layout='circular') + geom_tiplab()
library(phangorn)
?read.phyDat
read.phyDat('~/Dropbox/Duke/ComputationalGenomics/Problem Set 7/CoV.aligned.fasta')
read.phyDat('~/Dropbox/Duke/ComputationalGenomics/Problem Set 7/CoV.aligned.fasta', format='fasta')
read.phyDat('~/Dropbox/Duke/ComputationalGenomics/Problem Set 7/CoV.aligned.fasta', format='fasta', type='DNA')
?read.dna
?read.FASTA
read.FASTA('~/Dropbox/Duke/ComputationalGenomics/Problem Set 7/CoV.aligned.fasta')
seq  <- read.FASTA('~/Dropbox/Duke/ComputationalGenomics/Problem Set 7/CoV.aligned.fasta')
?dist.ml
dist.hamming(seq)
as.phyDat(seq)
seq
labels(seq) <- 1:11
label(seq)
methods(seq)
names(seq)  <- 1:11
as.phyDat(seq)
dm  <- matrix(c(0,0.3,0.4,0.5,))
dm  <- matrix(c(0,0.3,0.4,0.5,0,0,0.5,0.6,0,0,0,0.9,0,0,0,0),ncol=4)
dm
dm  <- matrix(c(0,0.3,0.4,0.5,0,0,0.5,0.6,0,0,0,0.9,0,0,0,0),ncol=4, byrow = T)
dm
dm  <- as.dist(dm)
dm
dm  <- matrix(c(0,0.3,0.4,0.5,0,0,0.5,0.6,0,0,0,0.9,0,0,0,0),ncol=4, byrow = T)
dm  <- as.dist(t(dm))
dm
NJ(dm)
print(NJ(dm))
plot(NJ(dm))
plot.phylo(NJ(dm),type = 'unrooted')
plot.phylo(upgma(dm))
plot.phylo(upgma(dm),use.edge.length = T)
plot.phylo(NJ(dm),type = 'unrooted', use.edge.length = T)
?plot.phylo
dm.nj  <- NJ(dm)
dm.nj
tree  <- dm.nj
X<-tree$edge # store tree$edge in a matri# replace all node numbers for tips with their labels
> X[X[,2]%in%1:length(tree$tip),2]<-
tree$tip[X[X[,2]%in%1:length(tree$tip),2]]
> # substitute the names of tree$edge.length for the rows of X
> names(tree$edge.length)<-paste(X[,1],X[,2],sep=",")
> round(tree$edge.length,2)
11,12  12,t9  12,13  13,t4  13,t5  11,14  14,15  15,t2  15,16
0.20   0.36   0.36   0.69   0.54   0.71   0.54   0.75   0.42
16,t10  16,17  17,t8  17,t7  14,18  18,t6  18,19  19,t3  19,t1
0.17   0.77   0.88   0.55   0.28   0.49   0.93   0.35   0.95
> plot(tree,no.margin=T)
> edgelabels(round(tree$edge.length,2))
> nodelabels()
X<-tree$edge # store tree$edge in a matrix
X[X[,2]%in%1:length(tree$tip),2]<-
tree$tip[X[X[,2]%in%1:length(tree$tip),2]]
names(tree$edge.length)<-paste(X[,1],X[,2],sep=",")
round(tree$edge.length,2)
plot(tree,no.margin=T)
plot(tree,no.margin=T, type='unrooted')
edgelabels(round(tree$edge.length,2))
dm
dm  <- matrix(c(0,0.3,0.6,0.5,0,0,0.5,0.6,0,0,0,0.9,0,0,0,0),ncol=4, byrow = T)
dm  <- as.dist(t(dm))
dm
dm.nj  <- NJ(dm)
tree  <- dm.nj
plot(tree, type='unrooted')
X<-tree$edge # store tree$edge in a matrix
X[X[,2]%in%1:length(tree$tip),2]<-
tree$tip[X[X[,2]%in%1:length(tree$tip),2]]
names(tree$edge.length)<-paste(X[,1],X[,2],sep=",")
round(tree$edge.length,2)
plot(tree,no.margin=T, type='unrooted')
edgelabels(round(tree$edge.length,2))
library(ape)
library(ggtree)
tr <- ape::rtree(50)
tr <-
tr <- rtree(50)
tr <- rtree(50)
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
x <- runif(n-1)
p <- ggtree(tr)
p
df <- data.frame(coord=tr$node.label, x=runif(n-1))
df
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, x=runif(n-1))
p <- ggtree(tr) %<+% df
library(ape)
library(ggtree)
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, x=runif(n-1))
p <- ggtree(tr) %<+% df
p + geom_nodepoint(alpha=0.8, aes=(size=x, color='green'))
library(ape)
library(ggtree)
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, x=runif(n-1))
p <- ggtree(tr) %<+% df
p + geom_nodepoint(alpha=0.8, aes(size=x, color='green'))
p$data
p + geom_nodepoint(color='green', alpha=0.8, aes(size=x))
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, x=runif(n-1))
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='green', alpha=0.8, aes(size=x))
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, var=runif(n-1))
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='green', alpha=0.8, aes(size=x))
?rexp
?rchisq
plot(density(rchisq(49, 20)))
plot(density(rchisq(49, 10)))
plot(density(rchisq(49, 8)))
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, var=runif(n-1))
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='green', alpha=0.8, aes(size=x))
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, var=runif(n-1)*5)
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='green', alpha=0.8, aes(size=x))
?rexp
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, var=exp(n-1)*5)
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='green', alpha=0.8, aes(size=x))
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, var=exp(n-1)*5)
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='green', alpha=0.8, aes(size=x))
dev.off()
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, var=exp(n-1)*5)
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='green', alpha=0.8, aes(size=x))
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, var=exp(n-1, 5)*5)
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='green', alpha=0.8, aes(size=x))
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, var=exp(n-1, 10)*5)
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='green', alpha=0.8, aes(size=x))
# Gen. random tree and for each internal node
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, var=rexp(n-1, 10)*5)
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='green', alpha=0.8, aes(size=x))
rexp(n-1,10)
# Gen. random tree and for each internal node draw random
# positive value to associate with it.
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, var=rexp(n-1, 10)*5)
# The dataframe I created above has to have a particular format:
# First column must be the names of the internal nodes and then any subsequent columns
# are the values to attach to those nodes
# ggtree uses the %<+% operator to associate data to the tree
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='green', alpha=0.8, aes(size=var))
# Gen. random tree and for each internal node draw random
# positive value to associate with it.
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, var=rexp(n-1, 10)*5)
# The dataframe I created above has to have a particular format:
# First column must be the names of the internal nodes and then any subsequent columns
# are the values to attach to those nodes
# ggtree uses the %<+% operator to associate data to the tree
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='green', alpha=0.8, aes(size=var))
# Gen. random tree and for each internal node draw random
# positive value to associate with it.
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, var=rexp(n-1, 10)*5)
# The dataframe I created above has to have a particular format:
# First column must be the names of the internal nodes and then any subsequent columns
# are the values to attach to those nodes
# ggtree uses the %<+% operator to associate data to the tree
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='darkgreen', alpha=0.8, aes(size=var))
# Gen. random tree and for each internal node draw random
# positive value to associate with it.
n <- 50 # number of leaves
tr <- rtree(n)
tr <- makeNodeLabel(tr, method='number', prefix='n')
df <- data.frame(coord=tr$node.label, var=rexp(n-1, 10)*5)
# The dataframe I created above has to have a particular format:
# First column must be the names of the internal nodes and then any subsequent columns
# are the values to attach to those nodes
# ggtree uses the %<+% operator to associate data to the tree
p <- ggtree(tr) %<+% df
p + geom_nodepoint(color='darkgreen', alpha=0.7, aes(size=var))
devtools::install_github("GuangchuangYu/ggtree")
install.packages("caper")
install.packages("picante")
source("https://bioconductor.org/biocLite.R")
biocLite("dada2")
library(ape)
tre <- "((x1,x2),x3)"
tree <- read.tree(tre)
?read.tree
tree <- read.tree(text=tre)
tree
plot(tree)
tre <- "((x1,x2),x3);"
tree <- read.tree(text=tre)
tree
plot(tree)
tre <- "((x1,x2)n1,x3);"
tree <- read.tree(text=tre)
plot(tree)
nodelabels()
tree
edgelabels()
nodelabels()
?plot.tree
?plot.phylo
plot(tree, show.node.label = T)
tre <- "((x1,x2)n2,x3)n1;"
tree <- read.tree(text=tre)
plot(tree, show.node.label = T)
plot(tree, show.node.label = T, rotate.tree=90)
plot(tree, show.node.label = T, rotate.tree=90)
plot(tree, show.node.label = T, direction='downwards')
plot(tree, show.node.label = T, direction='downwards', edge.width=2)
nodelabels(c('n1','n2'))
plot(tree, show.node.label = T, direction='downwards', edge.width=2, srt=90)
ggtree::ggtree(tree)
ggtree::ggtree(tree) + ggtree::geom_label2(label=label)
ggtree::ggtree(tree) + ggtree::geom_label2(aes(label=label))
ggtree::ggtree(tree) + ggtree::geom_label2(ggtree::aes(label=label))
library(ggtree)
tre <- "((x1,x2)n2,x3)n1;"
tree <- read.tree(text=tre)
ggtree(tree) + geom_label2()
ggtree(tree, aes(label=label)) + geom_label2()
tre <- "((x[1],x2)n2,x3)n1;"
tree <- read.tree(text=tre)
ggtree(tree, aes(label=label), gg) + geom_label2()
library(ape)
library(ggtree)
setwd('~/Research/writing/phylocomp/decompositions/hmp/update_taxonomy_and_tax2tree/')
source('tax2tree.R')
load('../HMP_norarify.RData')
newtax.fp <- 'taxonomy_results/rep_set_v35_phiselected_tax_assignments.txt'
tr  <- tax2tree(phy_tree(HMP), newtax.fp)
tr
