Learn R Programming

phyloseq (version 1.12.2)

JSD: Calculate the Jensen-Shannon Divergence (distance)

Description

This is a phyloseq-specific implementation of the Jensen-Shannon Divergence for comparing pairs of microbial communities (samples) in an experiment. The expectation is that you have many samples (say. more than two) and you want a distance matrix on which will perform further analysis. JSD is intended to be ``wrapped'' by the more general distance function in phyloseq, and it can be invoked using "jsd" as the argument to the method parameter of distance.

Usage

JSD(physeq, parallel=FALSE)

Arguments

physeq
(Required). phyloseq-class. The phyloseq data on which to compute the pairwise sample distance matrix.
parallel
(Optional). Logical. Default FALSE. Should the calculation be run using parallel processors? Note that this only actually runs in parallel if you have registered a parallel ``backend'' prior to calling this function. Further details are provided in the documentation for UniFrac.

Value

An object of class ``dist'' suitable for certain ordination methods and other distance-based analyses. See distance.

Details

One of the motivations for providing JSD in phyloseq was its recent use in the analysis of the enterotype dataset.

References

Jensen-Shannon Divergence and Hilbert space embedding. Bent Fuglede and Flemming Topsoe University of Copenhagen, Department of Mathematics http://www.math.ku.dk/~topsoe/ISIT2004JSD.pdf

See Also

distance

enterotype

http://en.wikipedia.org/wiki/Jensen-Shannon_divergence

Examples

Run this code
# library(doParallel)  # Do this and next line only if you have multi-cores
# registerDoParallel(cores=6)
# data(enterotype)
# # ent.jsd <- JSD(enterotype, TRUE) # internal only
# ent.jsd <- distance(enterotype, "jsd", parallel=TRUE)
# ent.PCoA <- ordinate(enterotype, "PCoA", ent.jsd) # Perform principle coordinate analysis
# p <- plot_ordination(enterotype, ent.PCoA, color="Enterotype", shape="SeqTech")
# (p <- p + geom_point(size=5, alpha=0.5))

Run the code above in your browser using DataLab