Full examples for standard ordination techniques applied to phyloseq data, based on the phyloseq ordination tutorial. For handy wrappers for some common ordination tasks in microbiome analysis, see landscaping examples
Load example data:
library(microbiome)
library(phyloseq)
library(ggplot2)
data(dietswap)
pseq <- dietswap
# Convert to compositional data
pseq.rel <- microbiome::transform(pseq, "compositional")
# Pick core taxa with with the given prevalence and detection limits
pseq.core <- core(pseq.rel, detection = .1/100, prevalence = 90/100)
# Use relative abundances for the core
pseq.core <- microbiome::transform(pseq.core, "compositional")
Project the samples with the given method and dissimilarity measure.
# Ordinate the data
set.seed(4235421)
# proj <- get_ordination(pseq, "MDS", "bray")
ord <- ordinate(pseq, "MDS", "bray")
plot_ordination(pseq, ord, color = "nationality") +
geom_point(size = 5)
# With samples
pseq.cca <- ordinate(pseq, "CCA")
p <- plot_ordination(pseq, pseq.cca,
type = "samples", color = "nationality")
p <- p + geom_point(size = 4)
print(p)
# With taxa:
p <- plot_ordination(pseq, pseq.cca,
type = "taxa", color = "Phylum")
p <- p + geom_point(size = 4)
print(p)
plot_ordination(pseq, pseq.cca,
type = "split", shape = "nationality",
color = "Phylum", label = "nationality")
t-SNE is a popular new ordination technique.
library(vegan)
library(microbiome)
library(Rtsne) # Load package
set.seed(423542)
method <- "tsne"
trans <- "hellinger"
distance <- "euclidean"
# Distance matrix for samples
ps <- microbiome::transform(pseq, trans)
# Calculate sample similarities
dm <- vegdist(otu_table(ps), distance)
# Run TSNE
tsne_out <- Rtsne(dm, dims = 2)
proj <- tsne_out$Y
rownames(proj) <- rownames(otu_table(ps))
library(ggplot2)
p <- plot_landscape(proj, legend = T, size = 1)
print(p)