[med-svn] [r-bioc-phyloseq] 02/06: New upstream version 1.22.3

Andreas Tille tille at debian.org
Sat Nov 11 07:43:01 UTC 2017


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository r-bioc-phyloseq.

commit 47aabbd54d41044209a2789726724ffe79387256
Author: Andreas Tille <tille at debian.org>
Date:   Sat Nov 11 08:33:03 2017 +0100

    New upstream version 1.22.3
---
 .travis.yml                           |  15 +++
 DESCRIPTION                           |  28 ++---
 NAMESPACE                             |   2 +
 R/distance-methods.R                  |   7 +-
 R/phylo-class.R                       |   9 --
 R/plot-methods.R                      |  28 ++---
 build/vignette.rds                    | Bin 347 -> 349 bytes
 inst/doc/phyloseq-FAQ.R               |   8 +-
 inst/doc/phyloseq-FAQ.html            | 147 ++++++++++++++++++----
 inst/doc/phyloseq-analysis.R          |  74 +++++------
 inst/doc/phyloseq-analysis.html       | 230 ++++++++++++++++++++++++----------
 inst/doc/phyloseq-basics.R            |  50 ++++----
 inst/doc/phyloseq-basics.html         | 127 ++++++++++++++++---
 inst/doc/phyloseq-mixture-models.R    |  24 ++--
 inst/doc/phyloseq-mixture-models.html | 137 ++++++++++++++++----
 man/DPCoA.Rd                          |  35 +++---
 man/JSD.Rd                            |   9 +-
 man/UniFrac-methods.Rd                |   1 -
 man/access.Rd                         |   1 -
 man/assign-otu_table.Rd               |   5 +-
 man/assign-phy_tree.Rd                |   3 +-
 man/assign-sample_data.Rd             |   3 +-
 man/assign-sample_names.Rd            |   5 +-
 man/assign-tax_table.Rd               |   7 +-
 man/assign-taxa_are_rows.Rd           |   3 +-
 man/assign-taxa_names.Rd              |   7 +-
 man/build_tax_table.Rd                |   1 -
 man/capscale-phyloseq-methods.Rd      |   3 +-
 man/cca-rda-phyloseq-methods.Rd       |   5 +-
 man/chunkReOrder.Rd                   |   1 -
 man/data-GlobalPatterns.Rd            |   9 +-
 man/data-enterotype.Rd                |   7 +-
 man/data-esophagus.Rd                 |   7 +-
 man/data-soilrep.Rd                   |   7 +-
 man/decorana.Rd                       |   1 -
 man/dist-class.Rd                     |   1 -
 man/distance.Rd                       |   3 +-
 man/distanceMethodList.Rd             |   1 -
 man/envHash2otu_table.Rd              |   1 -
 man/estimate_richness.Rd              |   1 -
 man/export_env_file.Rd                |   1 -
 man/export_mothur_dist.Rd             |   1 -
 man/extract-methods.Rd                |   3 +-
 man/filter_taxa.Rd                    |   1 -
 man/filterfun_sample.Rd               |   1 -
 man/fix_phylo.Rd                      |   1 -
 man/gapstat_ord.Rd                    |   1 -
 man/genefilter_sample-methods.Rd      |   1 -
 man/get.component.classes.Rd          |   1 -
 man/get_sample-methods.Rd             |   1 -
 man/get_taxa-methods.Rd               |   1 -
 man/get_taxa_unique.Rd                |   1 -
 man/get_variable.Rd                   |   1 -
 man/getslots.phyloseq.Rd              |   1 -
 man/import.Rd                         |   1 -
 man/import_RDP_cluster.Rd             |   1 -
 man/import_RDP_otu.Rd                 |   1 -
 man/import_biom.Rd                    |   1 -
 man/import_env_file.Rd                |   1 -
 man/import_mothur.Rd                  |   1 -
 man/import_mothur_constaxonomy.Rd     |   1 -
 man/import_mothur_dist.Rd             |   1 -
 man/import_mothur_groups.Rd           |   1 -
 man/import_mothur_otu_table.Rd        |   1 -
 man/import_mothur_otulist.Rd          |   1 -
 man/import_mothur_shared.Rd           |   1 -
 man/import_pyrotagger_tab.Rd          |   1 -
 man/import_qiime.Rd                   |   1 -
 man/import_qiime_otu_tax.Rd           |   1 -
 man/import_qiime_sample_data.Rd       |   1 -
 man/import_uparse.Rd                  |   1 -
 man/import_usearch_uc.Rd              |   1 -
 man/index_reorder.Rd                  |   1 -
 man/intersect_taxa.Rd                 |   1 -
 man/make_network.Rd                   |   1 -
 man/merge_phyloseq.Rd                 |   1 -
 man/merge_phyloseq_pair-methods.Rd    |   7 +-
 man/merge_samples-methods.Rd          |   3 +-
 man/merge_taxa-methods.Rd             |   7 +-
 man/metaMDS.Rd                        |   1 -
 man/microbio_me_qiime.Rd              |   1 -
 man/mt-methods.Rd                     |   9 +-
 man/nodeplotblank.Rd                  |   1 -
 man/nodeplotboot.Rd                   |   1 -
 man/nodeplotdefault.Rd                |   1 -
 man/nsamples-methods.Rd               |   3 +-
 man/ntaxa-methods.Rd                  |   7 +-
 man/ordinate.Rd                       |   1 -
 man/otu_table-class.Rd                |   1 -
 man/otu_table-methods.Rd              |   9 +-
 man/parseTaxonomy-functions.Rd        |   3 +-
 man/pcoa.Rd                           |   1 -
 man/phy_tree-methods.Rd               |   1 -
 man/phylo-class.Rd                    |   1 -
 man/phylo.Rd                          |   1 -
 man/phyloseq-class.Rd                 |   1 -
 man/phyloseq-deprecated.Rd            |  59 +++++----
 man/phyloseq-package.Rd               |   7 +-
 man/phyloseq.Rd                       |   1 -
 man/phyloseq_to_deseq2.Rd             |   1 -
 man/phyloseq_to_metagenomeSeq.Rd      |   1 -
 man/plot_bar.Rd                       |   1 -
 man/plot_clusgap.Rd                   |   1 -
 man/plot_heatmap.Rd                   |   1 -
 man/plot_net.Rd                       |   1 -
 man/plot_network.Rd                   |   1 -
 man/plot_ordination.Rd                |   1 -
 man/plot_phyloseq-methods.Rd          |   1 -
 man/plot_richness.Rd                  |   1 -
 man/plot_scree.Rd                     |   1 -
 man/plot_tree.Rd                      |   1 -
 man/prune_samples-methods.Rd          |   3 +-
 man/prune_taxa-methods.Rd             |   9 +-
 man/psmelt.Rd                         |   1 -
 man/rank_names.Rd                     |   1 -
 man/rarefy_even_depth.Rd              |   1 -
 man/read_tree.Rd                      |   1 -
 man/read_tree_greengenes.Rd           |   1 -
 man/reconcile_categories.Rd           |   1 -
 man/refseq-methods.Rd                 |   1 -
 man/rm_outlierf.Rd                    |   1 -
 man/sample_data-class.Rd              |   1 -
 man/sample_data-methods.Rd            |   1 -
 man/sample_names-methods.Rd           |   3 +-
 man/sample_sums.Rd                    |   1 -
 man/sample_variables.Rd               |   1 -
 man/show-methods.Rd                   |   3 +-
 man/show_mothur_cutoffs.Rd            |   1 -
 man/splat.phyloseq.objects.Rd         |   1 -
 man/subset_ord_plot.Rd                |   1 -
 man/subset_samples-methods.Rd         |   1 -
 man/subset_taxa-methods.Rd            |   1 -
 man/tax_glom.Rd                       |   1 -
 man/tax_table-methods.Rd              |   3 +-
 man/taxa_are_rows-methods.Rd          |   1 -
 man/taxa_names-methods.Rd             |   9 +-
 man/taxa_sums.Rd                      |   1 -
 man/taxonomyTable-class.Rd            |   1 -
 man/threshrank.Rd                     |   1 -
 man/threshrankfun.Rd                  |   1 -
 man/tip_glom.Rd                       |   1 -
 man/topf.Rd                           |   1 -
 man/topk.Rd                           |   1 -
 man/topp.Rd                           |   1 -
 man/transformcounts.Rd                |   4 +-
 man/transpose-methods.Rd              |   1 -
 man/tree_layout.Rd                    |   1 -
 tests/testthat/test-IO.R              |   5 +-
 148 files changed, 753 insertions(+), 505 deletions(-)

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..d29303d
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,15 @@
+# Adapted from sample .travis.yml for R projects
+
+language: r
+bioc_required: true
+warnings_are_errors: true
+sudo: required
+
+env:
+ global:
+   - CRAN: http://cran.rstudio.com
+
+notifications:
+  email:
+    on_success: change
+    on_failure: change
diff --git a/DESCRIPTION b/DESCRIPTION
index f96b137..dc517fa 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,6 +1,6 @@
 Package: phyloseq
-Version: 1.20.0
-Date: 2016-12-29
+Version: 1.22.3
+Date: 2017-11-04
 Title: Handling and analysis of high-throughput microbiome census data
 Description: phyloseq provides a set of classes and tools
     to facilitate the import, storage, analysis, and
@@ -10,16 +10,16 @@ Author: Paul J. McMurdie <joey711 at gmail.com>,
     Susan Holmes <susan at stat.stanford.edu>, with
     contributions from Gregory Jordan and Scott Chamberlain
 License: AGPL-3
-Imports: BiocGenerics (>= 0.18.0), ade4 (>= 1.7.4), ape (>= 3.4),
-        biomformat (>= 1.0.0), Biostrings (>= 2.40.0), cluster (>=
-        2.0.4), data.table (>= 1.9.6), foreach (>= 1.4.3), ggplot2 (>=
-        2.1.0), igraph (>= 1.0.1), methods (>= 3.3.0), multtest (>=
-        2.28.0), plyr (>= 1.8.3), reshape2 (>= 1.4.1), scales (>=
-        0.4.0), vegan (>= 2.3.5), Biobase
-Depends: R (>= 3.3.0)
-Suggests: BiocStyle (>= 2.0.0), DESeq2 (>= 1.12.0), genefilter (>=
-        1.54), testthat (>= 1.0.2), knitr (>= 1.13), metagenomeSeq (>=
-        1.14), rmarkdown (>= 0.9.6)
+Imports: ade4 (>= 1.7.4), ape (>= 5.0), Biobase (>= 2.36.2),
+        BiocGenerics (>= 0.22.0), biomformat (>= 1.0.0), Biostrings (>=
+        2.40.0), cluster (>= 2.0.4), data.table (>= 1.10.4), foreach
+        (>= 1.4.3), ggplot2 (>= 2.1.0), igraph (>= 1.0.1), methods (>=
+        3.3.0), multtest (>= 2.28.0), plyr (>= 1.8.3), reshape2 (>=
+        1.4.1), scales (>= 0.4.0), vegan (>= 2.4)
+Depends: R (>= 3.4.0)
+Suggests: BiocStyle (>= 2.4), DESeq2 (>= 1.16.1), genefilter (>= 1.58),
+        knitr (>= 1.16), metagenomeSeq (>= 1.14), rmarkdown (>= 1.6),
+        testthat (>= 1.0.2)
 VignetteBuilder: knitr
 Enhances: doParallel (>= 1.0.10)
 biocViews: Sequencing, Microbiome, Metagenomics, Clustering,
@@ -36,6 +36,6 @@ Collate: 'allClasses.R' 'allPackage.R' 'allData.R' 'as-methods.R'
         'network-methods.R' 'distance-methods.R'
         'deprecated_functions.R' 'extend_DESeq2.R' 'phylo-class.R'
         'extend_metagenomeSeq.R'
-RoxygenNote: 5.0.1
+RoxygenNote: 6.0.1
 NeedsCompilation: no
-Packaged: 2017-04-24 23:14:31 UTC; biocbuild
+Packaged: 2017-11-06 00:01:50 UTC; biocbuild
diff --git a/NAMESPACE b/NAMESPACE
index 713e340..fbe34e5 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -177,6 +177,8 @@ importFrom(ape,drop.tip)
 importFrom(ape,is.rooted)
 importFrom(ape,ladderize)
 importFrom(ape,node.depth)
+importFrom(ape,node.depth.edgelength)
+importFrom(ape,node.height)
 importFrom(ape,pcoa)
 importFrom(ape,prop.part)
 importFrom(ape,read.nexus)
diff --git a/R/distance-methods.R b/R/distance-methods.R
index 99b81fc..79664ae 100644
--- a/R/distance-methods.R
+++ b/R/distance-methods.R
@@ -559,6 +559,7 @@ setMethod("UniFrac", "phyloseq", function(physeq, weighted=FALSE, normalized=TRU
 #' @importFrom ape prop.part
 #' @importFrom ape reorder.phylo
 #' @importFrom ape node.depth
+#' @importFrom ape node.depth.edgelength
 #' @keywords internal
 #' @import foreach
 fastUniFrac <- function(physeq, weighted=FALSE, normalized=TRUE, parallel=FALSE){
@@ -631,11 +632,7 @@ fastUniFrac <- function(physeq, weighted=FALSE, normalized=TRUE, parallel=FALSE)
 	  z = reorder.phylo(tree, order="postorder")
 	  # Call phyloseq-internal function that in-turn calls ape's internal
 	  # horizontal position function, in C, using the re-ordered phylo object, `z`
-	  tipAges = ape_node_depth_edge_length(Ntip = length(tree$tip.label),
-	                                       Nnode = tree$Nnode, 
-	                                       edge = z$edge, 
-	                                       Nedge = nrow(tree$edge)[1],
-	                                       edge.length = z$edge.length)
+	  tipAges = node.depth.edgelength(tree)
 	  # Keep only the tips, and add the tip labels in case `z` order differs from `tree`
 	  tipAges <- tipAges[1:length(tree$tip.label)]
 	  names(tipAges) <- z$tip.label	
diff --git a/R/phylo-class.R b/R/phylo-class.R
index ef8e7af..82af9c3 100644
--- a/R/phylo-class.R
+++ b/R/phylo-class.R
@@ -15,12 +15,3 @@ setMethod("fix_phylo", "phylo", function(tree){
   return(tree)
 })
 ################################################################################
-# Define horizontal position / node-ages by depth to root
-# For instance, `xx` in `plot_tree` and `tipAges` in `fastUniFrac`
-#' @keywords internal
-ape_node_depth_edge_length <- function(Ntip, Nnode, edge, Nedge, edge.length){
-  .C(ape:::node_depth_edgelength, PACKAGE="ape", as.integer(Ntip),
-     as.integer(Nnode), as.integer(edge[, 1]),
-     as.integer(edge[, 2]), as.integer(Nedge),
-     as.double(edge.length), double(Ntip + Nnode))[[7]]
-}
\ No newline at end of file
diff --git a/R/plot-methods.R b/R/plot-methods.R
index 191d1b5..1e79831 100644
--- a/R/plot-methods.R
+++ b/R/plot-methods.R
@@ -1130,7 +1130,7 @@ plot_ordination = function(physeq, ordination, type="samples", axes=1:2,
   }
   # Add text labels to points
   if( !is.null(label) ){
-    label_map <- aes_string(x=x, y=y, label=label, na.rm=TRUE)
+    label_map <- aes_string(x=x, y=y, label=label)
     p = p + geom_text(label_map, data=rm.na.phyloseq(DF, label),
                       size=2, vjust=1.5, na.rm=TRUE)
   }
@@ -1695,6 +1695,8 @@ plot_bar = function(physeq, x="Sample", y="Abundance", fill=NULL,
 #' 
 #' @importFrom ape ladderize
 #' @importFrom ape reorder.phylo
+#' @importFrom ape node.depth.edgelength
+#' @importFrom ape node.height
 #' 
 #' @importFrom data.table data.table
 #' @importFrom data.table setkey
@@ -1740,29 +1742,13 @@ tree_layout = function(phy, ladderize=FALSE){
   # Descending order of left-hand side of edge (the ancestor to the node)
   z = reorder.phylo(phy, order="postorder")
   # Initialize some characteristics of the tree.
-  Nedge = nrow(phy$edge)[1]
-  Nnode = phy$Nnode
   Ntip = length(phy$tip.label)
   ROOT = Ntip + 1
-  TIPS = phy$edge[(phy$edge[, 2] <= Ntip), 2]
-  NODES = (ROOT):(Ntip + Nnode)
   nodelabels = phy$node.label
-  # Call phyloseq-internal function that in-turn calls ape's internal
-  # horizontal position function, in C, using the re-ordered phylo object.
-  xx = ape_node_depth_edge_length(Ntip, Nnode, z$edge, Nedge, z$edge.length)
-  # Initialize `yy`, before passing to ape internal function in C.
-  yy <- numeric(Ntip + Nnode)
-  yy[TIPS] <- 1:Ntip
-  # Define the ape_node_height wrapping function
-  ape_node_height <- function(Ntip, Nnode, edge, Nedge, yy){
-    .C(ape:::node_height, PACKAGE="ape",
-       as.integer(Ntip), as.integer(Nnode),
-       as.integer(edge[, 1]), as.integer(edge[, 2]),
-       as.integer(Nedge), as.double(yy))[[6]]
-  }
-  # The call in ape
-  #yy <- .nodeHeight(Ntip, Nnode, z$edge, Nedge, yy)
-  yy <- ape_node_height(Ntip, Nnode, z$edge, Nedge, yy)
+  # Horizontal positions
+  xx = node.depth.edgelength(phy)
+  # vertical positions
+  yy = node.height(phy = phy, clado.style = FALSE)
   # Initialize an edge data.table 
   # Don't set key, order matters
   edgeDT = data.table(phy$edge, edge.length=phy$edge.length, OTU=NA_character_)
diff --git a/build/vignette.rds b/build/vignette.rds
index ba73ddd..012117b 100644
Binary files a/build/vignette.rds and b/build/vignette.rds differ
diff --git a/inst/doc/phyloseq-FAQ.R b/inst/doc/phyloseq-FAQ.R
index fb1d445..4d9d6f8 100644
--- a/inst/doc/phyloseq-FAQ.R
+++ b/inst/doc/phyloseq-FAQ.R
@@ -1,13 +1,13 @@
-## ---- warning=FALSE, message=FALSE---------------------------------------
+## ---- warning=FALSE, message=FALSE-----------------------------------------
 library("phyloseq"); packageVersion("phyloseq")
 library("ggplot2"); packageVersion("ggplot2")
 theme_set(theme_bw())
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 data(esophagus)
 plot_tree(esophagus)
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 p1 = plot_tree(esophagus, color = "Sample")
 p1
 p1 + 
@@ -16,7 +16,7 @@ p1 +
            color = "orange",
            label = "my annotation")
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 data("esophagus")
 mdf = psmelt(esophagus)
 # Simple bar plot. See plot_bar() for more.
diff --git a/inst/doc/phyloseq-FAQ.html b/inst/doc/phyloseq-FAQ.html
index 00c9d22..652ad0c 100644
--- a/inst/doc/phyloseq-FAQ.html
+++ b/inst/doc/phyloseq-FAQ.html
@@ -4,23 +4,29 @@
 
 <head>
 
-<meta charset="utf-8">
+<meta charset="utf-8" />
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta name="generator" content="pandoc" />
 
+
 <meta name="author" content="Paul McMurdie and Susan Holmes" />
 
 
 <title>phyloseq Frequently Asked Questions (FAQ)</title>
 
+<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMS4zIHwgKGMpIDIwMDUsIDIwMTUgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dG [...]
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<link href="data:text/css;charset=utf-8,html%7Bfont%2Dfamily%3Asans%2Dserif%3B%2Dwebkit%2Dtext%2Dsize%2Dadjust%3A100%25%3B%2Dms%2Dtext%2Dsize%2Dadjust%3A100%25%7Dbody%7Bmargin%3A0%7Darticle%2Caside%2Cdetails%2Cfigcaption%2Cfigure%2Cfooter%2Cheader%2Chgroup%2Cmain%2Cmenu%2Cnav%2Csection%2Csummary%7Bdisplay%3Ablock%7Daudio%2Ccanvas%2Cprogress%2Cvideo%7Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Abaseline%7Daudio%3Anot%28%5Bcontrols%5D%29%7Bdisplay%3Anone%3Bheight%3A0%7D%5Bhidden%5D%2Ctem [...]
+<script src="data:application/x-javascript;base64,LyohCiAqIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqLwppZigidW5kZWZpbmVkIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Iik7K2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgYj1hLmZuLmpxdWVyeS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7aWYoYlswXTwyJiZiWzFdPDl8fDE9PWJbMF0mJjk9PWJbMV0mJmJbMl08MSl0aHJvdy [...]
+<script src="data:application/x-javascript;base64,LyoqCiogQHByZXNlcnZlIEhUTUw1IFNoaXYgMy43LjIgfCBAYWZhcmthcyBAamRhbHRvbiBAam9uX25lYWwgQHJlbSB8IE1JVC9HUEwyIExpY2Vuc2VkCiovCi8vIE9ubHkgcnVuIHRoaXMgY29kZSBpbiBJRSA4CmlmICghIXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJNU0lFIDgiKSkgewohZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KCJwIiksZD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGEuZG9jdW1lbnRFbGVtZW50O3JldHVybiBjLmlubmVySFRNTD0ieDxzdHlsZT4iK2IrIjwvc3R5bGU+IixkLm [...]
+<script src="data:application/x-javascript;base64,LyohIFJlc3BvbmQuanMgdjEuNC4yOiBtaW4vbWF4LXdpZHRoIG1lZGlhIHF1ZXJ5IHBvbHlmaWxsICogQ29weXJpZ2h0IDIwMTMgU2NvdHQgSmVobAogKiBMaWNlbnNlZCB1bmRlciBodHRwczovL2dpdGh1Yi5jb20vc2NvdHRqZWhsL1Jlc3BvbmQvYmxvYi9tYXN0ZXIvTElDRU5TRS1NSVQKICogICovCgovLyBPbmx5IHJ1biB0aGlzIGNvZGUgaW4gSUUgOAppZiAoISF3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiTVNJRSA4IikpIHsKIWZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjthLm1hdGNoTWVkaWE9YS5tYXRjaE1lZGlhfHxmdW5jdGlvbihhKXt2YXIgYixjPWEuZG [...]
+<script src="data:application/x-javascript;base64,CgovKioKICogalF1ZXJ5IFBsdWdpbjogU3RpY2t5IFRhYnMKICoKICogQGF1dGhvciBBaWRhbiBMaXN0ZXIgPGFpZGFuQHBocC5uZXQ+CiAqIGFkYXB0ZWQgYnkgUnViZW4gQXJzbGFuIHRvIGFjdGl2YXRlIHBhcmVudCB0YWJzIHRvbwogKiBodHRwOi8vd3d3LmFpZGFubGlzdGVyLmNvbS8yMDE0LzAzL3BlcnNpc3RpbmctdGhlLXRhYi1zdGF0ZS1pbi1ib290c3RyYXAvCiAqLwooZnVuY3Rpb24oJCkgewogICJ1c2Ugc3RyaWN0IjsKICAkLmZuLnJtYXJrZG93blN0aWNreVRhYnMgPSBmdW5jdGlvbigpIHsKICAgIHZhciBjb250ZXh0ID0gdGhpczsKICAgIC8vIFNob3cgdGhlIHRhYi [...]
 <link href="data:text/css;charset=utf-8,pre%20%2Eoperator%2C%0Apre%20%2Eparen%20%7B%0Acolor%3A%20rgb%28104%2C%20118%2C%20135%29%0A%7D%0Apre%20%2Eliteral%20%7B%0Acolor%3A%20%23990073%0A%7D%0Apre%20%2Enumber%20%7B%0Acolor%3A%20%23099%3B%0A%7D%0Apre%20%2Ecomment%20%7B%0Acolor%3A%20%23998%3B%0Afont%2Dstyle%3A%20italic%0A%7D%0Apre%20%2Ekeyword%20%7B%0Acolor%3A%20%23900%3B%0Afont%2Dweight%3A%20bold%0A%7D%0Apre%20%2Eidentifier%20%7B%0Acolor%3A%20rgb%280%2C%200%2C%200%29%3B%0A%7D%0Apre%20%2Estri [...]
 <script src="data:application/x-javascript;base64,dmFyIGhsanM9bmV3IGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbShwKXtyZXR1cm4gcC5yZXBsYWNlKC8mL2dtLCImYW1wOyIpLnJlcGxhY2UoLzwvZ20sIiZsdDsiKX1mdW5jdGlvbiBmKHIscSxwKXtyZXR1cm4gUmVnRXhwKHEsIm0iKyhyLmNJPyJpIjoiIikrKHA/ImciOiIiKSl9ZnVuY3Rpb24gYihyKXtmb3IodmFyIHA9MDtwPHIuY2hpbGROb2Rlcy5sZW5ndGg7cCsrKXt2YXIgcT1yLmNoaWxkTm9kZXNbcF07aWYocS5ub2RlTmFtZT09IkNPREUiKXtyZXR1cm4gcX1pZighKHEubm9kZVR5cGU9PTMmJnEubm9kZVZhbHVlLm1hdGNoKC9ccysvKSkpe2JyZWFrfX19ZnVuY3Rpb24gaCh0LH [...]
 
 <style type="text/css">code{white-space: pre;}</style>
 <style type="text/css">
-  pre:not([class]) {
-    background-color: white;
-  }
+
 </style>
 <script type="text/javascript">
 if (window.hljs && document.readyState && document.readyState === "complete") {
@@ -31,26 +37,85 @@ if (window.hljs && document.readyState && document.readyState === "complete") {
 </script>
 
 
-<link href="data:text/css;charset=utf-8,body%2C%20td%20%7B%0Afont%2Dfamily%3A%20sans%2Dserif%3B%0Abackground%2Dcolor%3A%20white%3B%0Afont%2Dsize%3A%2013px%3B%0A%7D%0Abody%20%7B%0Amax%2Dwidth%3A%20800px%3B%0Amargin%3A%200%20auto%3B%0Apadding%3A%201em%201em%202em%3B%0Aline%2Dheight%3A%2020px%3B%0A%7D%0A%0Adiv%23TOC%20li%20%7B%0Alist%2Dstyle%3Anone%3B%0Abackground%2Dimage%3Anone%3B%0Abackground%2Drepeat%3Anone%3B%0Abackground%2Dposition%3A0%3B%0A%7D%0A%0Ap%2C%20pre%20%7B%20margin%3A%200em%2 [...]
 
-<script type="text/javascript">
-document.addEventListener("DOMContentLoaded", function() {
-  var links = document.links;  
-  for (var i = 0, linksLength = links.length; i < linksLength; i++)
-    if(links[i].hostname != window.location.hostname)
-      links[i].target = '_blank';
-});
-</script>
+<style type="text/css">
+h1 {
+  font-size: 34px;
+}
+h1.title {
+  font-size: 38px;
+}
+h2 {
+  font-size: 30px;
+}
+h3 {
+  font-size: 24px;
+}
+h4 {
+  font-size: 18px;
+}
+h5 {
+  font-size: 16px;
+}
+h6 {
+  font-size: 12px;
+}
+.table th:not([align]) {
+  text-align: left;
+}
+</style>
+
+<link href="data:text/css;charset=utf-8,body%20%7B%0Amargin%3A%200px%20auto%3B%0Amax%2Dwidth%3A%201134px%3B%0Afont%2Dfamily%3A%20sans%2Dserif%3B%0Afont%2Dsize%3A%2010pt%3B%0A%7D%0A%0Adiv%23TOC%20ul%20%7B%0Apadding%3A%200px%200px%200px%2045px%3B%0Alist%2Dstyle%3A%20none%3B%0Abackground%2Dimage%3A%20none%3B%0Abackground%2Drepeat%3A%20none%3B%0Abackground%2Dposition%3A%200%3B%0Afont%2Dsize%3A%2010pt%3B%0Afont%2Dfamily%3A%20Helvetica%2C%20Arial%2C%20sans%2Dserif%3B%0A%7D%0Adiv%23TOC%20%3E%20 [...]
 
 </head>
 
 <body>
 
+<style type="text/css">
+.main-container {
+  max-width: 828px;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+img {
+  max-width:100%;
+  height: auto;
+}
+.tabbed-pane {
+  padding-top: 12px;
+}
+button.code-folding-btn:focus {
+  outline: none;
+}
+</style>
+
+
+
+<div class="container-fluid main-container">
+
+<!-- tabsets -->
+<script>
+$(document).ready(function () {
+  window.buildTabsets("TOC");
+});
+</script>
+
+<!-- code folding -->
+
+
+
+
+
+
+<div class="fluid-row" id="header">
+
+
+
+<h1 class="title toc-ignore">phyloseq Frequently Asked Questions (FAQ)</h1>
+<p class="author-name">Paul McMurdie and Susan Holmes</p>
+<h4 class="date"><em>Sun Nov 5 18:59:59 2017</em></h4>
 
-<div id="header">
-<h1 class="title">phyloseq Frequently Asked Questions (FAQ)</h1>
-<h4 class="author"><em>Paul McMurdie and Susan Holmes</em></h4>
-<h4 class="date"><em>Mon Apr 24 19:12:56 2017</em></h4>
 </div>
 
 <h1>Contents</h1>
@@ -94,7 +159,7 @@ document.addEventListener("DOMContentLoaded", function() {
 <p>For most issues <a href="https://github.com/joey711/phyloseq/issues">the phyloseq issues tracker</a> should suffice; but occasionally there are questions that are asked repeatedly enough that it becomes appropriate to canonize the answer here in this vignette. This is both (1) to help users find solutions more quickly, and (2) to mitigate redundancy on <a href="https://github.com/joey711/phyloseq/issues">the issues tracker</a>.</p>
 <p>All users are encouraged to perform a google search and review other questions/responses to both open and closed issues on <a href="https://github.com/joey711/phyloseq/issues">the phyloseq issues tracker</a> before seeking an active response by posting a new issue.</p>
 <pre class="r"><code>library("phyloseq"); packageVersion("phyloseq")</code></pre>
-<pre><code>## [1] '1.20.0'</code></pre>
+<pre><code>## [1] '1.22.3'</code></pre>
 <pre class="r"><code>library("ggplot2"); packageVersion("ggplot2")</code></pre>
 <pre><code>## [1] '2.2.1'</code></pre>
 <pre class="r"><code>theme_set(theme_bw())</code></pre>
@@ -156,18 +221,18 @@ document.addEventListener("DOMContentLoaded", function() {
 <p><strong>Every plot function in phyloseq returns a ggplot2 object</strong>. When these objects are “printed” to standard output in an R session, for instance,</p>
 <pre class="r"><code>data(esophagus)
 plot_tree(esophagus)</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAKgCAMAAABji+RHAAAC/VBMVEUAAAABAQECAgIDAwMEBAQFBQUHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUWFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJycoKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFiYmJjY2NkZGRlZ [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB14AAAUeCAAAAAD74sz6AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJb0ZGcwAAABUAAAAOABeyCGgAAAAJcEhZcwAAHYcAAB2HAY/l8WUAAAAHdElNRQfhCwYAAAaqFKl/AAAACXZwQWcAAAeAAAAFQAA4dxqxAABfS0lEQVR42u3dd4BcZaGH4Umj9y4KQgApFoSoKAKXEhVRuaJEuSqKqFiQZkNRQRQxICoWUFCsWAjYaKIoIAIqhiodQhMhQAidkLp3N7s7c87smeTM7Jn5Tnmev673NyTfzBnystnZmdrcXwMAmbq7NnsSAJCp3/Xn9fePAwBZeXgwr3/sAwCy8qy8AkDW5BUAMievAJA5e [...]
 <p>then the graphic is rendered in <a href="https://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/Devices.html">the current graphic device</a>.</p>
 <p>Alternatively, if you save the object output from a phyloseq <code>plot_</code> function as a variable in your session, then you can further modify it, interactively, at your leisure. For instance,</p>
 <pre class="r"><code>p1 = plot_tree(esophagus, color = "Sample")
 p1</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAKgCAIAAADbN4MiAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdd2AUdf7/8fdsSe8dAggJhNACCKE3IdgQCweoKKiHiqKnchY4Fb/YsctPhAM5FeUsIIoKKkVEqUpvoXdCIAkEUknZnd8f4UKyu0lY2N3Z7D4ff82857OT17cILyazM4qqqgIAAADg0ui0DgAAAADUJxRoAAAAwA4UaAAAAMAOFGgAAADADhRoAAAAwA4UaAAAAMAOhtoPl5aWvvDCC66JAgAAAPc3bty42NhYrVNoqY4CbTKZRGTy5MkuCQMAAAD3tWHDhoceeujBBx/UOojGuIUDAAAAsAMFGgAAALADBRoAAACwAwUaAAAAsAMFGgAAALADBRoAAACwAwUaAAAAsAMFGgAAALADBRoAAACwAwUaAAAAs [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB00AAAUeCAIAAACdcj6aAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAVAAAADgAXsghoAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAJOqu07gAAAAl2cEFnAAAHgAAABUAAOHcasQAAgABJREFUeNrs3XeclOW5N/B7ZrawywK79A6CIIIgooiK2MEWY0GMmmjUqEk8xnhMjOakmLyJSYwn5kRjjN1oLLFg772Lgh1QmhTpbZe2sGXm/QNDEGFndtnl2dn9fv954Xmu55rrfj45+O6Pm3tiGzZseOyxxwIAAAAAwL+1aNHiqKOOinoKMhVbsWLF6NGjox4DA [...]
 <pre class="r"><code>p1 + 
   ggtitle("This is my title.") +
   annotate("text", 0.25, 3, 
            color = "orange",
            label = "my annotation")</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAKgCAIAAADbN4MiAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdd3xT9f7H8c9Jmu5FJx1AF6VsKqXsXRFFEAFFRcFxr4go1yt4f15xoVcFFSfgdYPeex2ICgiOKkMQAdl7FgqU0tIFXXQk+f3RWto0LQSSnDR9Pf/Kd+T0fe9D9E16cr6K0WgUAAAAAJdHo3YAAAAAoCmhQAMAAAAWoEADAAAAFqBAAwAAABagQAMAAAAWoEADAAAAFrh0gb777ruVhr3xxhsi0q9fv9GjRzd0BX9//8jISEuTXdm77KORbElJSbfddpud8wAAAMBuXC65Y+TIkTVlcevWrT/88MNdd93VunXrqpnk5ORLXiEgIMDLy8vSZFf2LhtZs2bNhg0bnnjiiaph7WwmSwAAAHBuikUHqfz73/+eM [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB00AAAUdCAIAAAAb5kw0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAVAAAADwAOqTkpAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAJOqu07gAAAAl2cEFnAAAHgAAABUAAOHcasQAAgABJREFUeNrs3XeAXGXZN+BnZkvKpvfee4EQSuglEKp0QlMpihQLKEpRX0Vf/V5AVJAemlFAkN57NaAkJEAIJb33tsmmbLK7M/P9sRhCSHZmN7s5O7vX9Y+Tc+5zz30Oasgvzz4nlkqlXnvttVGjRoUq6d69+9y5c8s/X3311ddff30I4e67777ggguq1pA644ILL [...]
 <p>There are lots of ways for you to generate custom graphics with phyloseq as a starting point.</p>
 <p>The following sections list some of my favorites.</p>
 <div id="modify-the-ggplot-object-yourself." class="section level2">
@@ -193,13 +258,13 @@ mdf = psmelt(esophagus)
 ggplot(mdf, aes(x = Sample, 
                 y = Abundance)) + 
   geom_bar(stat = "identity", position = "stack", color = "black")</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAKgCAMAAABji+RHAAAC91BMVEUAAAABAQECAgIDAwMEBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUWFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJycoKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFiYmJjY2NkZ [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB2QAAAUiCAAAAAD3ixndAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJb0ZGcwAAAA8AAAAOALX/KZUAAAAJcEhZcwAAHYcAAB2HAY/l8WUAAAAHdElNRQfhCwYAAAvUpdXCAAAACXZwQWcAAAeAAAAFQAA4dxqxAABUB0lEQVR42u3dCdhlV13n+5WpQgYCJAECJBEFjSJ9UYN4I3JtGm3HEwIBwiwQZtBoN/MoU0RINwgKCjLJHEAUnABFBHFotfXaesEhjQwymCBRBJlS733rrapUpbSV33rXyapd/8/neawzVGW73qdW7S9n7X32bhtr8odvYqQ3vu51F88eA8vyute9fvYQWJbXmzLDfaCtK [...]
 <pre class="r"><code># Simple heat map. See plot_heatmap() for more.
 ggplot(mdf, aes(x = Sample, 
                 y = OTU, 
                 fill = Abundance)) +
   geom_raster()</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAKgCAIAAADbN4MiAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzde1hU173/8TUz3BUogjVHQEUo0WqlJtWGVI6aoxxzabSg9NE0UEVTJtFOjU8MxdonJqZ4IxMiGn4NBlEjRgNeYkIM1nhJS08i0VSOpsRLNFLRYqOiAsMM+/fHjlOOzowDe88MDO/Xwx971qy99l40j/26XXt9NJIkCQAAAADO0Xr6BgAAAIDuhAIaAAAA6AAKaAAAAKADKKABAACADqCABgAAADqAAhoAAADoAB9P34AHvPbaa//4xz88fRdwSltbW1tbm49PT/wPFd6H/57hTSRJslgsOp1Oo9F4+l7grPnz5/fr18/Td+ENeuKf46dOncrPz1c+zorXN537x0Xl48ABi8ViNpv9ff09fSPeT7KYPX0L3 [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB1QAAAUiCAIAAAA1cVNuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAOAAAADgB+o/owAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAL1KXVwgAAAAl2cEFnAAAHgAAABUAAOHcasQAAgABJREFUeNrs/XtUVHee7/+/d5XcShAKhBgj12g0qLGDjDEo7Y2JZpXVB9uMGh3XirbkHKOdto0dpy92fsbElZiM8bICavweHWJwJMZMLG/YGtpGwtJgMSZmSWACitxEQ8m1uFXt3x91hsMBY1OIVlk+H3/pZ3/2e3/2R5PufvHp91ZUVRU8CC5cuHD16lVXrwLwT [...]
 </div>
 <div id="submit-a-pull-request-advanced" class="section level2">
 <h2><span class="header-section-number">3.3</span> Submit a Pull Request (Advanced)</h2>
@@ -224,7 +289,10 @@ ggplot(mdf, aes(x = Sample,
 </div>
 <div id="minimal-git-and-github-exercise" class="section level2">
 <h2><span class="header-section-number">4.2</span> Minimal GIT and GitHub Exercise</h2>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAccAAAEaCAIAAADrPgsUAAAAA3NCSVQICAjb4U/gAAAgAElEQVR4Xu2dXehdxfX3jb+fEbTR2jdqrC/B3rXxhQfKU5KgrVCllqr/pxVsL6LQi5pSonhjrjRX9kaMBRMoiEqphdYSpZVqKaiEFkpbooaivRBNqzEFaXwXg7HPx3z5T4eZvWfP7Jdz9jl7nYvDPrPXrFnznTXfveZlzznhP02fN998s0nkv/eLhF955ZWBNBeZUSRsNvtNVgRdkbDhbDjXkcP4fePEE+xjCBgChoAh0B8Cxqr9YWmaDAFDwBA44QRjVfMCQ8AQMAT6RGC1T2WddT311FPoePrpp19//XUunnzySafy2LFjKysrmSUMJ3z06NG1a9fO3YyiCs7G5ksvvRRYPv7xj1900UVcXHLJJZkomZghsGQIrL711lvpKjUK+ [...]
+<div class="figure">
+<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAccAAAEaCAIAAADrPgsUAAAAA3NCSVQICAjb4U/gAAAgAElEQVR4Xu2dXehdxfX3jb+fEbTR2jdqrC/B3rXxhQfKU5KgrVCllqr/pxVsL6LQi5pSonhjrjRX9kaMBRMoiEqphdYSpZVqKaiEFkpbooaivRBNqzEFaXwXg7HPx3z5T4eZvWfP7Jdz9jl7nYvDPrPXrFnznTXfveZlzznhP02fN998s0nkv/eLhF955ZWBNBeZUSRsNvtNVgRdkbDhbDjXkcP4fePEE+xjCBgChoAh0B8Cxqr9YWmaDAFDwBA44QRjVfMCQ8AQMAT6RGC1T2WddT311FPoePrpp19//XUunnzySafy2LFjKysrmSUMJ3z06NG1a9fO3YyiCs7G5ksvvRRYPv7xj1900UVcXHLJJZkomZghsGQIrL711lvpKjUK+NmL [...]
+
+</div>
 <p>(The following instructions are borrowed from <a href="http://yihui.name/en/2013/06/fix-typo-in-documentation/">Yihui Xie’s site about fixing typos</a>)</p>
 <p>Alternatively, for those who want to try GIT and Github pull requests, which make it possible for you to contribute to open source and fix obvious problems with no questions being asked – just do it yourself, and send the changes to the original author(s) through Github.</p>
 <p>The official documentation for Github pull requests is a little bit verbose for beginners. Basically what you need to do for simple tasks are:</p>
@@ -333,12 +401,41 @@ ggplot(mdf, aes(x = Sample,
 
 
 
+
+</div>
+
+<script>
+
+// add bootstrap table styles to pandoc tables
+function bootstrapStylePandocTables() {
+  $('tr.header').parent('thead').parent('table').addClass('table table-condensed');
+}
+$(document).ready(function () {
+  bootstrapStylePandocTables();
+});
+
+
+</script>
+
+<script type="text/x-mathjax-config">
+  MathJax.Hub.Config({
+    "HTML-CSS": {
+      styles: {
+        ".MathJax_Display": {
+           "text-align": "center",
+           padding: "0px 150px 0px 65px",
+           margin: "0px 0px 0.5em"
+        },
+      }
+    }
+  });
+</script>
 <!-- dynamically load mathjax for compatibility with self-contained -->
 <script>
   (function () {
     var script = document.createElement("script");
     script.type = "text/javascript";
-    script.src  = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
+    script.src  = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
     document.getElementsByTagName("head")[0].appendChild(script);
   })();
 </script>
diff --git a/inst/doc/phyloseq-analysis.R b/inst/doc/phyloseq-analysis.R
index 3398a38..bd18567 100644
--- a/inst/doc/phyloseq-analysis.R
+++ b/inst/doc/phyloseq-analysis.R
@@ -1,17 +1,17 @@
-## ----dontrun-basics-vignette, eval=FALSE---------------------------------
+## ----dontrun-basics-vignette, eval=FALSE-----------------------------------
 #  vignette("phyloseq-basics")
 
-## ----load-packages, message=FALSE, warning=FALSE-------------------------
+## ----load-packages, message=FALSE, warning=FALSE---------------------------
 library("phyloseq")
 library("ggplot2")
 
-## ----ggplot2-themes------------------------------------------------------
+## ----ggplot2-themes--------------------------------------------------------
 theme_set(theme_bw())
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 data(GlobalPatterns)
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 # prune OTUs that are not present in at least one sample
 GP <- prune_taxa(taxa_sums(GlobalPatterns) > 0, GlobalPatterns)
 # Define a human-associated versus non-human categorical variable:
@@ -19,47 +19,47 @@ human <- get_variable(GP, "SampleType") %in% c("Feces", "Mock", "Skin", "Tongue"
 # Add new human variable to sample data:
 sample_data(GP)$human <- factor(human)
 
-## ----richness_estimates0, fig.width=13, fig.height=7---------------------
+## ----richness_estimates0, fig.width=13, fig.height=7-----------------------
 alpha_meas = c("Observed", "Chao1", "ACE", "Shannon", "Simpson", "InvSimpson")
 (p <- plot_richness(GP, "human", "SampleType", measures=alpha_meas))
 
-## ----richness_estimates, fig.width=13,height=7---------------------------
+## ----richness_estimates, fig.width=13,height=7-----------------------------
 p + geom_boxplot(data=p$data, aes(x=human, y=value, color=NULL), alpha=0.1)
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 GP.chl <- subset_taxa(GP, Phylum=="Chlamydiae")
 
 ## ----GP-chl-tree, fig.width=15, fig.height=7, message=FALSE, warning=FALSE----
 plot_tree(GP.chl, color="SampleType", shape="Family", label.tips="Genus", size="Abundance")
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 data(enterotype)
 
-## ----EntAbundPlot, fig.height=6, fig.width=8-----------------------------
+## ----EntAbundPlot, fig.height=6, fig.width=8-------------------------------
 par(mar = c(10, 4, 4, 2) + 0.1) # make more room on bottom margin
 N <- 30
 barplot(sort(taxa_sums(enterotype), TRUE)[1:N]/nsamples(enterotype), las=2)
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 rank_names(enterotype)
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 TopNOTUs <- names(sort(taxa_sums(enterotype), TRUE)[1:10]) 
 ent10   <- prune_taxa(TopNOTUs, enterotype)
 print(ent10)
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 sample_variables(ent10)
 
-## ----entbarplot0, fig.height=6, fig.width=10-----------------------------
+## ----entbarplot0, fig.height=6, fig.width=10-------------------------------
 plot_bar(ent10, "SeqTech", fill="Enterotype", facet_grid=~Genus)
 
-## ----GPheatmap-----------------------------------------------------------
+## ----GPheatmap-------------------------------------------------------------
 data("GlobalPatterns")
 gpac <- subset_taxa(GlobalPatterns, Phylum=="Crenarchaeota")
 (p <- plot_heatmap(gpac, "NMDS", "bray", "SampleType", "Family"))
 
-## ----GPheatmap-rename-axes-----------------------------------------------
+## ----GPheatmap-rename-axes-------------------------------------------------
 p$scales$scales[[1]]$name <- "My X-Axis"
 p$scales$scales[[2]]$name <- "My Y-Axis"
 print(p)
@@ -68,39 +68,39 @@ print(p)
 data(enterotype)
 plot_net(enterotype, maxdist=0.4, color="SeqTech", shape="Enterotype")
 
-## ----eval=FALSE----------------------------------------------------------
+## ----eval=FALSE------------------------------------------------------------
 #  my.physeq <- import("Biom", BIOMfilename="myBiomFile.biom")
 #  my.ord    <- ordinate(my.physeq)
 #  plot_ordination(my.physeq, my.ord, color="myFavoriteVarible")
 
-## ----help-import, eval=FALSE---------------------------------------------
+## ----help-import, eval=FALSE-----------------------------------------------
 #  help(import)
 #  help(ordinate)
 #  help(distance)
 #  help(plot_ordination)
 
-## ----GP-data-load--------------------------------------------------------
+## ----GP-data-load----------------------------------------------------------
 data(GlobalPatterns)
 
-## ---- eval=FALSE---------------------------------------------------------
+## ---- eval=FALSE-----------------------------------------------------------
 #  GPUF <- UniFrac(GlobalPatterns)
 
-## ----load-precomputed-UF-------------------------------------------------
+## ----load-precomputed-UF---------------------------------------------------
 load(system.file("doc", "Unweighted_UniFrac.RData", package="phyloseq"))
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 GloPa.pcoa = ordinate(GlobalPatterns, method="PCoA", distance=GPUF)
 
-## ----PCoAScree, fig.width=6, fig.height=4--------------------------------
+## ----PCoAScree, fig.width=6, fig.height=4----------------------------------
 plot_scree(GloPa.pcoa, "Scree plot for Global Patterns, UniFrac/PCoA")
 
-## ----GPfig5ax1213--------------------------------------------------------
+## ----GPfig5ax1213----------------------------------------------------------
 (p12 <- plot_ordination(GlobalPatterns, GloPa.pcoa, "samples", color="SampleType") + 
   geom_point(size=5) + geom_path() + scale_colour_hue(guide = FALSE) )
 (p13 <- plot_ordination(GlobalPatterns, GloPa.pcoa, "samples", axes=c(1, 3),
   color="SampleType") + geom_line() + geom_point(size=5) )
 
-## ----GP_UF_NMDS0---------------------------------------------------------
+## ----GP_UF_NMDS0-----------------------------------------------------------
 # (Re)load UniFrac distance matrix and GlobalPatterns data
 data(GlobalPatterns)
 load(system.file("doc", "Unweighted_UniFrac.RData", package="phyloseq"))
@@ -109,7 +109,7 @@ GP.NMDS <- ordinate(GlobalPatterns, "NMDS", GPUF)
 (p <- plot_ordination(GlobalPatterns, GP.NMDS, "samples", color="SampleType") +
   geom_line() + geom_point(size=5) )
 
-## ----GPCAscree0, fig=FALSE-----------------------------------------------
+## ----GPCAscree0, fig=FALSE-------------------------------------------------
 data(GlobalPatterns)
 # Take a subset of the GP dataset, top 200 species
 topsp <- names(sort(taxa_sums(GlobalPatterns), TRUE)[1:200])
@@ -120,28 +120,28 @@ GP     <- subset_taxa(GP, Phylum %in% names(top5ph))
 # Re-add human variable to sample data:
 sample_data(GP)$human <- factor(human)
 
-## ----GPCAscree, fig.width=8, fig.height=5--------------------------------
+## ----GPCAscree, fig.width=8, fig.height=5----------------------------------
 # Now perform a unconstrained correspondence analysis
 gpca  <- ordinate(GP, "CCA")
 # Scree plot
 plot_scree(gpca, "Scree Plot for Global Patterns Correspondence Analysis")
 
-## ----GPCA1234------------------------------------------------------------
+## ----GPCA1234--------------------------------------------------------------
 (p12 <- plot_ordination(GP, gpca, "samples", color="SampleType") + 
   geom_line() + geom_point(size=5) )
 (p34 <- plot_ordination(GP, gpca, "samples", axes=c(3, 4), color="SampleType") + 
   geom_line() + geom_point(size=5) )
 
-## ----GPCAspecplot0-------------------------------------------------------
+## ----GPCAspecplot0---------------------------------------------------------
 p1  <- plot_ordination(GP, gpca, "species", color="Phylum")
 (p1 <- ggplot(p1$data, p1$mapping) + geom_point(size=5, alpha=0.5) + 
   facet_wrap(~Phylum) +  scale_colour_hue(guide = FALSE) )
 
-## ----GPCAspecplotTopo0---------------------------------------------------
+## ----GPCAspecplotTopo0-----------------------------------------------------
 (p3 <- ggplot(p1$data, p1$mapping) + geom_density2d() +
   facet_wrap(~Phylum) +  scale_colour_hue(guide = FALSE) )
 
-## ----GPCAjitter0---------------------------------------------------------
+## ----GPCAjitter0-----------------------------------------------------------
 library("reshape2")
 # Melt the species-data.frame, DF, to facet each CA axis separately
 mdf <- melt(p1$data[, c("CA1", "CA2", "Phylum", "Family", "Genus")], 
@@ -161,10 +161,10 @@ p <- ggplot(mdf, aes(Phylum, value, color=Phylum)) +
   vjust=0,
   size=2))
 
-## ----GPtaxaplot0---------------------------------------------------------
+## ----GPtaxaplot0-----------------------------------------------------------
 plot_bar(GP, x="human", fill="SampleType", facet_grid= ~ Phylum)
 
-## ----GPdpcoa01-----------------------------------------------------------
+## ----GPdpcoa01-------------------------------------------------------------
 GP.dpcoa <- ordinate(GP, "DPCoA") 
 pdpcoa <- plot_ordination(GP, GP.dpcoa, type="biplot",
                           color="SampleType", shape="Phylum")
@@ -173,7 +173,7 @@ man.shapes <- c(19, 21:25)
 names(man.shapes) <- c("Samples", levels(shape.fac)[levels(shape.fac)!="Samples"])
 p2dpcoa <- pdpcoa + scale_shape_manual(values=man.shapes)
 
-## ----GPdpcoa02-----------------------------------------------------------
+## ----GPdpcoa02-------------------------------------------------------------
 # Show just Samples or just Taxa
 plot_ordination(GP, GP.dpcoa, type="taxa", shape="Phylum")
 plot_ordination(GP, GP.dpcoa, type="samples", color="SampleType")
@@ -182,19 +182,19 @@ plot_ordination(GP, GP.dpcoa, type="split",
                 color="SampleType", shape="Phylum") +
   ggplot2::scale_colour_discrete()
 
-## ----distancefun---------------------------------------------------------
+## ----distancefun-----------------------------------------------------------
 data(esophagus)
 distance(esophagus, "bray") 
 distance(esophagus, "wunifrac") # weighted UniFrac
 distance(esophagus, "jaccard") # vegdist jaccard
 distance(esophagus, "g") # betadiver method option "g"
 
-## ----eval=FALSE, echo=TRUE-----------------------------------------------
+## ----eval=FALSE, echo=TRUE-------------------------------------------------
 #  data(esophagus)
 #  distance(esophagus, "wUniFrac")
 #  distance(esophagus, "uUniFrac")
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 # (Re)load UniFrac distance matrix and GlobalPatterns data
 data(GlobalPatterns)
 load(system.file("doc", "Unweighted_UniFrac.RData", package="phyloseq"))
diff --git a/inst/doc/phyloseq-analysis.html b/inst/doc/phyloseq-analysis.html
index e67a31a..b9ea827 100644
--- a/inst/doc/phyloseq-analysis.html
+++ b/inst/doc/phyloseq-analysis.html
@@ -4,22 +4,28 @@
 
 <head>
 
-<meta charset="utf-8">
+<meta charset="utf-8" />
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta name="generator" content="pandoc" />
 
 
 
+
 <title>Vignette for phyloseq: Analysis of high-throughput microbiome census data</title>
 
+<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMS4zIHwgKGMpIDIwMDUsIDIwMTUgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dG [...]
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<link href="data:text/css;charset=utf-8,html%7Bfont%2Dfamily%3Asans%2Dserif%3B%2Dwebkit%2Dtext%2Dsize%2Dadjust%3A100%25%3B%2Dms%2Dtext%2Dsize%2Dadjust%3A100%25%7Dbody%7Bmargin%3A0%7Darticle%2Caside%2Cdetails%2Cfigcaption%2Cfigure%2Cfooter%2Cheader%2Chgroup%2Cmain%2Cmenu%2Cnav%2Csection%2Csummary%7Bdisplay%3Ablock%7Daudio%2Ccanvas%2Cprogress%2Cvideo%7Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Abaseline%7Daudio%3Anot%28%5Bcontrols%5D%29%7Bdisplay%3Anone%3Bheight%3A0%7D%5Bhidden%5D%2Ctem [...]
+<script src="data:application/x-javascript;base64,LyohCiAqIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqLwppZigidW5kZWZpbmVkIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Iik7K2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgYj1hLmZuLmpxdWVyeS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7aWYoYlswXTwyJiZiWzFdPDl8fDE9PWJbMF0mJjk9PWJbMV0mJmJbMl08MSl0aHJvdy [...]
+<script src="data:application/x-javascript;base64,LyoqCiogQHByZXNlcnZlIEhUTUw1IFNoaXYgMy43LjIgfCBAYWZhcmthcyBAamRhbHRvbiBAam9uX25lYWwgQHJlbSB8IE1JVC9HUEwyIExpY2Vuc2VkCiovCi8vIE9ubHkgcnVuIHRoaXMgY29kZSBpbiBJRSA4CmlmICghIXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJNU0lFIDgiKSkgewohZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KCJwIiksZD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGEuZG9jdW1lbnRFbGVtZW50O3JldHVybiBjLmlubmVySFRNTD0ieDxzdHlsZT4iK2IrIjwvc3R5bGU+IixkLm [...]
+<script src="data:application/x-javascript;base64,LyohIFJlc3BvbmQuanMgdjEuNC4yOiBtaW4vbWF4LXdpZHRoIG1lZGlhIHF1ZXJ5IHBvbHlmaWxsICogQ29weXJpZ2h0IDIwMTMgU2NvdHQgSmVobAogKiBMaWNlbnNlZCB1bmRlciBodHRwczovL2dpdGh1Yi5jb20vc2NvdHRqZWhsL1Jlc3BvbmQvYmxvYi9tYXN0ZXIvTElDRU5TRS1NSVQKICogICovCgovLyBPbmx5IHJ1biB0aGlzIGNvZGUgaW4gSUUgOAppZiAoISF3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiTVNJRSA4IikpIHsKIWZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjthLm1hdGNoTWVkaWE9YS5tYXRjaE1lZGlhfHxmdW5jdGlvbihhKXt2YXIgYixjPWEuZG [...]
+<script src="data:application/x-javascript;base64,CgovKioKICogalF1ZXJ5IFBsdWdpbjogU3RpY2t5IFRhYnMKICoKICogQGF1dGhvciBBaWRhbiBMaXN0ZXIgPGFpZGFuQHBocC5uZXQ+CiAqIGFkYXB0ZWQgYnkgUnViZW4gQXJzbGFuIHRvIGFjdGl2YXRlIHBhcmVudCB0YWJzIHRvbwogKiBodHRwOi8vd3d3LmFpZGFubGlzdGVyLmNvbS8yMDE0LzAzL3BlcnNpc3RpbmctdGhlLXRhYi1zdGF0ZS1pbi1ib290c3RyYXAvCiAqLwooZnVuY3Rpb24oJCkgewogICJ1c2Ugc3RyaWN0IjsKICAkLmZuLnJtYXJrZG93blN0aWNreVRhYnMgPSBmdW5jdGlvbigpIHsKICAgIHZhciBjb250ZXh0ID0gdGhpczsKICAgIC8vIFNob3cgdGhlIHRhYi [...]
 <link href="data:text/css;charset=utf-8,pre%20%2Eoperator%2C%0Apre%20%2Eparen%20%7B%0Acolor%3A%20rgb%28104%2C%20118%2C%20135%29%0A%7D%0Apre%20%2Eliteral%20%7B%0Acolor%3A%20%23990073%0A%7D%0Apre%20%2Enumber%20%7B%0Acolor%3A%20%23099%3B%0A%7D%0Apre%20%2Ecomment%20%7B%0Acolor%3A%20%23998%3B%0Afont%2Dstyle%3A%20italic%0A%7D%0Apre%20%2Ekeyword%20%7B%0Acolor%3A%20%23900%3B%0Afont%2Dweight%3A%20bold%0A%7D%0Apre%20%2Eidentifier%20%7B%0Acolor%3A%20rgb%280%2C%200%2C%200%29%3B%0A%7D%0Apre%20%2Estri [...]
 <script src="data:application/x-javascript;base64,dmFyIGhsanM9bmV3IGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbShwKXtyZXR1cm4gcC5yZXBsYWNlKC8mL2dtLCImYW1wOyIpLnJlcGxhY2UoLzwvZ20sIiZsdDsiKX1mdW5jdGlvbiBmKHIscSxwKXtyZXR1cm4gUmVnRXhwKHEsIm0iKyhyLmNJPyJpIjoiIikrKHA/ImciOiIiKSl9ZnVuY3Rpb24gYihyKXtmb3IodmFyIHA9MDtwPHIuY2hpbGROb2Rlcy5sZW5ndGg7cCsrKXt2YXIgcT1yLmNoaWxkTm9kZXNbcF07aWYocS5ub2RlTmFtZT09IkNPREUiKXtyZXR1cm4gcX1pZighKHEubm9kZVR5cGU9PTMmJnEubm9kZVZhbHVlLm1hdGNoKC9ccysvKSkpe2JyZWFrfX19ZnVuY3Rpb24gaCh0LH [...]
 
 <style type="text/css">code{white-space: pre;}</style>
 <style type="text/css">
-  pre:not([class]) {
-    background-color: white;
-  }
+
 </style>
 <script type="text/javascript">
 if (window.hljs && document.readyState && document.readyState === "complete") {
@@ -30,24 +36,84 @@ if (window.hljs && document.readyState && document.readyState === "complete") {
 </script>
 
 
-<link href="data:text/css;charset=utf-8,body%2C%20td%20%7B%0Afont%2Dfamily%3A%20sans%2Dserif%3B%0Abackground%2Dcolor%3A%20white%3B%0Afont%2Dsize%3A%2013px%3B%0A%7D%0Abody%20%7B%0Amax%2Dwidth%3A%20800px%3B%0Amargin%3A%200%20auto%3B%0Apadding%3A%201em%201em%202em%3B%0Aline%2Dheight%3A%2020px%3B%0A%7D%0A%0Adiv%23TOC%20li%20%7B%0Alist%2Dstyle%3Anone%3B%0Abackground%2Dimage%3Anone%3B%0Abackground%2Drepeat%3Anone%3B%0Abackground%2Dposition%3A0%3B%0A%7D%0A%0Ap%2C%20pre%20%7B%20margin%3A%200em%2 [...]
 
-<script type="text/javascript">
-document.addEventListener("DOMContentLoaded", function() {
-  var links = document.links;  
-  for (var i = 0, linksLength = links.length; i < linksLength; i++)
-    if(links[i].hostname != window.location.hostname)
-      links[i].target = '_blank';
-});
-</script>
+<style type="text/css">
+h1 {
+  font-size: 34px;
+}
+h1.title {
+  font-size: 38px;
+}
+h2 {
+  font-size: 30px;
+}
+h3 {
+  font-size: 24px;
+}
+h4 {
+  font-size: 18px;
+}
+h5 {
+  font-size: 16px;
+}
+h6 {
+  font-size: 12px;
+}
+.table th:not([align]) {
+  text-align: left;
+}
+</style>
+
+<link href="data:text/css;charset=utf-8,body%20%7B%0Amargin%3A%200px%20auto%3B%0Amax%2Dwidth%3A%201134px%3B%0Afont%2Dfamily%3A%20sans%2Dserif%3B%0Afont%2Dsize%3A%2010pt%3B%0A%7D%0A%0Adiv%23TOC%20ul%20%7B%0Apadding%3A%200px%200px%200px%2045px%3B%0Alist%2Dstyle%3A%20none%3B%0Abackground%2Dimage%3A%20none%3B%0Abackground%2Drepeat%3A%20none%3B%0Abackground%2Dposition%3A%200%3B%0Afont%2Dsize%3A%2010pt%3B%0Afont%2Dfamily%3A%20Helvetica%2C%20Arial%2C%20sans%2Dserif%3B%0A%7D%0Adiv%23TOC%20%3E%20 [...]
 
 </head>
 
 <body>
 
+<style type="text/css">
+.main-container {
+  max-width: 828px;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+img {
+  max-width:100%;
+  height: auto;
+}
+.tabbed-pane {
+  padding-top: 12px;
+}
+button.code-folding-btn:focus {
+  outline: none;
+}
+</style>
+
+
+
+<div class="container-fluid main-container">
+
+<!-- tabsets -->
+<script>
+$(document).ready(function () {
+  window.buildTabsets("TOC");
+});
+</script>
+
+<!-- code folding -->
+
+
+
+
+
+
+<div class="fluid-row" id="header">
+
+
+
+<h1 class="title toc-ignore">Vignette for phyloseq: Analysis of high-throughput microbiome census data</h1>
+<h4 class="date"><em>5 November 2017</em></h4>
 
-<div id="header">
-<h1 class="title">Vignette for phyloseq: Analysis of high-throughput microbiome census data</h1>
 </div>
 
 <h1>Contents</h1>
@@ -133,10 +199,10 @@ sample_data(GP)$human <- factor(human)</code></pre>
 <p>We can easily create a complex graphic that compares the richness estimates of samples from different environment types in the <a href="http://www.pnas.org/content/early/2010/06/02/1000080107">Global Patterns</a> dataset, using the <code>plot_richness</code> function. Note that it is important to use raw (untrimmed) OTU-clustered data when performing richness estimates, as they can be highly dependent on the number of singletons in a sample.</p>
 <pre class="r"><code>alpha_meas = c("Observed", "Chao1", "ACE", "Shannon", "Simpson", "InvSimpson")
 (p <- plot_richness(GP, "human", "SampleType", measures=alpha_meas))</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABOAAAAKgCAIAAAC9UZVxAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdZ3wU5frw8Wu2ZzedhNAJndAhIEVEFFBEbAhWxAaiYENBPaLPOYIIihxQESt/BAuichTFgoBHFGyR0LsQpAZI2PTsZss8L5YTQ2gJbmZ2k9/3w4uZa2f3vrLM7sy1c899K6qqCgAAAAAAejPonQAAAAAAACIUqAAAAACAEEGBCgAAAAAICRSoAAAAAICQQIEKAAAAAAgJFKgAAAAAgJBg0juBv2vatGmZmZl6Z4FzsNlszzzzjNVq1aX1GTNm7N+/X5emUXE2m23ixIlRUVG6tP7yyy/v2bNHl6ZRcTab7bHHHouPjz+/p7/++uvbt28PbkoIOpvNNm7cuKSkpKp48bfffnvz5s1V8coIIpvNNnbs2IYNG [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACZIAAAUjCAIAAADZ+tUrAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAPAAAADgC1/ymVAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAARKccsuAAAAAl2cEFnAAAJwAAABUAAZxBrgAAAgABJREFUeNrs3XdgFHX6x/FntqX3AgkkQKgGUAEBEVFALIiegsepWLGg6J1nOT3U82f3sJ2KZzmspwiiqCgiYqWLEEpABEKHQEhI2ySbsmXm98d6S0wHknw32ffrH3a/8+zmM1kyuzvPzHc0wzAEJ2bdunX79u1TnQJohwYPHpySkqI6RSv5+uuvy8vLVacA2qELL [...]
 <p>Add a ggplot2 box plot layer to the previous plot</p>
 <pre class="r"><code>p + geom_boxplot(data=p$data, aes(x=human, y=value, color=NULL), alpha=0.1)</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABOAAAAKgCAIAAAC9UZVxAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdeXwT1fo/8GdmsjVputEFylYoW9ltQSgiooAgoCKrIqAiuICoKIiX5XeViqDoBRFRUL/IIgiKiuJVZFFWkaWUfael0IU2bbqkWZrMzO+PcGtpC6RNOpM0n/fLl6+Zk8k5T8JpMk/mzDmMKIoEAAAAAAAAIDdW7gAAAAAAAAAAiJCgAgAAAAAAgJdAggoAAAAAAABeAQkqAAAAAAAAeAUkqAAAAAAAAOAVkKACAAAAAACAV1DIHYC7FixYkJ2dLXcUcAcajebtt99Wq9WytP7hhx9evXpVlqbBdRqNZtasWXq9XpbWlyxZcvnyZVmaBtdpNJo33ngjLCysZk//7LPPzp4969mQwOM0Gs3UqVOjoqJqo/Ivv [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACZIAAAUjCAIAAADZ+tUrAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAPAAAADgC1/ymVAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAATx8lNlAAAAAl2cEFnAAAJwAAABUAAZxBrgAAAgABJREFUeNrs3XdgFHX6x/FntmTTewJJCISAdFRQQVSUZkH0BDxOxXL2s92dnmfD86ee5RC9U7AeKnqoIIqKIgIWlCrSg9JCJ0BIz6Zusrszvz8GlxhIAZJ8N9n36x9mv/Nk89ldMrs7z8x3NMMwBCdn7dq1e/fuVZ0CaIPOOuus1NRU1SlayIIFCyoqKlSnANqgS [...]
 </div>
 <div id="exploratory-tree-plots" class="section level2">
 <h2><span class="header-section-number">5.2</span> Exploratory tree plots</h2>
@@ -146,7 +212,7 @@ sample_data(GP)$human <- factor(human)</code></pre>
 <pre class="r"><code>GP.chl <- subset_taxa(GP, Phylum=="Chlamydiae")</code></pre>
 <p>And now we will create the tree graphic form this subset of <a href="http://www.pnas.org/content/early/2010/06/02/1000080107">Global Patterns</a>, shading by the “`SampleType” variable, which indicates the environment category from which the microbiome samples originated. The following command also takes the option of labeling the number of individuals observed in each sample (if at all) of each taxa. The symbols are slightly enlarged as the number of individuals increases.</p>
 <pre class="r"><code>plot_tree(GP.chl, color="SampleType", shape="Family", label.tips="Genus", size="Abundance")</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAKgCAIAAADiZU0RAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzde1yMef8/8M/URMfpfFRKUlOiNiId6eCOEAnt6i4rdrFuNi0ioRw2i7D3olhK60s5JseiRQdSUSzVndJKKlR0Tqf5/XF9v/ObO82YUk1Tr+fj/mOuz7yvz+d9Xdfeduftc30+NBaLRQAAAAAAAAAAhJmIoBMAAAAAAAAAAPhSKHAAAAAAAAAAgNBDgQMAAAAAAAAAhB4KHAAAAAAAAAAg9FDgAAAAAAAAAAChhwIHAAAAAAAAAAg9Ou+vm5ubN2/e3DepAAAAAAAAABBCvvvuO11dXUFnAULmMwWOtrY2QkhISEifJAMAAAAAAACDWkFBgYeHx/z58wWdCAgfvKICAAAAAAAAAEIPBQ4AAAAAAAAAEHooc [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACw0AAAUeCAIAAAAJ0qv9AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAVAAAADgAXsghoAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAVLqrooQAAAAl2cEFnAAALQAAABUAA7j9ucQAAgABJREFUeNrs3XdUVNf68PE9SBUQlSIKUYwIRjEKGLFhQbFjVwxiCfaghhhj12gSW2ISa9SoGLuIxBIsoFiuvRewINgVVBQpKp15/zj3zo+XJswAA/L9rKx1N/vs8pw9M17lPLO3LCUlJTAwUAAAAAAAAAAAAABAOda9e3dtbW11RwGg2MliY2NdXV3VHQYAAAAAA [...]
 </div>
 <div id="exploratory-bar-plots" class="section level2">
 <h2><span class="header-section-number">5.3</span> Exploratory bar plots</h2>
@@ -157,7 +223,7 @@ sample_data(GP)$human <- factor(human)</code></pre>
 <pre class="r"><code>par(mar = c(10, 4, 4, 2) + 0.1) # make more room on bottom margin
 N <- 30
 barplot(sort(taxa_sums(enterotype), TRUE)[1:N]/nsamples(enterotype), las=2)</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwAAAAJACAMAAAANcPFkAAADAFBMVEUAAAABAQECAgIDAwMEBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUWFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJycoKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFiYmJjY2NkZ [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUgAAAOmCAAAAAAcdyC2AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJb0ZGcwAAADkAAACcACSrJb0AAAAJcEhZcwAAHYcAAB2HAY/l8WUAAAAHdElNRQfhCwYAABa3o7kbAAAACXZwQWcAAAYAAAAEgABKiLikAAB9o0lEQVR42u2deYAUxfn+X1huQVgBEUEUvCIo4oHiES8QNBgPDOKBigqiYqLigZoonkHEKxpRUUPiEcXboOKBd+L9BTVGfwQVAyh4ropys/Prnp6Zndnp6npqqubY3ufzx27PzDvdXdXVz1RXvfW+kqg8vvzDBB13lvscCSEkg5T7BEK4SvTUlPskCSEkTSUK6WWyw5hoW [...]
 <p>Note that this first barplot is clipped at the 30th OTU. This was chosen because <code>ntaxa(enterotype) =</code>553 OTUs would not be legible on the plot. As you can see, the relative abundances have decreased dramatically by the 10th-ranked OTU.</p>
 <p>So what are these OTUs? In the <code>enterotype</code> dataset, only a single taxonomic rank type is present:</p>
 <pre class="r"><code>rank_names(enterotype)</code></pre>
@@ -178,7 +244,7 @@ print(ent10)</code></pre>
 ## [9] "ClinicalStatus"</code></pre>
 <p>The parameters to <code>plot_bar</code> in the following code-chunk were chosen after various trials. We suggest that you also try different parameter settings while you’re exploring different features of the data. In addition to the variables names of <code>sample_data</code>, the <code>plot_bar()</code> function recognizes the names of taxonomic ranks (if present). See the help documentation and further details in the examples and on the wiki page. In this example we have also elect [...]
 <pre class="r"><code>plot_bar(ent10, "SeqTech", fill="Enterotype", facet_grid=~Genus)</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAJACAIAAADNc5igAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdd3wUdf4/8M/WbHbTCwlphFBC6AqIBZDqoYAF5fQU7CLnnYV24CEqBwLSRDk9RfkqCKKiCNaTIk2RkgQQUsBAQgrpySbby+z8/pjv7Te/7O7s7Mxsyd7r+XjweITNfD7znpn3zr4z+5nPSGiaJgAAAAAAwI002AEAAAAAAHQlKKABAAAAAHyAAhoAAAAAwAcooAEAAAAAfIACGgAAAADAByigAQAAAAB8IA92AP9n9erVdXV1wY7CX2JjY5ctW9bpxaNHj+7evTso8QTG7Nmz+/fv3/GV9vb2l19+OVjxBMANN9zw4IMPdnrxzTffLC8vD0o8AaBSqV577TWZTNbxxfz8/O3btwcrpACYNWvWsGHDOr5CU [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB1MAAARiCAIAAAB+gknPAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAPAAAADgC1/ymVAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAXwKSJjQAAAAl2cEFnAAAHgAAABIAA8k+nyAAAgABJREFUeNrs3Xd4VFX++PHPtJRJD6EGKQHpoNgVLFixY8GGvYv1q+6uZV3bWta1LSi6ig0Excpa0V1UEBsiEhGkJiQEQnrPZPrvj6vzy5OEMDO5c8/k5v16Hp7nMrlzz+eec9t85sw5lmAwKKb2008/FRUVqY4CURo2bNg+++wTzppffPFFbW2t6ngRpf3222/Ik [...]
 <p>An example exploratory bar plot using the <code>plot_bar</code> function. In this case we have faceted the data (abundance values) according to the genera of each OTU. The subset of OTUs that have not been assigned to a specific genus are in the <code>NA</code> panel. Within each facet, the data is further separated by sequencing technology, and each OTU is shaded according to the enterotype of the sample it form which it came. Abundance values from different samples and OTUs but havi [...]
 <p>Figure summarizes quantitatively the increased abundances of Bacteroides and Prevotella in the Enterotypes 1 and 2, respectively. Interestingly, a large relative abundance of Blautia was observed for Enterotype 3, but only from 454-pyrosequencing data sets, not the Illumina or Sanger datasets. This suggests the increased Blautia might actually be an artifact. Similarly, Prevotella appears to be one of the most abundant genera in the Illumina-sequenced samples among Enterotype 3, but t [...]
 </div>
@@ -192,12 +258,12 @@ print(ent10)</code></pre>
 <pre class="r"><code>data("GlobalPatterns")
 gpac <- subset_taxa(GlobalPatterns, Phylum=="Crenarchaeota")
 (p <- plot_heatmap(gpac, "NMDS", "bray", "SampleType", "Family"))</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdfXxU5Z3w/+vMZGbyMJOZOHkAAhI1C9LE0vCgpihYBGqUYBOzpVQrvW1R2l03bX3YfWndqtst7e1dW7T25gevVXFVRChRSG+o4CoqBitPLrGpKDoxgRDMkAmTyWQmM3N+f5xmNhLkIbkmJzPn8375x5Uz1/nmm2OEr+dc33MpqqoKAAAAoJ9J7wQAAAAwulAgAgAA4HMoEAEAAPA5FIgAAAD4HApEAAAAfA4FIgAAAD4nTe8E9PfYY48dPXr0XGaqqhqNRs1ms6Iow/++0WhUCGE2m4cfSm5ikUhEURQpicVisVgslpYm59csEomYTCaTScL/1ZDY+ZKemMT/jlRVlZKYQf4DH7WJ8SfP+SKx0/rxj39cU [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABpMAAAUiCAIAAABunJl2AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAPAAAADgC1/ymVAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAZJxykigAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs/X9UG+mdJ/4+UvHD/PBGUncCVzIbY+HI0aWSJWbtHAa+06btPsjTS98764MPk+zthJGniSGIEzP37OZgehX7OPn2KH1kfqzbgnV8adgMyT19CLDeTLPdaIgbOxh3I8s2R5LLdA90N24QBPHLqlJJ9w+dq6NvlTzQsU1R5v36S/PwPJ/nTRXjTn1Ol [...]
 <p>What if you wanted to change the axis labels?</p>
 <pre class="r"><code>p$scales$scales[[1]]$name <- "My X-Axis"
 p$scales$scales[[2]]$name <- "My Y-Axis"
 print(p)</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzde1xUdf4/8M+ZK8yFGRoGVDRQ+WoG5oJakablhaRAg/hmbqV9K8vabWd3u3y/v6zd2se2tt8uu9bWurpb0bfEC0EKra7aKpViG15aKcpLDQIiysAMwzAXZub8/vgsZ1FQET4zh5nzej7648OZc968OZG+O+fz/nw4nucJAAAAAEAPmdgJAAAAAMDwggIRAAAAAM6BAhEAAAAAzoECEQAAAADOgQIRAAAAAM6BAhEAAAAAzqEQOwHxvfbaa6dOnRrImTzPBwIBuVzOcdzQv28gECCEyOXyoYdim5jf7+c4jkliwWAwGAwqFGx+zfx+v0wmk8kY/F8NErtczBNj+N8Rz/NMEpPIf+DDNjH8yXO5kFi/fvazn [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABpMAAAUiCAIAAABunJl2AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAPAAAADgC1/ymVAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAavhX1MAAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs/X9UG+mdJ/4+UvHD/PBGUncCVzIbY+HI0aWSJWbtHAa+06btPsjTS98764MPk+zthJGniSGIEzP37OZgehX7OPn2KH1kfqzbgnV8adgMyT19CLDeTLPdaIgbOxh3I8s2R5LLdA90N24QBPHLqlJJ9w+dq6NvlTzQsU1R5v36S/PwPJ/nTRXjTn1Ol [...]
 <p>Note that it is possible to order the sample/species indices by any of the ordination methods supported in the <code>ordinate</code> function; and also that the color scheme can be modified with additional arguments.</p>
 <p>Heat map representation of the Crenarchaeota phylum abundance pattern across different sample types in the Global Patterns dataset.</p>
 </div>
@@ -209,7 +275,7 @@ print(p)</code></pre>
 <p>Interestingly, at this level of analysis and parameter-settings the two major sub-graphs appear to be best explained by the sequencing technology and not the subject enterotype, suggesting that the choice of sequencing technology has a major effect on the microbial community one can observe. This seems to differ somewhat with the inferences described in the “enterotype” article (<a href="http://www.nature.com/nature/journal/v473/n7346/full/nature09944.html">Arumugam 2011</a>). However [...]
 <pre class="r"><code>data(enterotype)
 plot_net(enterotype, maxdist=0.4, color="SeqTech", shape="Enterotype")</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABCAAAAKgCAIAAADF7pvQAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdd3xT9/U//vfV9B7ywNsGgxPALIcCARqzzDDCIeTzYYUykpiUpMk3pB+StM2H9pOOXxPa0maUpg4JI8OQNiEgRjAjTlkh1GZDhGw8ZFvDlvfQuvf3x7u5VWVbSLJkS/br+egfQrq69y1S7Ht03ucchuM4AgAAAAAA4AmCgV4AAAAAAAAMHggwAAAAAADAYxBgAAAAAACAxyDAAAAAAAAAj0GAAQAAAAAAHoMAAwAAAAAAPAYBBgAAAAAAeAwCDAAAAAAA8BgEGAAAAAAA4DEIMAAAAAAAwGMQYAAAAAAAgMcgwAAAAAAAAI9BgAEAAAAAAB6DAAMAAAAAADwGAQYAAAAAAHgMAgwAAAAAAPAYBBgAAAAAA [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB8YAAASxCAIAAADNqmTjAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAABcAAAASQCA3YoOAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAcV3ZQBQAAAAl2cEFnAAAIQAAABUAA39d07AAAgABJREFUeNrs3XdAneX9///rPuewIUCAhCyyN9l7EAIJ67ASrauatlpb9WN3rR+tn1rbarVqf1qtddbW1hHrSMIeARJC9t57k4SEsMJe5/79cfzePd7EJCTAdcbz8df1fnOfmxfYKry5z3UpqqoKAAAAAEAXOXXqVGFhYUpKSnBwsOwsAAAA6GIKI3UAAAAA6Cqtr [...]
 <p>Network representation of the relationship between microbiome samples in the “Enterotype” dataset (<a href="http://www.nature.com/nature/journal/v473/n7346/full/nature09944.html">Arumugam 2011</a>).</p>
 </div>
 <div id="ordination-methods" class="section level2">
@@ -237,15 +303,15 @@ help(plot_ordination)</code></pre>
 <pre class="r"><code>GloPa.pcoa = ordinate(GlobalPatterns, method="PCoA", distance=GPUF)</code></pre>
 <p>Before we look at the results, let’s first investigate how much of the total distance structure we will capture in the first few axes. We can do this graphically with a “scree plot”, an ordered barplot of the relative fraction of the total eigenvalues associated with each axis.</p>
 <pre class="r"><code>plot_scree(GloPa.pcoa, "Scree plot for Global Patterns, UniFrac/PCoA")</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkAAAAGACAMAAAByRC0tAAAC+lBMVEUAAAABAQECAgIDAwMEBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUWFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUnJycoKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFiYmJjY2NkZGRlZ [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABGQAAALjCAAAAABxeoxDAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJb0ZGcwAAAA8AAAAOALX/KZUAAAAJcEhZcwAAHYcAAB2HAY/l8WUAAAAHdElNRQfhCwYAAB0gcWCTAAAACXZwQWcAAASAAAADAAD9azObAABKX0lEQVR42u2deYAcVbm3D0vYZRNRAQFRwfUiX7tcxXu5I3oFpMKEkIQsQkIwLEGCEhKQQNgSCYjsSQAhIhBWDTdBlAQEAgEVEMTIIkSQaAL0JDPZyD71naru09XdVW/X25PumaHnef6Y7j791q+Wrnq66lRVj/E7lYX3XXvxlb98YX3njrUTaXv4tkmX//zJ97p6OqACf [...]
 <p>Scree plot of the PCoA used to create Figure 5 from the “Global Patterns” article(<a href="http://www.pnas.org/content/early/2010/06/02/1000080107">Caporaso 2011</a>). The first three axes represent 43% of the total variation in the distances. Interestingly, the fourth axis represents another 9%, and so may warrant exploration as well. A scree plot is an important tool for any ordination method, as the relative importance of axes can vary widely from one dataset to another.</p>
 <p>Next, we will reproduce Figure 5 from the “Global Patterns” article(<a href="http://www.pnas.org/content/early/2010/06/02/1000080107">Caporaso 2011</a>), but separating the three axes into 2 plots using <code>plot_ordination()</code>.</p>
 <pre class="r"><code>(p12 <- plot_ordination(GlobalPatterns, GloPa.pcoa, "samples", color="SampleType") + 
   geom_point(size=5) + geom_path() + scale_colour_hue(guide = FALSE) )</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdd3xT5eLH8eckadK06W5auqBllVGGlLJRXIgKiANwcpWr4ARRERX14lVUFAf36pXhwg0uRP1xFVAU2WUXWnYn3btN0zTJ+f1RLxLoSEpGx+f9Vzjnycn3FZr02zOeI8myLAAAAID/UXg6AAAAAFoXCiIAAABsUBABAABgg4IIAAAAGxREAAAA2KAgAgAAwIbK0wEc8K9//ev06dP1j81ms0KhUCgouC1ktVolSZIkydNB2iqr1Wq1WlWqtvQJam0sFotSqfR0ijaMr8ELxNfgBbJYLEIIPsUXopV8DV5//fVDhw49Z2Fb+vV24sSJJUuW1D8uLi728fHRarWejdR2GY1GSZI0Go2ng7RVBoPBaDQGBwd7O [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABqQAAAUiCAIAAADkswA3AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAPAAAADgC1/ymVAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAhDx4cFAAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs3WdgHOW5t/F7Zpu0u+rNliX3IlxwkSvNwZQAoRkw3ZRA5OADgRxCgFR8cpLYgRQIHF6bklBMsak2HQdMM+6423K3JKt3rXa1beb9sMYIV9na1Wh3r9+HRDs7c+/9TCYqfz8zj6LruuCY1qxZs2/fvsO3BwIBXdcVRTGbzUb3iDilaZqmaVyBMIqma [...]
 <pre class="r"><code>(p13 <- plot_ordination(GlobalPatterns, GloPa.pcoa, "samples", axes=c(1, 3),
   color="SampleType") + geom_line() + geom_point(size=5) )</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdd2BT5foH8Peck9E2oyuddFFklt2KiMheMhwoU8SFExRwe/nhFXBe9SqIIuqVKyoq4kaUjexZChTKSim00N2k2eOM3x/xIqO0SZvkZHw/f4WcJ+c8CTknT9/zDkoQBAIAAAAA8D+02AkAAAAAQGBBgQgAAAAAl0GBCAAAAACXQYEIAAAAAJdBgQgAAAAAl0GBCAAAAACXkYidgAcWLVp04cIFQgjLsjRN03T4VrccxzEMI3YWohEEwfUJUBQldi6iCfPvAM/zPM9LJMF0BfMuQRB4ng/n7wDHcYIghPN3gOd5iqL8dhl8+OGHs7Oz/XMsCATBdGpptdqFCxcSQnQ6nUwmUygUYmckGqPRqFQqw7Y84nm+r [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABpIAAAUiCAIAAACBXvJIAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAPAAAADgC1/ymVAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAhDx4cFAAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs3XecE3X+x/HPzCTZ3Wyv9Lb0svQiIiLYwN4VFT09y9n1iud5Z787PfV39t6xYBcbKIoCVqr0vnRYttf0zMzvj+DKUbckO0n29fzDR5LNfPfzDWtm8s63KKZpCg5p8eLFW7du3fuRYDAYet1sNpuiKFYXCGsYhqHrut1ut7oQWEbXdcMwhLeC1i30V [...]
 </div>
 <div id="non-metric-multi-dimensional-scaling-nmds" class="section level3">
 <h3><span class="header-section-number">6.3.2</span> non-metric Multi-Dimensional Scaling (NMDS)</h3>
@@ -256,46 +322,49 @@ load(system.file("doc", "Unweighted_UniFrac.RData", package=
 # perform NMDS, set to 2 axes
 GP.NMDS <- ordinate(GlobalPatterns, "NMDS", GPUF)</code></pre>
 <pre><code>## Run 0 stress 0.1432774 
-## Run 1 stress 0.167021 
-## Run 2 stress 0.3274248 
+## Run 1 stress 0.1432774 
+## ... New best solution
+## ... Procrustes: rmse 2.408039e-05  max resid 8.77801e-05 
+## ... Similar to previous best
+## Run 2 stress 0.167021 
 ## Run 3 stress 0.1432774 
 ## ... New best solution
-## ... Procrustes: rmse 4.769305e-06  max resid 1.235353e-05 
+## ... Procrustes: rmse 8.939729e-06  max resid 3.13481e-05 
 ## ... Similar to previous best
-## Run 4 stress 0.2156366 
-## Run 5 stress 0.1432625 
+## Run 4 stress 0.1432625 
 ## ... New best solution
-## ... Procrustes: rmse 0.0034936  max resid 0.01262965 
-## Run 6 stress 0.1809282 
-## Run 7 stress 0.1432625 
-## ... Procrustes: rmse 2.071226e-06  max resid 7.072485e-06 
+## ... Procrustes: rmse 0.003457622  max resid 0.01250109 
+## Run 5 stress 0.2380867 
+## Run 6 stress 0.2418642 
+## Run 7 stress 0.1809282 
+## Run 8 stress 0.2345947 
+## Run 9 stress 0.1432776 
+## ... Procrustes: rmse 0.003381842  max resid 0.01227859 
+## Run 10 stress 0.1432625 
+## ... New best solution
+## ... Procrustes: rmse 2.834687e-05  max resid 9.201282e-05 
 ## ... Similar to previous best
-## Run 8 stress 0.2427113 
-## Run 9 stress 0.167021 
-## Run 10 stress 0.1432629 
-## ... Procrustes: rmse 8.407854e-05  max resid 0.0002111493 
+## Run 11 stress 0.1432625 
+## ... Procrustes: rmse 4.363646e-06  max resid 8.121218e-06 
 ## ... Similar to previous best
-## Run 11 stress 0.167021 
-## Run 12 stress 0.185632 
+## Run 12 stress 0.1856305 
 ## Run 13 stress 0.1432774 
-## ... Procrustes: rmse 0.003416941  max resid 0.01236303 
-## Run 14 stress 0.1432774 
-## ... Procrustes: rmse 0.00348  max resid 0.01258196 
-## Run 15 stress 0.1432777 
-## ... Procrustes: rmse 0.003236672  max resid 0.01174769 
+## ... Procrustes: rmse 0.003502555  max resid 0.01266025 
+## Run 14 stress 0.167021 
+## Run 15 stress 0.1432774 
+## ... Procrustes: rmse 0.003465947  max resid 0.01253543 
 ## Run 16 stress 0.1432774 
-## ... Procrustes: rmse 0.003475139  max resid 0.01256605 
-## Run 17 stress 0.1432625 
-## ... Procrustes: rmse 4.597367e-06  max resid 1.378576e-05 
-## ... Similar to previous best
+## ... Procrustes: rmse 0.003491653  max resid 0.0126232 
+## Run 17 stress 0.1856306 
 ## Run 18 stress 0.1432774 
-## ... Procrustes: rmse 0.003455308  max resid 0.01249929 
-## Run 19 stress 0.2376474 
-## Run 20 stress 0.167021 
+## ... Procrustes: rmse 0.003450378  max resid 0.01248632 
+## Run 19 stress 0.167021 
+## Run 20 stress 0.1432774 
+## ... Procrustes: rmse 0.003503586  max resid 0.01266354 
 ## *** Solution reached</code></pre>
 <pre class="r"><code>(p <- plot_ordination(GlobalPatterns, GP.NMDS, "samples", color="SampleType") +
   geom_line() + geom_point(size=5) )</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdd1wUd/4/8M/s7C5lqVLFQhVFVERIgkrEFoiC0Rh7jNGLSUzTsyR3+Xr5JcaYcjFnjOaiphpbjDGxRrHFWLGAKKCiIChW6rIFtkz5/bGGA11gF7bv6/mHj2XmPTPvpb6cmc9nKJ7nCQAAAADAXwTWbgAAAAAAbAsCIgAAAAA0gYAIAAAAAE0gIAIAAABAEwiIAAAAANAEAiIAAAAANCG0dgOt+OKLL27fvm3tLozD8zzLsjRNUxRl7V5sl+5TZO0ubBfHcRzHCYW2/hNqRTzPcxyH76IWsCzL8zy+i1rAcRwhRCDAuZJmMQxDURRN0y+99FJERIS12wHLsfVfHMXFxcuXL7d2F8ZhGEYqlXp7e4tEImv3Y [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABpMAAAUjCAIAAAClwErTAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAOAAAADgB+o/owAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAilhdNrgAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs3XdgFGX+x/HvzLZseiMECL1KbypSFAuIimIBBRQ97tRTTz294s+G9VQsZzsVTz3hFM6CBUSxK01ROoTeWxLSe9ud8vtjMYTQUnYzu8n79dc4O/PM9xmTQD48RTFNU3C01atX79u3z+oqmguv1ysiiqLY7Xara0EI0zRNVVVVVa0uBKHKNE1N00REV [...]
 <p>The figure nicely shows the relative dissimilarities between microbial communities from different habitats. However, it fails to indicate what was different between the communities. For an ordination method that provides information on the taxa that explain differences between samples (or groups of samples), we use Correspondence Analysis.</p>
 </div>
 <div id="correspondence-analysis-ca" class="section level3">
@@ -317,25 +386,25 @@ sample_data(GP)$human <- factor(human)</code></pre>
 gpca  <- ordinate(GP, "CCA")
 # Scree plot
 plot_scree(gpca, "Scree Plot for Global Patterns Correspondence Analysis")</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwAAAAHgCAMAAAAlhPoXAAAC91BMVEUAAAABAQECAgIDAwMEBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUWFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQnJycoKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZ [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABeQAAAOjCAAAAAD/3ltaAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJb0ZGcwAAAA8AAAAOALX/KZUAAAAJcEhZcwAAHYcAAB2HAY/l8WUAAAAHdElNRQfhCwYAACR/dOibAAAACXZwQWcAAAYAAAADwAC/vuEkAABo3ElEQVR42u29eYAcVbm/f5AdFQGRq6iIuKBXvehvXK7LvRq9XgGpMIAhG0IgGJYgEQmbRMIaWS6XTRIWEVF28OKXTSUiO6iAoCKLgiBBAvZkISshyfSvqrp7pnqq3u5TZ2qqTtV5nj/S3TX9dtV56ryf9FRX16h6ccy7/ryTzvrxo6sL3IQRZ/GvfnLaGT+4d0XR21EMf [...]
 <p>Now let’s investigate how the samples behave on the first few CA axes.</p>
 <pre class="r"><code>(p12 <- plot_ordination(GP, gpca, "samples", color="SampleType") + 
   geom_line() + geom_point(size=5) )</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdeVxUZfs/8PvMAsPMwLCDiCwukOIKaIrkrqRiLomYWllulaalZU/ZpqZtVpqW2renfqZpSpbmFua+IGmCKGooCIqo7DD7es7vj+khRweYgWGWw+f9R6/hzHXOuW6J4cNZ7kMxDEMAAAAAAP6H4+gGAAAAAMC5ICACAAAAgAkERAAAAAAwgYAIAAAAACYQEAEAAADABAIiAAAAAJjgOboBE19++eWdO3csLNbr9RwOh8NhQ8Y1GAxcLtfRXdiAwWBgGIbHc67/r5qGNd8UhmEMBgM7vikMwzAMw46fenyCOSGDwUAIYc1YbDuQ2bNnt2/f3oYbBCfnXL8zCgoK1qxZY2FxVVWVQCAQCoUt2pJ9SKVSLy8vR [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABpMAAAUiCAIAAABunJl2AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAOAAAADgB+o/owAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAlCHPYDQAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs3Xd8FHX+x/HPbE3vJAFCJEAAKaL0pqKnCJyKBRUQ9LDjqadnL1hPAU9P9GdvYOFEBQVRVGwgIop0pBNqSG+bvtndmd8f44UYWspuZpK8no97eJvZmc98vrNks3nnOzOKpmnSOqxdu3b//v2BqOzz+VRVFRGbzaYoitEDxWEej8dqtVosFqMbwWFer [...]
 <pre class="r"><code>(p34 <- plot_ordination(GP, gpca, "samples", axes=c(3, 4), color="SampleType") + 
   geom_line() + geom_point(size=5) )</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdeVxU9f4/8PeZYWaAGfZVdlwg9w0LjdyVVMwyFbcsSyuzsrLlW/3qpqbVza55s6t263otc82upWWYS6khroiiRoKyiCA7szDrOef3xxgBDjADwwwz83o++mM453M+n/dhTscXZ2V4nicAAAAAgD8J7F0AAAAAAHQuCIgAAAAA0AgCIgAAAAA0goAIAAAAAI0gIAIAAABAIwiIAAAAANCIm70LaOSf//znzZs37V2FdXAcx3Gcm1vn+g13EJ7neZ4XCFzi7w2WZXmed5FvluM4hmEYhrF3IbZgMBgEAoHrbMZCodDeVdgCz/PGlXWRzbjjvtknn3yya9euHdEzdE6d6x+5vLy8tWvX2rsK69BoNEqlMiAgw [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABpMAAAUiCAIAAABunJl2AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAOAAAADgB+o/owAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAlCHPYDQAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs3Wd8VGX6//HrTM1k0hOSEJJA6FKkF+kiICDFAlKUVXZtuOrqFv8CguKugq67llWxrfJT2UURpawoVhAVRUCKdAIESO89mXb+D0ZjDAmkzOTMJJ/3ywfhzDn3ue4zDgxf7qKoqiqtw+7du1NSUrSuArVQVdXhcIiIoigGg0HrcuBhdrtdr9frdDqtC [...]
 <p>A clear feature of these plots is that the feces and mock communities cluster tightly together, far away from all other samples on the first axis (CA1). The skin and tongue samples separate similarly, but on the second axis. Taken together, it appears that the first two axes are best explained by the separation of human-associated “environments” from the other non-human environments in the dataset, with a secondary separation of tongue and skin samples from feces.</p>
 <p>We will now investigate further this top-level structure of the data, using an additional feature of correspondence analysis that allows us to compare the relative contributions of individual taxa on the same graphical space: the “biplot”. However, because we just displayed the position of samples in the ordination and there are often many thousands of OTUs, we will focus on creating an interpretable plot of the OTUs. For creating graphics that combine the two plots, try the <code>&qu [...]
 <pre class="r"><code>p1  <- plot_ordination(GP, gpca, "species", color="Phylum")
 (p1 <- ggplot(p1$data, p1$mapping) + geom_point(size=5, alpha=0.5) + 
   facet_wrap(~Phylum) +  scale_colour_hue(guide = FALSE) )</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdeXwV9b0//vdnlrNlIyEbgbAIBBAUBBdEq+JSFaVaLf647VWua9Wv1uqlrW29tbUbLtV7S12r7VWwSq1axKUVlWtbV2QRFBCQAAGSQPbkLLN8Pp/fHxMOmSTnJJA5OSfk9Xz4eJgz55zPvOfNZ2beZ5bPMCklAQAAAAAcpKQ7AAAAAADILCgQAQAAAMAFBSIAAAAAuKBABAAAAAAXFIgAAAAA4IICEQAAAABctHQHQIsWLaqpqUl3FACZKBAIfOc73ykrK+s4cc+ePQ888EC6QgLIcGPHjr311ls7TXz22WdXr16dlngAMt83v/nNk08+udPE9BeIO3bsWLhwYbqjAMg427Ztu/vuu//jP/6jU4HY0tJSU [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABqUAAAUjCAIAAADALbisAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAOAAAADgB+o/owAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAmkXqJtwAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs/XecJFd97/9/zqmqzpNndzYnSbursAgJkAQSYiUEGItsMCBABGOusTH4YRywzP0ZsLG5GPA1F5wI9pcgTDIYkIVASKuEIkoobc5p8kznrqpzfn/UTG9vmNmZ2Vl12NfzoQfM9lR3n/OZ7qqud586R1lrpRX96le/2r17d71bAQBoMo7jvPa1r53Jl [...]
 <p>Species plot of the “Global Patterns” correspondence analysis first two axes, with each phylum on a different panel (“facet”). Only the most abundant 5 phyla among the most abundant 200 taxa (cumulative, all samples) are included. Arbitrary reduction, for computational efficiency of example.</p>
 <p>Let’s try drawing the figure again, only this time summarizing the species points as a 2D density estimate, without any individual points.</p>
 <pre class="r"><code>(p3 <- ggplot(p1$data, p1$mapping) + geom_density2d() +
   facet_wrap(~Phylum) +  scale_colour_hue(guide = FALSE) )</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdd2Ab5f0w8OeGpNMeliV5bztxEsexs/ckEDYUCmWUUkZLSwu84UdbaKEU2jAKlFlKoRAIG8JeWSRkDyexEyfeW5K1193p9vuHgrEl2XEcO3bM8/kruXvuuUePT9JXz0QkSQIQBEEQBEEQ9D10tAsAQRAEQRAEjS0wQIQgCIIgCIL6gAEiBEEQBEEQ1AcMECEIgiAIgqA+YIAIQRAEQRAE9QEDRAiCIAiCIKgPfLQLANasWeN0Oke7FBA0FhEE8bvf/S49Pb33wc7Ozscff3y0igRBY1xBQcHtt98ed3DdunX79u0blfJA0Nj3s5/9bObMmXEHRz9AbG5uXr169WiXAoLGnIaGhvvvv/+GG26ICxBDoZDVa [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABqUAAAUjCAIAAADALbisAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAOAAAADgB+o/owAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAodsKksAAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs3Xd83OT5APBXOkm399k+7z1ix5lkJySEGaCsshr2KC0toy0UKKUDWihl9dcWuphl700hEMjeO7GdeG+ffXvrTjpJvz9kHxfHSXRnO2eH5/vJB3Q66dWr12fJeu593wcTBAGdjHbt2tXZ2ZnuWgAAAJhkZDLZhRdeKGXLtra2vXv3pru+AAAAJp8zz [...]
 <p>These figures reveal some useful patterns and interesting outliers, but what if we want a complete summary of how each phylum is represented along each axis? The following code is a way to show this using boxplots, while still avoiding the occlusion problem (points layered on top of each other), and also conveying some useful information about the pattern of taxa that contribute to the separation of human-associated samples from the other sample types. It re-uses the data that was sto [...]
 <pre class="r"><code>library("reshape2")
 # Melt the species-data.frame, DF, to facet each CA axis separately
@@ -355,10 +424,10 @@ p <- ggplot(mdf, aes(Phylum, value, color=Phylum)) +
   mapping = aes(Phylum, value+0.1, color=Phylum, label=Family), 
   vjust=0,
   size=2))</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdfXwU5b3//881M7ub7CbkhoRbuResgKDGilpRsGjx5mC1La1Vod62tOeI9ejXfn/Wb09Pv1SPbcUe2h6/3tRabbVarRUrihZKW8TKAVRQQFRAQKOEJJvNzd7MzPX7YzkxEyAJuLuzu3k9/+AxmZ3d68PsXDvvveZmldZaAAAAgP9h+F0AAAAA8gsBEQAAAB4ERAAAAHgQEAEAAOBBQAQAAIAHAREAAAAelt8FyO23315fX+93FQAAAP3RJZdcMm3atG4z/Q+I77777o033uh3FQAAAP2L67qXXXbZ9OnTDwyIHGIGAACABwERAAAAHgREAAAAeBAQAQAA4EFABAAAgAcBEQAAAB4ERADoieM4v/3tb6+++ [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABqQAAAUiCAIAAADkswA3AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAPAAAADgC1/ymVAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAApAcWUJgAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs3XmAXXV98P/vXWbJLJnJDiRsAQIGA0gRUVAQXKAoCC3IIhaVR0tdSp+68lh/0Nalgm1t3YrUVhSxWkQpSrEIhMWoIJDKIkgSCISEkElmJpntLuf8/rg4hGSyL+fe77xe/3hz5tzD58R7Zu68c849uTRNQ1x+/etfP/XUU1lPAQAAAAC71ZFHHlnMe [...]
 <p>One way to relate some of the high-level patterns we observed from correspondence analysis is to directly visualize the abundances in an organized, quantitative way, to see if this does in fact support / explain the human/environment microbiome differences. Here is an example using the <code>plot_bar</code> function described in an earlier section.</p>
 <pre class="r"><code>plot_bar(GP, x="human", fill="SampleType", facet_grid= ~ Phylum)</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdeVxU1fsH8GeAYRtEUBACQhAVyQ0RS41cERUxkb6uqZWClZYLLpVrgFuKSykuFZmkQpqVeyTueyaCklsmau6igMDsM/f3x/01MjCAwlzuZebzftXrNd6Ze85zD2dmnrnn3nNEDMMQAAAAAMB/LPgOAAAAAACEBQkiAAAAAOhBgggAAAAAepAgAgAAAIAeJIgAAAAAoAcJIgAAAADoseI7AKNZtGjR/fv3+Y7C9Nna2n7yySfOzs6lN169enX16tV8hWRWXn311eHDh5fZ+OWXX+bm5vISj1mxtbWdMGGCh4dH6Y23bt1atmwZXyGZlTZt2owePbrMxnXr1l26dImXeMzNhAkTmjRpwncUUHtMJ0G8fv361 [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABpIAAAUjCAIAAABKAiHtAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAPAAAADgC1/ymVAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAr78v1CgAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs3Xd8FNX+//GzJT0hDRJKCCFSA0iTIh0FBKkqvaggeEUUudgQxI4iqCAKeAUBaVIVCUgRRQiIhtClBQglpPeQusnu/v6Ye/e33zR2Q8jMJK/n46GPYXZ293NOdndm3ztzjsZsNgvcBydOnLh586bcVQAVrE2bNsHBwbZsuXPnzsLCQrnrBSrYwIEDn [...]
 <p>In this figure we’ve used the <code>threshold</code> parameter to omit all but phyla accounting for the top 90% of phyla in any one sample. Some patterns emerging from this display appear to be: (1) Cyanobacteria, Actinobacteria appear under-represented in human samples; (2) conversely, Firmicutes appear over-represented in human samples; (3) Acidobacteria, Verrucomicrobia appear over-represented in the fecal samples; (4) the only Crenarchaeota were observed in the Mock sample, which  [...]
 </div>
 <div id="double-principle-coordinate-analysis-dpcoa" class="section level3">
@@ -374,14 +443,14 @@ p2dpcoa <- pdpcoa + scale_shape_manual(values=man.shapes)</code></pre>
 <p>A biplot representation of a Double Principal Coordinate Analysis (DPCoA), on a simplified version of the “Global Patterns” dataset with only the most abundant 200 OTUs included.</p>
 <pre class="r"><code># Show just Samples or just Taxa
 plot_ordination(GP, GP.dpcoa, type="taxa", shape="Phylum")</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAMAAADK0+6WAAAC/VBMVEUAAAABAQECAgIDAwMEBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUWFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJycoKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFiYmJjY2NkZ [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABpQAAAUiCAAAAAAmSUqEAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJb0ZGcwAAAA4AAAAOAH6j+jAAAAAJcEhZcwAAHYcAAB2HAY/l8WUAAAAHdElNRQfhCwYAAC0GqFA/AAAACXZwQWcAAAbAAAAFQACRWBtpAACAAElEQVR42u3dCWDcdZn/8SdtekALpdxYUGCr4IVC8WRhrbgiiwOtWJCCAnIvKioVREBWXQqCJyiHx+qugAgq/IVVEF25xFURXRcFLFiWWwNNsfSibX7/+f0mSWfSyTf5pL8n86R5v///ZY7M8WQIz8tJJhPL3Lv7ewP13auvvnbAC7Wg71793VaP0KzvXB10rmtaPUGzq [...]
 <pre class="r"><code>plot_ordination(GP, GP.dpcoa, type="samples", color="SampleType")</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdeVyU5f7/8WsYRpTdhFTcIBVzRQXNhdRcIBUzOSounMoyyzRNzc5Jv3bKcqlosTxfl++xjuZuiylmuB8xwRIRJQ2FxC03FBiGZZi55/79cXf4cSMqKMwt4+v5R497rnv7XMBcvb1XnSzLAgAAAPgvJ60LAAAAwP2FgAgAAAAVAiIAAABUCIgAAABQISACAABAhYAIAAAAFWetC6iEzz777I8//tC6igqRJEmv12tdRdWTJEkI4Xhdk2VZlmUnJ0f795Isy8qfok6n07qWKsZXrMZxyF+ZA3/FbDabTqcr3a8JEyY88sgjGpYEO6tJATEjI2PRokVaV1EhRqPR09NT6yqqXk5Ojl6v9/Dw0LqQKiZJUlFRk [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABpIAAAUiCAIAAACBXvJIAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAPAAAADgC1/ymVAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAtBqhQPwAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs3XdgFGX+x/Hvlmx6DyFAwFCldwHpqFRRROlF5U6qiiCnJ3Cg4ClRUdBDQUBBBEHpcoJgOSEignSkE4qBNNLLpmx25/fHePntpRHqzIb364+7zTPPzH6fGdkkn8wzj0FRFEGZDhw4cOnSJa2rqIAKCgqMRqPRaNS6EJSLw+Gw2+0iYjKZuGquQr1qb [...]
 <pre class="r"><code># Split
 plot_ordination(GP, GP.dpcoa, type="split",
                 color="SampleType", shape="Phylum") +
   ggplot2::scale_colour_discrete()</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdeVgT59438DskYd8FQVREUVGxFQE3iooiUMWlUDaBWq2odamIWmyPx7biUq3UDfqorT2K4q5HbfH4RsWqoFgXkAO1omDxAFUUFENIyDbz/jHPyUMgULZMAL+fq1evySz3/ZthBr7ek0w4NE0TAAAAAID/0tN1AQAAAADQsSAgAgAAAIAaBEQAAAAAUIOACAAAAABqEBABAAAAQA0CIgAAAACo4em6gBbYtGnTs2fPdF0FALRAWFiYl5dXvZlxcXF4wBZA57J06dJ+/frpugpgT2cKiI8fP165cqWuqwCA5oqMjGyYDgkh1dXV8fHx7NcDAK1QWloaHx//wQcf6LoQYBVuMQMAAACAGgREAAAAAFCDgAgAA [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABpIAAAUiCAIAAACBXvJIAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAPAAAADgC1/ymVAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAun6EBhQAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs3Xd4FFXf//HvZje9QwiBBEyQEgELIB0REBCUm6J0EjUKBhRRsNCkiZCAIEUEBaRJJzQREJB+K4qRKtKbCSmQnpC+u78/5nn22d8GYoCEnSzv13Vf95WcPTPzndmVHT6cM0djNBoFxfrzzz+vX79u7SoAAHgkPPPMMzVq1ChJz61bt+r1emvXCwDAI [...]
 </div>
 </div>
 <div id="distance-methods" class="section level2">
@@ -432,7 +501,7 @@ GP.tip.labels <- as(get_variable(GlobalPatterns, "SampleType"), &qu
 # This is the actual hierarchical clustering call, specifying average-link clustering
 GP.hclust     <- hclust(GPUF, method="average")
 plot(GP.hclust, col=cols)</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdeVxU5f4H8M+wg+zIPuCCCKKIO6aZmrgQprmF5VK5ZWp1f5Wmt0wrzTa1e1st69bNm1ppZWRXEyxN00RRM8FAXJAdAdmXYc7vj+GOHASB4QznwHzer/4YzvI9X03xw3nO8xyVIAggIiIiIvofM7kbICIiIiJlYUAkIiIiIhEGRCIiIiISYUAkIiIiIhEGRCIiIiISYUAkIiIiIhEGRCIiIiISYUAkIiIiIhEGRCIiIiISYUAkIiIiIhEGRCIiIiISYUAkIiIiIhEGRCIiIiISYUAkIiIiIhEGRCIiIiISYUAkIiIiIhEGRCIiIiISYUAkIiIiIhEGRCIiIiISYUAkIiIiIhEGRCIiIiISYUAkIiIiIhEGR [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABjMAAAT6CAIAAACf3gZRAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAMAAAAQQBEigjxAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAAv6KYxEwAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs3XdclWXjx/HvYcsQBMUF7r1Xaq7UyjRtqKWVWU9ladOW2rCdj5VlO9OnYfX0ZJZZliN3aVrujRNUcIGCbJBxfn/AD4+AiApcZ3zer/445z73fZ/vdSSFL/d9XRar1SoAAIAyFRkZuWjRot9//z0yMjI2NjY+Pj4gICAkJKR169Zdu3YdOnRow4YNS [...]
 <p>An alternative means of summarizing a distance matrix via hierarchical clustering and plotting as an annotated dendrogram. Compare with Figure 4 from the <a href="http://www.pnas.org/content/early/2010/06/02/1000080107">Global Patterns</a>). Some differences in Figure~\ref{fig:GPfig4 from the original article might be explained by <a href="http://www.pnas.org/content/early/2010/06/02/1000080107">Global Patterns</a> in phyloseq being the summed observations from both primer directions  [...]
 </div>
 </div>
@@ -445,12 +514,41 @@ plot(GP.hclust, col=cols)</code></pre>
 
 
 
+
+</div>
+
+<script>
+
+// add bootstrap table styles to pandoc tables
+function bootstrapStylePandocTables() {
+  $('tr.header').parent('thead').parent('table').addClass('table table-condensed');
+}
+$(document).ready(function () {
+  bootstrapStylePandocTables();
+});
+
+
+</script>
+
+<script type="text/x-mathjax-config">
+  MathJax.Hub.Config({
+    "HTML-CSS": {
+      styles: {
+        ".MathJax_Display": {
+           "text-align": "center",
+           padding: "0px 150px 0px 65px",
+           margin: "0px 0px 0.5em"
+        },
+      }
+    }
+  });
+</script>
 <!-- dynamically load mathjax for compatibility with self-contained -->
 <script>
   (function () {
     var script = document.createElement("script");
     script.type = "text/javascript";
-    script.src  = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
+    script.src  = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
     document.getElementsByTagName("head")[0].appendChild(script);
   })();
 </script>
diff --git a/inst/doc/phyloseq-basics.R b/inst/doc/phyloseq-basics.R
index dc905b5..4b753a2 100644
--- a/inst/doc/phyloseq-basics.R
+++ b/inst/doc/phyloseq-basics.R
@@ -1,47 +1,47 @@
-## ---- eval=FALSE---------------------------------------------------------
+## ---- eval=FALSE-----------------------------------------------------------
 #  vignette("phyloseq_analysis")
 
-## ----load-packages, message=FALSE, warning=FALSE-------------------------
+## ----load-packages, message=FALSE, warning=FALSE---------------------------
 library("phyloseq")
 
-## ---- eval=FALSE---------------------------------------------------------
+## ---- eval=FALSE-----------------------------------------------------------
 #  myOTU1 <- import_RDP_cluster("path/to/my/filename.clust")
 
-## ---- eval=FALSE---------------------------------------------------------
+## ---- eval=FALSE-----------------------------------------------------------
 #  data(GlobalPatterns)
 #  data(esophagus)
 #  data(enterotype)
 #  data(soilrep)
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 data(GlobalPatterns)
 GlobalPatterns
 
-## ---- eval=FALSE---------------------------------------------------------
+## ---- eval=FALSE-----------------------------------------------------------
 #  otu1 <- otu_table(raw_abundance_matrix, taxa_are_rows=FALSE)
 #  sam1 <- sample_data(raw_sample_data.frame)
 #  tax1 <- tax_table(raw_taxonomy_matrix)
 #  tre1 <- read_tree(my_tree_file)
 
-## ---- eval=FALSE---------------------------------------------------------
+## ---- eval=FALSE-----------------------------------------------------------
 #  ex1b <- phyloseq(my_otu_table, my_sample_data, my_taxonomyTable, my_tree)
 
-## ---- eval=FALSE---------------------------------------------------------
+## ---- eval=FALSE-----------------------------------------------------------
 #  ex1c <- phyloseq(my_otu_table, my_sample_data)
 
-## ----echo=FALSE----------------------------------------------------------
+## ----echo=FALSE------------------------------------------------------------
 topN <- 20
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 data(GlobalPatterns)
 most_abundant_taxa <- sort(taxa_sums(GlobalPatterns), TRUE)[1:topN]
 ex2 <- prune_taxa(names(most_abundant_taxa), GlobalPatterns)
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 topFamilies <- tax_table(ex2)[, "Family"]
 as(topFamilies, "vector")
 
-## ---- eval=FALSE---------------------------------------------------------
+## ---- eval=FALSE-----------------------------------------------------------
 #  testOTU <- otu_table(matrix(sample(1:50, 25, replace=TRUE), 5, 5), taxa_are_rows=FALSE)
 #  f1<- filterfun_sample(topk(2))
 #  wh1 <- genefilter_sample(testOTU, f1, A=2)
@@ -49,24 +49,24 @@ as(topFamilies, "vector")
 #  prune_taxa(wh1, testOTU)
 #  prune_taxa(wh2, testOTU)
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 data(GlobalPatterns)
 f1<- filterfun_sample(topp(0.1))
 wh1 <- genefilter_sample(GlobalPatterns, f1, A=(1/2*nsamples(GlobalPatterns)))
 sum(wh1)
 ex2 <- prune_taxa(wh1, GlobalPatterns)
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 print(ex2)
 
-## ---- eval=FALSE---------------------------------------------------------
+## ---- eval=FALSE-----------------------------------------------------------
 #  data(GlobalPatterns)
 #  f1<- filterfun_sample(topf(0.9))
 #  wh1 <- genefilter_sample(GlobalPatterns, f1, A=(1/3*nsamples(GlobalPatterns)))
 #  sum(wh1)
 #  prune_taxa(wh1, GlobalPatterns)
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 data("enterotype")
 library("genefilter")
 flist<- filterfun(kOverA(5, 2e-05))
@@ -76,35 +76,35 @@ identical(ent.trim, prune_taxa(ent.logi, enterotype))
 identical(sum(ent.logi), ntaxa(ent.trim))
 filter_taxa(enterotype, flist, TRUE)
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 ex3 <- subset_samples(GlobalPatterns, SampleType%in%c("Freshwater", "Ocean", "Freshwater (creek)"))
 ex3
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 subset(sample_data(GlobalPatterns), SampleType%in%c("Freshwater", "Ocean", "Freshwater (creek)"))
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 ex4 <- subset_taxa(GlobalPatterns, Phylum=="Firmicutes")
 ex4
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 randomSpecies100 <- sample(taxa_names(GlobalPatterns), 100, replace=FALSE)
 ex5 <- prune_taxa(randomSpecies100, GlobalPatterns)
 
-## ---- eval=FALSE---------------------------------------------------------
+## ---- eval=FALSE-----------------------------------------------------------
 #  data(GlobalPatterns)
 #  ex2 <- transform_sample_counts(GlobalPatterns, I)
 
-## ------------------------------------------------------------------------
+## --------------------------------------------------------------------------
 ex4<- transform_sample_counts(GlobalPatterns, threshrankfun(500))
 
-## ---- eval=FALSE---------------------------------------------------------
+## ---- eval=FALSE-----------------------------------------------------------
 #  ex6 <- tax_glom(GlobalPatterns, taxlevel="Genus")
 
-## ---- eval=FALSE---------------------------------------------------------
+## ---- eval=FALSE-----------------------------------------------------------
 #  ex7 <- tip_glom(GlobalPatterns, speciationMinLength = 0.05)
 
-## ---- eval=FALSE---------------------------------------------------------
+## ---- eval=FALSE-----------------------------------------------------------
 #  install.packages("doParallel")
 #  install.packages("doMC")
 #  install.packages("doSNOW")
diff --git a/inst/doc/phyloseq-basics.html b/inst/doc/phyloseq-basics.html
index 122d664..123ec6f 100644
--- a/inst/doc/phyloseq-basics.html
+++ b/inst/doc/phyloseq-basics.html
@@ -4,22 +4,28 @@
 
 <head>
 
-<meta charset="utf-8">
+<meta charset="utf-8" />
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta name="generator" content="pandoc" />
 
 
 
+
 <title>Basic storage, access, and manipulation of phylogenetic sequencing data with phyloseq</title>
 
+<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMS4zIHwgKGMpIDIwMDUsIDIwMTUgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dG [...]
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<link href="data:text/css;charset=utf-8,html%7Bfont%2Dfamily%3Asans%2Dserif%3B%2Dwebkit%2Dtext%2Dsize%2Dadjust%3A100%25%3B%2Dms%2Dtext%2Dsize%2Dadjust%3A100%25%7Dbody%7Bmargin%3A0%7Darticle%2Caside%2Cdetails%2Cfigcaption%2Cfigure%2Cfooter%2Cheader%2Chgroup%2Cmain%2Cmenu%2Cnav%2Csection%2Csummary%7Bdisplay%3Ablock%7Daudio%2Ccanvas%2Cprogress%2Cvideo%7Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Abaseline%7Daudio%3Anot%28%5Bcontrols%5D%29%7Bdisplay%3Anone%3Bheight%3A0%7D%5Bhidden%5D%2Ctem [...]
+<script src="data:application/x-javascript;base64,LyohCiAqIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqLwppZigidW5kZWZpbmVkIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Iik7K2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgYj1hLmZuLmpxdWVyeS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7aWYoYlswXTwyJiZiWzFdPDl8fDE9PWJbMF0mJjk9PWJbMV0mJmJbMl08MSl0aHJvdy [...]
+<script src="data:application/x-javascript;base64,LyoqCiogQHByZXNlcnZlIEhUTUw1IFNoaXYgMy43LjIgfCBAYWZhcmthcyBAamRhbHRvbiBAam9uX25lYWwgQHJlbSB8IE1JVC9HUEwyIExpY2Vuc2VkCiovCi8vIE9ubHkgcnVuIHRoaXMgY29kZSBpbiBJRSA4CmlmICghIXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJNU0lFIDgiKSkgewohZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KCJwIiksZD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGEuZG9jdW1lbnRFbGVtZW50O3JldHVybiBjLmlubmVySFRNTD0ieDxzdHlsZT4iK2IrIjwvc3R5bGU+IixkLm [...]
+<script src="data:application/x-javascript;base64,LyohIFJlc3BvbmQuanMgdjEuNC4yOiBtaW4vbWF4LXdpZHRoIG1lZGlhIHF1ZXJ5IHBvbHlmaWxsICogQ29weXJpZ2h0IDIwMTMgU2NvdHQgSmVobAogKiBMaWNlbnNlZCB1bmRlciBodHRwczovL2dpdGh1Yi5jb20vc2NvdHRqZWhsL1Jlc3BvbmQvYmxvYi9tYXN0ZXIvTElDRU5TRS1NSVQKICogICovCgovLyBPbmx5IHJ1biB0aGlzIGNvZGUgaW4gSUUgOAppZiAoISF3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiTVNJRSA4IikpIHsKIWZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjthLm1hdGNoTWVkaWE9YS5tYXRjaE1lZGlhfHxmdW5jdGlvbihhKXt2YXIgYixjPWEuZG [...]
+<script src="data:application/x-javascript;base64,CgovKioKICogalF1ZXJ5IFBsdWdpbjogU3RpY2t5IFRhYnMKICoKICogQGF1dGhvciBBaWRhbiBMaXN0ZXIgPGFpZGFuQHBocC5uZXQ+CiAqIGFkYXB0ZWQgYnkgUnViZW4gQXJzbGFuIHRvIGFjdGl2YXRlIHBhcmVudCB0YWJzIHRvbwogKiBodHRwOi8vd3d3LmFpZGFubGlzdGVyLmNvbS8yMDE0LzAzL3BlcnNpc3RpbmctdGhlLXRhYi1zdGF0ZS1pbi1ib290c3RyYXAvCiAqLwooZnVuY3Rpb24oJCkgewogICJ1c2Ugc3RyaWN0IjsKICAkLmZuLnJtYXJrZG93blN0aWNreVRhYnMgPSBmdW5jdGlvbigpIHsKICAgIHZhciBjb250ZXh0ID0gdGhpczsKICAgIC8vIFNob3cgdGhlIHRhYi [...]
 <link href="data:text/css;charset=utf-8,pre%20%2Eoperator%2C%0Apre%20%2Eparen%20%7B%0Acolor%3A%20rgb%28104%2C%20118%2C%20135%29%0A%7D%0Apre%20%2Eliteral%20%7B%0Acolor%3A%20%23990073%0A%7D%0Apre%20%2Enumber%20%7B%0Acolor%3A%20%23099%3B%0A%7D%0Apre%20%2Ecomment%20%7B%0Acolor%3A%20%23998%3B%0Afont%2Dstyle%3A%20italic%0A%7D%0Apre%20%2Ekeyword%20%7B%0Acolor%3A%20%23900%3B%0Afont%2Dweight%3A%20bold%0A%7D%0Apre%20%2Eidentifier%20%7B%0Acolor%3A%20rgb%280%2C%200%2C%200%29%3B%0A%7D%0Apre%20%2Estri [...]
 <script src="data:application/x-javascript;base64,dmFyIGhsanM9bmV3IGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbShwKXtyZXR1cm4gcC5yZXBsYWNlKC8mL2dtLCImYW1wOyIpLnJlcGxhY2UoLzwvZ20sIiZsdDsiKX1mdW5jdGlvbiBmKHIscSxwKXtyZXR1cm4gUmVnRXhwKHEsIm0iKyhyLmNJPyJpIjoiIikrKHA/ImciOiIiKSl9ZnVuY3Rpb24gYihyKXtmb3IodmFyIHA9MDtwPHIuY2hpbGROb2Rlcy5sZW5ndGg7cCsrKXt2YXIgcT1yLmNoaWxkTm9kZXNbcF07aWYocS5ub2RlTmFtZT09IkNPREUiKXtyZXR1cm4gcX1pZighKHEubm9kZVR5cGU9PTMmJnEubm9kZVZhbHVlLm1hdGNoKC9ccysvKSkpe2JyZWFrfX19ZnVuY3Rpb24gaCh0LH [...]
 
 <style type="text/css">code{white-space: pre;}</style>
 <style type="text/css">
-  pre:not([class]) {
-    background-color: white;
-  }
+
 </style>
 <script type="text/javascript">
 if (window.hljs && document.readyState && document.readyState === "complete") {
@@ -30,24 +36,84 @@ if (window.hljs && document.readyState && document.readyState === "complete") {
 </script>
 
 
-<link href="data:text/css;charset=utf-8,body%2C%20td%20%7B%0Afont%2Dfamily%3A%20sans%2Dserif%3B%0Abackground%2Dcolor%3A%20white%3B%0Afont%2Dsize%3A%2013px%3B%0A%7D%0Abody%20%7B%0Amax%2Dwidth%3A%20800px%3B%0Amargin%3A%200%20auto%3B%0Apadding%3A%201em%201em%202em%3B%0Aline%2Dheight%3A%2020px%3B%0A%7D%0A%0Adiv%23TOC%20li%20%7B%0Alist%2Dstyle%3Anone%3B%0Abackground%2Dimage%3Anone%3B%0Abackground%2Drepeat%3Anone%3B%0Abackground%2Dposition%3A0%3B%0A%7D%0A%0Ap%2C%20pre%20%7B%20margin%3A%200em%2 [...]
 
-<script type="text/javascript">
-document.addEventListener("DOMContentLoaded", function() {
-  var links = document.links;  
-  for (var i = 0, linksLength = links.length; i < linksLength; i++)
-    if(links[i].hostname != window.location.hostname)
-      links[i].target = '_blank';
-});
-</script>
+<style type="text/css">
+h1 {
+  font-size: 34px;
+}
+h1.title {
+  font-size: 38px;
+}
+h2 {
+  font-size: 30px;
+}
+h3 {
+  font-size: 24px;
+}
+h4 {
+  font-size: 18px;
+}
+h5 {
+  font-size: 16px;
+}
+h6 {
+  font-size: 12px;
+}
+.table th:not([align]) {
+  text-align: left;
+}
+</style>
+
+<link href="data:text/css;charset=utf-8,body%20%7B%0Amargin%3A%200px%20auto%3B%0Amax%2Dwidth%3A%201134px%3B%0Afont%2Dfamily%3A%20sans%2Dserif%3B%0Afont%2Dsize%3A%2010pt%3B%0A%7D%0A%0Adiv%23TOC%20ul%20%7B%0Apadding%3A%200px%200px%200px%2045px%3B%0Alist%2Dstyle%3A%20none%3B%0Abackground%2Dimage%3A%20none%3B%0Abackground%2Drepeat%3A%20none%3B%0Abackground%2Dposition%3A%200%3B%0Afont%2Dsize%3A%2010pt%3B%0Afont%2Dfamily%3A%20Helvetica%2C%20Arial%2C%20sans%2Dserif%3B%0A%7D%0Adiv%23TOC%20%3E%20 [...]
 
 </head>
 
 <body>
 
+<style type="text/css">
+.main-container {
+  max-width: 828px;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+img {
+  max-width:100%;
+  height: auto;
+}
+.tabbed-pane {
+  padding-top: 12px;
+}
+button.code-folding-btn:focus {
+  outline: none;
+}
+</style>
+
+
+
+<div class="container-fluid main-container">
+
+<!-- tabsets -->
+<script>
+$(document).ready(function () {
+  window.buildTabsets("TOC");
+});
+</script>
+
+<!-- code folding -->
+
+
+
+
+
+
+<div class="fluid-row" id="header">
+
+
+
+<h1 class="title toc-ignore">Basic storage, access, and manipulation of phylogenetic sequencing data with <em>phyloseq</em></h1>
+<h4 class="date"><em>5 November 2017</em></h4>
 
-<div id="header">
-<h1 class="title">Basic storage, access, and manipulation of phylogenetic sequencing data with <em>phyloseq</em></h1>
 </div>
 
 <h1>Contents</h1>
@@ -495,12 +561,41 @@ install.packages("doMPI")</code></pre>
 
 
 
+
+</div>
+
+<script>
+
+// add bootstrap table styles to pandoc tables
+function bootstrapStylePandocTables() {
+  $('tr.header').parent('thead').parent('table').addClass('table table-condensed');
+}
+$(document).ready(function () {
+  bootstrapStylePandocTables();
+});
+
+
+</script>
+
+<script type="text/x-mathjax-config">
+  MathJax.Hub.Config({
+    "HTML-CSS": {
+      styles: {
+        ".MathJax_Display": {
+           "text-align": "center",
+           padding: "0px 150px 0px 65px",
+           margin: "0px 0px 0.5em"
+        },
+      }
+    }
+  });
+</script>
 <!-- dynamically load mathjax for compatibility with self-contained -->
 <script>
   (function () {
     var script = document.createElement("script");
     script.type = "text/javascript";
-    script.src  = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
+    script.src  = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
     document.getElementsByTagName("head")[0].appendChild(script);
   })();
 </script>
diff --git a/inst/doc/phyloseq-mixture-models.R b/inst/doc/phyloseq-mixture-models.R
index ff73e74..30b01b5 100644
--- a/inst/doc/phyloseq-mixture-models.R
+++ b/inst/doc/phyloseq-mixture-models.R
@@ -1,30 +1,30 @@
-## ----load-phyloseq, message=FALSE, warning=FALSE-------------------------
+## ----load-phyloseq, message=FALSE, warning=FALSE---------------------------
 library("phyloseq"); packageVersion("phyloseq")
 
-## ----filepath------------------------------------------------------------
+## ----filepath--------------------------------------------------------------
 filepath = system.file("extdata", "study_1457_split_library_seqs_and_mapping.zip", package="phyloseq")
 kostic = microbio_me_qiime(filepath)
 
-## ----example-path-local, eval=FALSE--------------------------------------
+## ----example-path-local, eval=FALSE----------------------------------------
 #  filepath = "~/Downloads/study_1457_split_library_seqs_and_mapping.zip"
 #  kostic = microbio_me_qiime(filepath)
 
-## ----example-path-remote, eval=FALSE-------------------------------------
+## ----example-path-remote, eval=FALSE---------------------------------------
 #  kostic = microbio_me_qiime(1457)
 
-## ----show-variables------------------------------------------------------
+## ----show-variables--------------------------------------------------------
 kostic
 head(sample_data(kostic)$DIAGNOSIS, 10)
 
-## ----deseq2, message=FALSE, warning=FALSE--------------------------------
+## ----deseq2, message=FALSE, warning=FALSE----------------------------------
 library("DESeq2"); packageVersion("DESeq2")
 
-## ----rm-bad-samples------------------------------------------------------
+## ----rm-bad-samples--------------------------------------------------------
 kostic <- subset_samples(kostic, DIAGNOSIS != "None")
 kostic <- prune_samples(sample_sums(kostic) > 500, kostic)
 kostic
 
-## ----run-deseq2----------------------------------------------------------
+## ----run-deseq2------------------------------------------------------------
 diagdds = phyloseq_to_deseq2(kostic, ~ DIAGNOSIS)
 # calculate geometric means prior to estimate size factors
 gm_mean = function(x, na.rm=TRUE){
@@ -34,7 +34,7 @@ geoMeans = apply(counts(diagdds), 1, gm_mean)
 diagdds = estimateSizeFactors(diagdds, geoMeans = geoMeans)
 diagdds = DESeq(diagdds, fitType="local")
 
-## ----grab-results-process-table------------------------------------------
+## ----grab-results-process-table--------------------------------------------
 res = results(diagdds)
 res = res[order(res$padj, na.last=NA), ]
 alpha = 0.01
@@ -42,11 +42,11 @@ sigtab = res[(res$padj < alpha), ]
 sigtab = cbind(as(sigtab, "data.frame"), as(tax_table(kostic)[rownames(sigtab), ], "matrix"))
 head(sigtab)
 
-## ----table-prelim--------------------------------------------------------
+## ----table-prelim----------------------------------------------------------
 posigtab = sigtab[sigtab[, "log2FoldChange"] > 0, ]
 posigtab = posigtab[, c("baseMean", "log2FoldChange", "lfcSE", "padj", "Phylum", "Class", "Family", "Genus")]
 
-## ----make-markdown-table, echo=FALSE, results='asis'---------------------
+## ----make-markdown-table, echo=FALSE, results='asis'-----------------------
 # Make a markdown table
 posigtab = data.frame(OTU=rownames(posigtab), posigtab)
 cat(paste(colnames(posigtab), collapse=" | "), fill=TRUE)
@@ -55,7 +55,7 @@ dummy = apply(posigtab, 1, function(x){
   cat(paste(x, collapse=" | "), fill=TRUE)
 })
 
-## ----bar-plot------------------------------------------------------------
+## ----bar-plot--------------------------------------------------------------
 library("ggplot2")
 theme_set(theme_bw())
 sigtabgen = subset(sigtab, !is.na(Genus))
diff --git a/inst/doc/phyloseq-mixture-models.html b/inst/doc/phyloseq-mixture-models.html
index 3f03c37..084147b 100644
--- a/inst/doc/phyloseq-mixture-models.html
+++ b/inst/doc/phyloseq-mixture-models.html
@@ -4,22 +4,28 @@
 
 <head>
 
-<meta charset="utf-8">
+<meta charset="utf-8" />
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta name="generator" content="pandoc" />
 
 
 
+
 <title>Example using Negative Binomial in Microbiome Differential Abundance Testing</title>
 
+<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMS4zIHwgKGMpIDIwMDUsIDIwMTUgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dG [...]
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<link href="data:text/css;charset=utf-8,html%7Bfont%2Dfamily%3Asans%2Dserif%3B%2Dwebkit%2Dtext%2Dsize%2Dadjust%3A100%25%3B%2Dms%2Dtext%2Dsize%2Dadjust%3A100%25%7Dbody%7Bmargin%3A0%7Darticle%2Caside%2Cdetails%2Cfigcaption%2Cfigure%2Cfooter%2Cheader%2Chgroup%2Cmain%2Cmenu%2Cnav%2Csection%2Csummary%7Bdisplay%3Ablock%7Daudio%2Ccanvas%2Cprogress%2Cvideo%7Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Abaseline%7Daudio%3Anot%28%5Bcontrols%5D%29%7Bdisplay%3Anone%3Bheight%3A0%7D%5Bhidden%5D%2Ctem [...]
+<script src="data:application/x-javascript;base64,LyohCiAqIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqLwppZigidW5kZWZpbmVkIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Iik7K2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgYj1hLmZuLmpxdWVyeS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7aWYoYlswXTwyJiZiWzFdPDl8fDE9PWJbMF0mJjk9PWJbMV0mJmJbMl08MSl0aHJvdy [...]
+<script src="data:application/x-javascript;base64,LyoqCiogQHByZXNlcnZlIEhUTUw1IFNoaXYgMy43LjIgfCBAYWZhcmthcyBAamRhbHRvbiBAam9uX25lYWwgQHJlbSB8IE1JVC9HUEwyIExpY2Vuc2VkCiovCi8vIE9ubHkgcnVuIHRoaXMgY29kZSBpbiBJRSA4CmlmICghIXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJNU0lFIDgiKSkgewohZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KCJwIiksZD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGEuZG9jdW1lbnRFbGVtZW50O3JldHVybiBjLmlubmVySFRNTD0ieDxzdHlsZT4iK2IrIjwvc3R5bGU+IixkLm [...]
+<script src="data:application/x-javascript;base64,LyohIFJlc3BvbmQuanMgdjEuNC4yOiBtaW4vbWF4LXdpZHRoIG1lZGlhIHF1ZXJ5IHBvbHlmaWxsICogQ29weXJpZ2h0IDIwMTMgU2NvdHQgSmVobAogKiBMaWNlbnNlZCB1bmRlciBodHRwczovL2dpdGh1Yi5jb20vc2NvdHRqZWhsL1Jlc3BvbmQvYmxvYi9tYXN0ZXIvTElDRU5TRS1NSVQKICogICovCgovLyBPbmx5IHJ1biB0aGlzIGNvZGUgaW4gSUUgOAppZiAoISF3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiTVNJRSA4IikpIHsKIWZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjthLm1hdGNoTWVkaWE9YS5tYXRjaE1lZGlhfHxmdW5jdGlvbihhKXt2YXIgYixjPWEuZG [...]
+<script src="data:application/x-javascript;base64,CgovKioKICogalF1ZXJ5IFBsdWdpbjogU3RpY2t5IFRhYnMKICoKICogQGF1dGhvciBBaWRhbiBMaXN0ZXIgPGFpZGFuQHBocC5uZXQ+CiAqIGFkYXB0ZWQgYnkgUnViZW4gQXJzbGFuIHRvIGFjdGl2YXRlIHBhcmVudCB0YWJzIHRvbwogKiBodHRwOi8vd3d3LmFpZGFubGlzdGVyLmNvbS8yMDE0LzAzL3BlcnNpc3RpbmctdGhlLXRhYi1zdGF0ZS1pbi1ib290c3RyYXAvCiAqLwooZnVuY3Rpb24oJCkgewogICJ1c2Ugc3RyaWN0IjsKICAkLmZuLnJtYXJrZG93blN0aWNreVRhYnMgPSBmdW5jdGlvbigpIHsKICAgIHZhciBjb250ZXh0ID0gdGhpczsKICAgIC8vIFNob3cgdGhlIHRhYi [...]
 <link href="data:text/css;charset=utf-8,pre%20%2Eoperator%2C%0Apre%20%2Eparen%20%7B%0Acolor%3A%20rgb%28104%2C%20118%2C%20135%29%0A%7D%0Apre%20%2Eliteral%20%7B%0Acolor%3A%20%23990073%0A%7D%0Apre%20%2Enumber%20%7B%0Acolor%3A%20%23099%3B%0A%7D%0Apre%20%2Ecomment%20%7B%0Acolor%3A%20%23998%3B%0Afont%2Dstyle%3A%20italic%0A%7D%0Apre%20%2Ekeyword%20%7B%0Acolor%3A%20%23900%3B%0Afont%2Dweight%3A%20bold%0A%7D%0Apre%20%2Eidentifier%20%7B%0Acolor%3A%20rgb%280%2C%200%2C%200%29%3B%0A%7D%0Apre%20%2Estri [...]
 <script src="data:application/x-javascript;base64,dmFyIGhsanM9bmV3IGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbShwKXtyZXR1cm4gcC5yZXBsYWNlKC8mL2dtLCImYW1wOyIpLnJlcGxhY2UoLzwvZ20sIiZsdDsiKX1mdW5jdGlvbiBmKHIscSxwKXtyZXR1cm4gUmVnRXhwKHEsIm0iKyhyLmNJPyJpIjoiIikrKHA/ImciOiIiKSl9ZnVuY3Rpb24gYihyKXtmb3IodmFyIHA9MDtwPHIuY2hpbGROb2Rlcy5sZW5ndGg7cCsrKXt2YXIgcT1yLmNoaWxkTm9kZXNbcF07aWYocS5ub2RlTmFtZT09IkNPREUiKXtyZXR1cm4gcX1pZighKHEubm9kZVR5cGU9PTMmJnEubm9kZVZhbHVlLm1hdGNoKC9ccysvKSkpe2JyZWFrfX19ZnVuY3Rpb24gaCh0LH [...]
 
 <style type="text/css">code{white-space: pre;}</style>
 <style type="text/css">
-  pre:not([class]) {
-    background-color: white;
-  }
+
 </style>
 <script type="text/javascript">
 if (window.hljs && document.readyState && document.readyState === "complete") {
@@ -30,24 +36,84 @@ if (window.hljs && document.readyState && document.readyState === "complete") {
 </script>
 
 
-<link href="data:text/css;charset=utf-8,body%2C%20td%20%7B%0Afont%2Dfamily%3A%20sans%2Dserif%3B%0Abackground%2Dcolor%3A%20white%3B%0Afont%2Dsize%3A%2013px%3B%0A%7D%0Abody%20%7B%0Amax%2Dwidth%3A%20800px%3B%0Amargin%3A%200%20auto%3B%0Apadding%3A%201em%201em%202em%3B%0Aline%2Dheight%3A%2020px%3B%0A%7D%0A%0Adiv%23TOC%20li%20%7B%0Alist%2Dstyle%3Anone%3B%0Abackground%2Dimage%3Anone%3B%0Abackground%2Drepeat%3Anone%3B%0Abackground%2Dposition%3A0%3B%0A%7D%0A%0Ap%2C%20pre%20%7B%20margin%3A%200em%2 [...]
 
-<script type="text/javascript">
-document.addEventListener("DOMContentLoaded", function() {
-  var links = document.links;  
-  for (var i = 0, linksLength = links.length; i < linksLength; i++)
-    if(links[i].hostname != window.location.hostname)
-      links[i].target = '_blank';
-});
-</script>
+<style type="text/css">
+h1 {
+  font-size: 34px;
+}
+h1.title {
+  font-size: 38px;
+}
+h2 {
+  font-size: 30px;
+}
+h3 {
+  font-size: 24px;
+}
+h4 {
+  font-size: 18px;
+}
+h5 {
+  font-size: 16px;
+}
+h6 {
+  font-size: 12px;
+}
+.table th:not([align]) {
+  text-align: left;
+}
+</style>
+
+<link href="data:text/css;charset=utf-8,body%20%7B%0Amargin%3A%200px%20auto%3B%0Amax%2Dwidth%3A%201134px%3B%0Afont%2Dfamily%3A%20sans%2Dserif%3B%0Afont%2Dsize%3A%2010pt%3B%0A%7D%0A%0Adiv%23TOC%20ul%20%7B%0Apadding%3A%200px%200px%200px%2045px%3B%0Alist%2Dstyle%3A%20none%3B%0Abackground%2Dimage%3A%20none%3B%0Abackground%2Drepeat%3A%20none%3B%0Abackground%2Dposition%3A%200%3B%0Afont%2Dsize%3A%2010pt%3B%0Afont%2Dfamily%3A%20Helvetica%2C%20Arial%2C%20sans%2Dserif%3B%0A%7D%0Adiv%23TOC%20%3E%20 [...]
 
 </head>
 
 <body>
 
+<style type="text/css">
+.main-container {
+  max-width: 828px;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+img {
+  max-width:100%;
+  height: auto;
+}
+.tabbed-pane {
+  padding-top: 12px;
+}
+button.code-folding-btn:focus {
+  outline: none;
+}
+</style>
+
+
+
+<div class="container-fluid main-container">
+
+<!-- tabsets -->
+<script>
+$(document).ready(function () {
+  window.buildTabsets("TOC");
+});
+</script>
+
+<!-- code folding -->
+
+
+
+
+
+
+<div class="fluid-row" id="header">
+
+
+
+<h1 class="title toc-ignore">Example using Negative Binomial in Microbiome Differential Abundance Testing</h1>
+<h4 class="date"><em>5 November 2017</em></h4>
 
-<div id="header">
-<h1 class="title">Example using Negative Binomial in Microbiome Differential Abundance Testing</h1>
 </div>
 
 <h1>Contents</h1>
@@ -97,7 +163,7 @@ document.addEventListener("DOMContentLoaded", function() {
 <h1><span class="header-section-number">3</span> Import data with phyloseq, convert to DESeq2</h1>
 <p>Start by loading phyloseq.</p>
 <pre class="r"><code>library("phyloseq"); packageVersion("phyloseq")</code></pre>
-<pre><code>## [1] '1.20.0'</code></pre>
+<pre><code>## [1] '1.22.3'</code></pre>
 <p>Defined file path, and import the published OTU count data into R.</p>
 <pre class="r"><code>filepath = system.file("extdata", "study_1457_split_library_seqs_and_mapping.zip", package="phyloseq")
 kostic = microbio_me_qiime(filepath)</code></pre>
@@ -123,15 +189,15 @@ kostic = microbio_me_qiime(filepath)</code></pre>
 ## sample_data() Sample Data:       [ 190 samples by 71 sample variables ]
 ## tax_table()   Taxonomy Table:    [ 2505 taxa by 7 taxonomic ranks ]</code></pre>
 <pre class="r"><code>head(sample_data(kostic)$DIAGNOSIS, 10)</code></pre>
-<pre><code>##  [1] Healthy Tumor   Tumor   Healthy Healthy Healthy Tumor   Healthy
-##  [9] Healthy Healthy
+<pre><code>##  [1] Healthy Tumor   Tumor   Healthy Healthy Healthy Tumor   Healthy Healthy
+## [10] Healthy
 ## Levels: Healthy None Tumor</code></pre>
 </div>
 <div id="deseq2-conversion-and-call" class="section level1">
 <h1><span class="header-section-number">5</span> DESeq2 conversion and call</h1>
 <p>First load DESeq2.</p>
 <pre class="r"><code>library("DESeq2"); packageVersion("DESeq2")</code></pre>
-<pre><code>## [1] '1.16.0'</code></pre>
+<pre><code>## [1] '1.18.0'</code></pre>
 <p>The following two lines actually do all the complicated DESeq2 work. The function <code>phyloseq_to_deseq2</code> converts your phyloseq-format microbiome data into a <code>DESeqDataSet</code> with dispersions estimated, using the experimental design formula, also shown (the <code>~DIAGNOSIS</code> term). The <code>DESeq</code> function does the rest of the testing, in this case with default testing framework, but you can actually use alternatives.</p>
 <p>First remove the 5 samples that had no <code>DIAGNOSIS</code> attribute assigned. These introduce a spurious third design class that is actually a rare artifact in the dataset. Also remove samples with less than <code>500</code> reads (counts). Note that this kind of data cleanup is useful, necessary, and should be well-documented because it can also be dangerous to alter or omit data without clear documentation. In this case I actually explored the data first, and am omitting some of [...]
 <pre class="r"><code>kostic <- subset_samples(kostic, DIAGNOSIS != "None")
@@ -262,17 +328,46 @@ ggplot(sigtabgen, aes(y=Genus, x=log2FoldChange, color=Phylum)) +
   geom_vline(xintercept = 0.0, color = "gray", size = 0.5) +
   geom_point(size=6) + 
   theme(axis.text.x = element_text(angle = -90, hjust = 0, vjust=0.5))</code></pre>
-<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2AAAAKgCAIAAAByb4nzAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOzdeUBU9d748e8wiILIpqCioIBL5oIKdF1TUzC365KKW2VPdsu0qG7W8zxZbpiZaG5PZTevNzNF7f7MLS+WBkK5kJhCrqCQC6mgwIAsM3PO74+5cfkCCsM2DL5ffw0zZ/kMA/J2zswZjaqqAgAAAPiDjaUHAAAAQP1CIAIAAEBCIAIAAEBCIAIAAEBCIAIAAEBCIAIAAEBia+kBHl5r1669ceNG3e9XURSNRqPRaOp+1zVFURRFUWxtrfuntwE8EAUFBQUFBS4uLpYepFqMRqNWq7X0FNViNBpVVbX234iG8UAIIRrAvai9u/CXv/zF19e3ljaOmmXd/6BYtZSUlDVr1tT9fvPz87VarZ2dXd3vuqYUFhbqd [...]
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABpQAAAUiCAIAAACMQIIPAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACW9GRnMAAAAOAAAADgB+o/owAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAAB3RJTUUH4QsGAAExC7I9MQAAAAl2cEFnAAAGwAAABUAAkVgbaQAAgABJREFUeNrs3XdgldX9P/Bzs9hJICwZCgqytA4UFEFxFiqi1i2g1WKRuq1tFUXFqqB1oLVat+JWwIGjIC4sriIoVkFlCoYhhIRN1v39cdv88mUZRnIf4PX6o02ee55zPue5uRjenOc5sXg8HmAH8fnnn8+dOzfZVVS14uLiWCyWmpqa7EIIRUVFIYRYLJaWlpbsW [...]
 </div>
 
 
 
+
+</div>
+
+<script>
+
+// add bootstrap table styles to pandoc tables
+function bootstrapStylePandocTables() {
+  $('tr.header').parent('thead').parent('table').addClass('table table-condensed');
+}
+$(document).ready(function () {
+  bootstrapStylePandocTables();
+});
+
+
+</script>
+
+<script type="text/x-mathjax-config">
+  MathJax.Hub.Config({
+    "HTML-CSS": {
+      styles: {
+        ".MathJax_Display": {
+           "text-align": "center",
+           padding: "0px 150px 0px 65px",
+           margin: "0px 0px 0.5em"
+        },
+      }
+    }
+  });
+</script>
 <!-- dynamically load mathjax for compatibility with self-contained -->
 <script>
   (function () {
     var script = document.createElement("script");
     script.type = "text/javascript";
-    script.src  = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
+    script.src  = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
     document.getElementsByTagName("head")[0].appendChild(script);
   })();
 </script>
diff --git a/man/DPCoA.Rd b/man/DPCoA.Rd
index 405e47f..47312cd 100644
--- a/man/DPCoA.Rd
+++ b/man/DPCoA.Rd
@@ -19,14 +19,14 @@ should return an object without error.}
  and return a new \code{dist}ance object that is Euclidean.
  If testing a distance object, try \code{\link[ade4]{is.euclid}}.
 
- In most real-life, real-data applications, the phylogenetic tree 
- will not provide a Euclidean distance matrix, and so a correction
- will be needed. 
- Two recommended correction methods are
+ 
+ Although the distance matrix should always be Euclidean, for numerical 
+reasons it will sometimes appear non-Euclidean and a correction method must 
+be applied. Two recommended correction methods are
  \code{\link[ade4]{cailliez}} and \code{\link[ade4]{lingoes}}.
  The default is \code{cailliez},
- but not for any particularly special reason. If the patristic 
- distance matrix turns out to be Euclidian, no correction will be 
+ but not for any particularly special reason. If the
+ distance matrix is Euclidian, no correction will be 
  performed, regardless of the value of the \code{correction} argument.}
 
 \item{scannf}{(Optional). Logical. Default is \code{FALSE}. This
@@ -48,13 +48,13 @@ phylogenetic (\code{\link[ape]{phylo}}) components of a
 to perform a
 Double Principle Coordinate Analysis (DPCoA), relying heavily on 
 the underlying (and more general) function, \code{\link[ade4]{dpcoa}}.
-The distance object ultimately provided as the cophenetic/patristic
-(\code{\link[ape]{cophenetic.phylo}}) distance between the species.
-}
-\details{
-In most real-life, real-data applications, the phylogenetic tree 
-will not provide a Euclidean distance matrix, and so a correction
-will be performed, if needed. See \code{correction} argument.
+The distance object ultimately provided is the square root of the 
+cophenetic/patristic (\code{\link[ape]{cophenetic.phylo}}) distance 
+between the species, which is always Euclidean. 
+ 
+Although this distance is Euclidean, for numerical reasons it 
+will sometimes look non-Euclidean, and a correction will be performed. 
+See \code{correction} argument.
 }
 \examples{
 # # # # # # Esophagus
@@ -75,10 +75,6 @@ GP       <- prune_taxa(keepTaxa, GlobalPatterns)
 GP.dpcoa <- DPCoA(GP)
 plot_ordination(GP, GP.dpcoa, color="SampleType")
 }
-\author{
-Julia Fukuyama \email{julia.fukuyama at gmail.com}.
- Adapted for phyloseq by Paul J. McMurdie.
-}
 \references{
 Pavoine, S., Dufour, A.B. and Chessel, D. (2004) 
 From dissimilarities among species to dissimilarities among communities: 
@@ -88,4 +84,7 @@ Journal of Theoretical Biology, 228, 523-537.
 \seealso{
 \code{\link[ade4]{dpcoa}}
 }
-
+\author{
+Julia Fukuyama \email{julia.fukuyama at gmail.com}.
+ Adapted for phyloseq by Paul J. McMurdie.
+}
diff --git a/man/JSD.Rd b/man/JSD.Rd
index 47020a1..6b272f7 100644
--- a/man/JSD.Rd
+++ b/man/JSD.Rd
@@ -39,10 +39,6 @@ the analysis of the \code{\link{enterotype}} dataset.
 # p <- plot_ordination(enterotype, ent.PCoA, color="Enterotype", shape="SeqTech") 
 # (p <- p + geom_point(size=5, alpha=0.5))
 }
-\author{
-Susan Holmes \email{susan at stat.stanford.edu}.
- Adapted for phyloseq by Paul J. McMurdie.
-}
 \references{
 Jensen-Shannon Divergence and Hilbert space embedding.  
 Bent Fuglede and Flemming Topsoe University of Copenhagen,
@@ -56,5 +52,8 @@ Department of Mathematics
 
  \url{http://en.wikipedia.org/wiki/Jensen-Shannon_divergence}
 }
+\author{
+Susan Holmes \email{susan at stat.stanford.edu}.
+ Adapted for phyloseq by Paul J. McMurdie.
+}
 \keyword{internal}
-
diff --git a/man/UniFrac-methods.Rd b/man/UniFrac-methods.Rd
index 209d12c..18a3421 100644
--- a/man/UniFrac-methods.Rd
+++ b/man/UniFrac-methods.Rd
@@ -171,4 +171,3 @@ communities.'' Appl Environ Microbiol. 2005 71 (12):8228-35.
 
 \code{unifrac} in the picante package.
 }
-
diff --git a/man/access.Rd b/man/access.Rd
index 9bb45f4..f5e92ae 100644
--- a/man/access.Rd
+++ b/man/access.Rd
@@ -46,4 +46,3 @@ be set to \code{TRUE} if an error is desired.
 \seealso{
 \code{\link{getslots.phyloseq}}, \code{\link{merge_phyloseq}}
 }
-
diff --git a/man/assign-otu_table.Rd b/man/assign-otu_table.Rd
index 9f94c04..cb14424 100644
--- a/man/assign-otu_table.Rd
+++ b/man/assign-otu_table.Rd
@@ -2,10 +2,10 @@
 % Please edit documentation in R/assignment-methods.R
 \docType{methods}
 \name{otu_table<-}
-\alias{assign-otu_table}
 \alias{otu_table<-}
-\alias{otu_table<-,otu_table,otu_table-method}
+\alias{assign-otu_table}
 \alias{otu_table<-,phyloseq,otu_table-method}
+\alias{otu_table<-,otu_table,otu_table-method}
 \alias{otu_table<-,phyloseq,phyloseq-method}
 \title{Assign a new OTU Table to \code{x}}
 \usage{
@@ -43,4 +43,3 @@ Assign a new OTU Table to \code{x}
 # otu_table(ex2c) <- ex2b
 # identical(ex2a, ex2c)
 }
-
diff --git a/man/assign-phy_tree.Rd b/man/assign-phy_tree.Rd
index 4f6db6f..6203a52 100644
--- a/man/assign-phy_tree.Rd
+++ b/man/assign-phy_tree.Rd
@@ -2,8 +2,8 @@
 % Please edit documentation in R/assignment-methods.R
 \docType{methods}
 \name{phy_tree<-}
-\alias{assign-phy_tree}
 \alias{phy_tree<-}
+\alias{assign-phy_tree}
 \alias{phy_tree<-,phyloseq,phylo-method}
 \alias{phy_tree<-,phyloseq,phyloseq-method}
 \title{Assign a (new) phylogenetic tree to \code{x}}
@@ -32,4 +32,3 @@ ex2b <- ex2a
 phy_tree(ex2b) <- phy_tree(esophagus)
 identical(ex2a, ex2b)
 }
-
diff --git a/man/assign-sample_data.Rd b/man/assign-sample_data.Rd
index 346a8f1..d44446d 100644
--- a/man/assign-sample_data.Rd
+++ b/man/assign-sample_data.Rd
@@ -1,8 +1,8 @@
 % Generated by roxygen2: do not edit by hand
 % Please edit documentation in R/assignment-methods.R
 \name{sample_data<-}
-\alias{assign-sample_data}
 \alias{sample_data<-}
+\alias{assign-sample_data}
 \title{Assign (new) sample_data to \code{x}}
 \usage{
 sample_data(x) <- value
@@ -45,4 +45,3 @@ are included in any components. This has the added benefit of re-checking
  sample_data(soilrep)$Time <- as.integer(substr(sample_data(soilrep)$Sample, 1, 1))
  head(sample_data(soilrep))
 }
-
diff --git a/man/assign-sample_names.Rd b/man/assign-sample_names.Rd
index cf0ca7b..423f77b 100644
--- a/man/assign-sample_names.Rd
+++ b/man/assign-sample_names.Rd
@@ -2,13 +2,13 @@
 % Please edit documentation in R/assignment-methods.R
 \docType{methods}
 \name{sample_names<-}
-\alias{assign-sample_names}
 \alias{sample_names<-}
+\alias{assign-sample_names}
 \alias{sample_names<-,ANY,ANY-method}
 \alias{sample_names<-,ANY,character-method}
 \alias{sample_names<-,otu_table,character-method}
-\alias{sample_names<-,phyloseq,character-method}
 \alias{sample_names<-,sample_data,character-method}
+\alias{sample_names<-,phyloseq,character-method}
 \title{Replace OTU identifier names}
 \usage{
 sample_names(x) <- value
@@ -48,4 +48,3 @@ sample_names(esophagus)
 # sample_names(esophagus) <- sample(c(TRUE, FALSE), nsamples(esophagus), TRUE)
 # sample_names(esophagus) <- sample(sample_names(esophagus), nsamples(esophagus)-1, FALSE)
 }
-
diff --git a/man/assign-tax_table.Rd b/man/assign-tax_table.Rd
index e17d8ba..6a3fe55 100644
--- a/man/assign-tax_table.Rd
+++ b/man/assign-tax_table.Rd
@@ -2,12 +2,12 @@
 % Please edit documentation in R/assignment-methods.R
 \docType{methods}
 \name{tax_table<-}
-\alias{assign-tax_table}
 \alias{tax_table<-}
-\alias{tax_table<-,phyloseq,ANY-method}
+\alias{assign-tax_table}
 \alias{tax_table<-,phyloseq,taxonomyTable-method}
-\alias{tax_table<-,taxonomyTable,ANY-method}
+\alias{tax_table<-,phyloseq,ANY-method}
 \alias{tax_table<-,taxonomyTable,taxonomyTable-method}
+\alias{tax_table<-,taxonomyTable,ANY-method}
 \title{Assign a (new) Taxonomy Table to \code{x}}
 \usage{
 tax_table(x) <- value
@@ -50,4 +50,3 @@ Assign a (new) Taxonomy Table to \code{x}
 # tax_table(ex2c) <- as(tax_table(ex2b), "matrix")
 # identical(ex2a, ex2c)
 }
-
diff --git a/man/assign-taxa_are_rows.Rd b/man/assign-taxa_are_rows.Rd
index cf217da..9e8cf3d 100644
--- a/man/assign-taxa_are_rows.Rd
+++ b/man/assign-taxa_are_rows.Rd
@@ -2,8 +2,8 @@
 % Please edit documentation in R/assignment-methods.R
 \docType{methods}
 \name{taxa_are_rows<-}
-\alias{assign-taxa_are_rows}
 \alias{taxa_are_rows<-}
+\alias{assign-taxa_are_rows}
 \alias{taxa_are_rows<-,otu_table,logical-method}
 \alias{taxa_are_rows<-,phyloseq,logical-method}
 \title{Manually change taxa_are_rows through assignment.}
@@ -30,4 +30,3 @@ abundance table contained in object \code{x}.
  taxa_are_rows(esophagus)
  taxa_are_rows(otu_table(esophagus))
 }
-
diff --git a/man/assign-taxa_names.Rd b/man/assign-taxa_names.Rd
index 3c82d5e..2c54965 100644
--- a/man/assign-taxa_names.Rd
+++ b/man/assign-taxa_names.Rd
@@ -2,15 +2,15 @@
 % Please edit documentation in R/assignment-methods.R
 \docType{methods}
 \name{taxa_names<-}
-\alias{assign-taxa_names}
 \alias{taxa_names<-}
+\alias{assign-taxa_names}
 \alias{taxa_names<-,ANY,ANY-method}
 \alias{taxa_names<-,ANY,character-method}
-\alias{taxa_names<-,XStringSet,character-method}
 \alias{taxa_names<-,otu_table,character-method}
+\alias{taxa_names<-,taxonomyTable,character-method}
 \alias{taxa_names<-,phylo,character-method}
+\alias{taxa_names<-,XStringSet,character-method}
 \alias{taxa_names<-,phyloseq,character-method}
-\alias{taxa_names<-,taxonomyTable,character-method}
 \title{Replace OTU identifier names}
 \usage{
 taxa_names(x) <- value
@@ -54,4 +54,3 @@ taxa_names(esophagus)
 # taxa_names(esophagus) <- sample(c(TRUE, FALSE), ntaxa(esophagus), TRUE)
 # taxa_names(esophagus) <- sample(taxa_names(esophagus), ntaxa(esophagus)-5, FALSE)
 }
-
diff --git a/man/build_tax_table.Rd b/man/build_tax_table.Rd
index 387fab7..eb1ec16 100644
--- a/man/build_tax_table.Rd
+++ b/man/build_tax_table.Rd
@@ -40,4 +40,3 @@ Build a \code{\link{tax_table}} from a named possibly-jagged list
 \code{\link{import_biom}}
  \code{\link{import_qiime}}
 }
-
diff --git a/man/capscale-phyloseq-methods.Rd b/man/capscale-phyloseq-methods.Rd
index 530078e..cdff217 100644
--- a/man/capscale-phyloseq-methods.Rd
+++ b/man/capscale-phyloseq-methods.Rd
@@ -3,8 +3,8 @@
 \docType{methods}
 \name{capscale.phyloseq}
 \alias{capscale.phyloseq}
-\alias{capscale.phyloseq,phyloseq,formula,character-method}
 \alias{capscale.phyloseq,phyloseq,formula,dist-method}
+\alias{capscale.phyloseq,phyloseq,formula,character-method}
 \title{Constrained Analysis of Principal Coordinates, \code{\link[vegan]{capscale}}.}
 \usage{
 capscale.phyloseq(physeq, formula, distance, ...)
@@ -67,4 +67,3 @@ plot_ordination(GP, ordcap, "samples", color="SampleType")
  \code{\link[vegan]{capscale}}
 }
 \keyword{internal}
-
diff --git a/man/cca-rda-phyloseq-methods.Rd b/man/cca-rda-phyloseq-methods.Rd
index e7c4810..0dca9af 100644
--- a/man/cca-rda-phyloseq-methods.Rd
+++ b/man/cca-rda-phyloseq-methods.Rd
@@ -3,11 +3,11 @@
 \docType{methods}
 \name{cca.phyloseq}
 \alias{cca.phyloseq}
+\alias{rda.phyloseq}
+\alias{cca.phyloseq,phyloseq,formula-method}
 \alias{cca.phyloseq,otu_table,ANY-method}
 \alias{cca.phyloseq,otu_table-method}
 \alias{cca.phyloseq,phyloseq,NULL-method}
-\alias{cca.phyloseq,phyloseq,formula-method}
-\alias{rda.phyloseq}
 \title{Constrained Correspondence Analysis and Redundancy Analysis.}
 \usage{
 cca.phyloseq(physeq, formula = NULL, method = "CCA", ...)
@@ -57,4 +57,3 @@ to these methods is optional, and results in an unconstrained ordination.
  \code{\link[vegan]{rda}}, \code{\link[vegan]{cca}}
 }
 \keyword{internal}
-
diff --git a/man/chunkReOrder.Rd b/man/chunkReOrder.Rd
index be5e8d1..0041b10 100644
--- a/man/chunkReOrder.Rd
+++ b/man/chunkReOrder.Rd
@@ -32,4 +32,3 @@ Different than relevel.
 # chunkReOrder(LETTERS, "g") 
 }
 \keyword{internal}
-
diff --git a/man/data-GlobalPatterns.Rd b/man/data-GlobalPatterns.Rd
index 9219bf3..d629204 100644
--- a/man/data-GlobalPatterns.Rd
+++ b/man/data-GlobalPatterns.Rd
@@ -2,8 +2,8 @@
 % Please edit documentation in R/allData.R
 \docType{data}
 \name{data-GlobalPatterns}
-\alias{GlobalPatterns}
 \alias{data-GlobalPatterns}
+\alias{GlobalPatterns}
 \title{(Data) Global patterns of 16S rRNA diversity at a depth of millions of sequences per sample (2011)}
 \description{
 Published in PNAS in early 2011. This work compared the microbial 
@@ -28,9 +28,6 @@ for inclusion in this package.
 data(GlobalPatterns)
 plot_richness(GlobalPatterns, x="SampleType", measures=c("Observed", "Chao1", "Shannon"))
 }
-\author{
-Caporaso, J. G., et al.
-}
 \references{
 Caporaso, J. G., et al. (2011). 
 Global patterns of 16S rRNA diversity at a depth of millions of sequences per sample.
@@ -46,5 +43,7 @@ The examples on the phyloseq wiki page for \code{\link{plot_ordination}} show
 
 \url{https://github.com/joey711/phyloseq/wiki/plot_ordination}
 }
+\author{
+Caporaso, J. G., et al.
+}
 \keyword{data}
-
diff --git a/man/data-enterotype.Rd b/man/data-enterotype.Rd
index c9fa9e6..fd0a6ef 100644
--- a/man/data-enterotype.Rd
+++ b/man/data-enterotype.Rd
@@ -29,9 +29,6 @@ data(enterotype)
 ig <- make_network(enterotype, "samples", max.dist=0.3)
 plot_network(ig, enterotype, color="SeqTech", shape="Enterotype", line_weight=0.3, label=NULL)
 }
-\author{
-Arumugam, M., Raes, J., et al.
-}
 \references{
 Arumugam, M., et al. (2011). Enterotypes of the human gut microbiome.
 
@@ -44,5 +41,7 @@ OTU-clustered data was downloaded from the publicly-accessible:
 
 \url{http://www.bork.embl.de/Docu/Arumugam_et_al_2011/downloads.html}
 }
+\author{
+Arumugam, M., Raes, J., et al.
+}
 \keyword{data}
-
diff --git a/man/data-esophagus.Rd b/man/data-esophagus.Rd
index 39cca6b..d2819dc 100644
--- a/man/data-esophagus.Rd
+++ b/man/data-esophagus.Rd
@@ -32,9 +32,6 @@ show_mothur_cutoffs(mothlist)
 cutoff    <- "0.10"
 esophman  <- import_mothur(mothlist, mothgroup, mothtree, cutoff)	
 }
-\author{
-Pei et al. \email{zhiheng.pei at med.nyu.edu}
-}
 \references{
 Pei, Z., Bini, E. J., Yang, L., Zhou, M., Francois, F., & Blaser, M. J. (2004). 
 Bacterial biota in the human distal esophagus.
@@ -45,5 +42,7 @@ mothur-processed files and the sequence data can be downloaded from a zip-file,
 along with additional description, from the following URL:
 \url{http://www.mothur.org/wiki/Esophageal_community_analysis}
 }
+\author{
+Pei et al. \email{zhiheng.pei at med.nyu.edu}
+}
 \keyword{data}
-
diff --git a/man/data-soilrep.Rd b/man/data-soilrep.Rd
index 150c695..11d43c7 100644
--- a/man/data-soilrep.Rd
+++ b/man/data-soilrep.Rd
@@ -70,9 +70,6 @@ data(soilrep)
 man.col <- c(WC="red", WU="brown", UC="blue", UU="darkgreen")
 plot_richness(soilrep, x="Treatment", color="Treatment", measures=c("Observed", "Chao1", "Shannon"))
 }
-\author{
-Jizhong Zhou, et al.
-}
 \references{
 Zhou, J., Wu, L., Deng, Y., Zhi, X., Jiang, Y.-H., Tu, Q., Xie, J., et al. 
  Reproducibility and quantitation of amplicon sequencing-based detection. 
@@ -80,5 +77,7 @@ Zhou, J., Wu, L., Deng, Y., Zhi, X., Jiang, Y.-H., Tu, Q., Xie, J., et al.
 
 The article can be accessed online at \url{http://www.nature.com/ismej/journal/v5/n8/full/ismej201111a.html}
 }
+\author{
+Jizhong Zhou, et al.
+}
 \keyword{data}
-
diff --git a/man/decorana.Rd b/man/decorana.Rd
index 45fc5aa..cdadde1 100644
--- a/man/decorana.Rd
+++ b/man/decorana.Rd
@@ -24,4 +24,3 @@ judiciously and within phyloseq.
 \code{\link[vegan]{decorana}}
 }
 \keyword{internal}
-
diff --git a/man/dist-class.Rd b/man/dist-class.Rd
index 68745b2..fd72dae 100644
--- a/man/dist-class.Rd
+++ b/man/dist-class.Rd
@@ -10,4 +10,3 @@ about this type of a distance matrix object.
 \seealso{
 \code{\link[stats]{dist}}, \code{\link{setOldClass}}
 }
-
diff --git a/man/distance.Rd b/man/distance.Rd
index 7d1cb00..29000fc 100644
--- a/man/distance.Rd
+++ b/man/distance.Rd
@@ -3,8 +3,8 @@
 \docType{methods}
 \name{distance}
 \alias{distance}
-\alias{distance,otu_table,character-method}
 \alias{distance,phyloseq,ANY-method}
+\alias{distance,otu_table,character-method}
 \alias{distance,phyloseq,character-method}
 \title{Calculate distance, dissimilarity}
 \usage{
@@ -107,4 +107,3 @@ help("distance")
  \code{\link[vegan]{designdist}},
  \code{\link{dist}}.
 }
-
diff --git a/man/distanceMethodList.Rd b/man/distanceMethodList.Rd
index 2e154a6..0cffdad 100644
--- a/man/distanceMethodList.Rd
+++ b/man/distanceMethodList.Rd
@@ -73,4 +73,3 @@ distanceMethodList
 \code{\link[phyloseq]{distance}}
 }
 \keyword{datasets}
-
diff --git a/man/envHash2otu_table.Rd b/man/envHash2otu_table.Rd
index 5ce4cf8..fc3ef88 100644
--- a/man/envHash2otu_table.Rd
+++ b/man/envHash2otu_table.Rd
@@ -44,4 +44,3 @@ non-trivial \code{otu_table}.
 \code{\link{otu_table}}
 }
 \keyword{internal}
-
diff --git a/man/estimate_richness.Rd b/man/estimate_richness.Rd
index 3c2d044..2b76849 100644
--- a/man/estimate_richness.Rd
+++ b/man/estimate_richness.Rd
@@ -61,4 +61,3 @@ Check out the custom plotting function, \code{\link{plot_richness}},
  
  \code{\link[vegan]{fisherfit}}
 }
-
diff --git a/man/export_env_file.Rd b/man/export_env_file.Rd
index bbc40a6..068df61 100644
--- a/man/export_env_file.Rd
+++ b/man/export_env_file.Rd
@@ -33,4 +33,3 @@ workspace, and the tree component can be exported as Nexus format
 # data(esophagus)
 # export_env_file(esophagus, "~/Desktop/esophagus.txt")
 }
-
diff --git a/man/export_mothur_dist.Rd b/man/export_mothur_dist.Rd
index 12c9fcc..38a5404 100644
--- a/man/export_mothur_dist.Rd
+++ b/man/export_mothur_dist.Rd
@@ -37,4 +37,3 @@ data(esophagus)
 myDistObject <- as.dist(ape::cophenetic.phylo(phy_tree(esophagus)))
 export_mothur_dist(myDistObject)
 }
-
diff --git a/man/extract-methods.Rd b/man/extract-methods.Rd
index bcb458e..e606b32 100644
--- a/man/extract-methods.Rd
+++ b/man/extract-methods.Rd
@@ -2,10 +2,10 @@
 % Please edit documentation in R/extract-methods.R
 \docType{methods}
 \name{[,otu_table,ANY,ANY,ANY-method}
-\alias{[,XStringSet,character,ANY,ANY-method}
 \alias{[,otu_table,ANY,ANY,ANY-method}
 \alias{[,sample_data,ANY,ANY,ANY-method}
 \alias{[,taxonomyTable,ANY,ANY,ANY-method}
+\alias{[,XStringSet,character,ANY,ANY-method}
 \title{Method extensions to extraction operator for phyloseq objects.}
 \usage{
 \S4method{[}{otu_table,ANY,ANY,ANY}(x, i, j, ..., drop = TRUE)
@@ -77,4 +77,3 @@ nrow(otu_table(esophagus)[1:5, ])
 \seealso{
 \code{\link[base]{Extract}}
 }
-
diff --git a/man/filter_taxa.Rd b/man/filter_taxa.Rd
index 84ed4c6..a2c5498 100644
--- a/man/filter_taxa.Rd
+++ b/man/filter_taxa.Rd
@@ -52,4 +52,3 @@ it returns the already-trimmed version of the phyloseq object.
 \code{\link{genefilter_sample}},
 \code{\link{filterfun_sample}}
 }
-
diff --git a/man/filterfun_sample.Rd b/man/filterfun_sample.Rd
index d5bbfd8..a93a95e 100644
--- a/man/filterfun_sample.Rd
+++ b/man/filterfun_sample.Rd
@@ -34,4 +34,3 @@ prune_taxa(wh2, testOTU)
 \seealso{
 \code{\link[genefilter]{filterfun}}, \code{\link{genefilter_sample}}
 }
-
diff --git a/man/fix_phylo.Rd b/man/fix_phylo.Rd
index a190889..fc3d3db 100644
--- a/man/fix_phylo.Rd
+++ b/man/fix_phylo.Rd
@@ -15,4 +15,3 @@ For now this only entails replacing each missing (\code{NA}) branch-length
 value with 0.0.
 }
 \keyword{internal}
-
diff --git a/man/gapstat_ord.Rd b/man/gapstat_ord.Rd
index cd37e30..973c739 100644
--- a/man/gapstat_ord.Rd
+++ b/man/gapstat_ord.Rd
@@ -67,4 +67,3 @@ gs = gapstat_ord(sord, axes=1:3, verbose=FALSE)
 plot_clusgap(gs)
 print(gs, method="Tibs2001SEmax")
 }
-
diff --git a/man/genefilter_sample-methods.Rd b/man/genefilter_sample-methods.Rd
index 7627e11..2f8ec6d 100644
--- a/man/genefilter_sample-methods.Rd
+++ b/man/genefilter_sample-methods.Rd
@@ -70,4 +70,3 @@ and transpose (\code{\link[phyloseq]{t}}) if needed.
 \keyword{agglomerate}
 \keyword{cluster}
 \keyword{tree}
-
diff --git a/man/get.component.classes.Rd b/man/get.component.classes.Rd
index 0d2216c..a4d31d8 100644
--- a/man/get.component.classes.Rd
+++ b/man/get.component.classes.Rd
@@ -19,4 +19,3 @@ when called, which can then be used for tests of component data types, etc.
 #get.component.classes()
 }
 \keyword{internal}
-
diff --git a/man/get_sample-methods.Rd b/man/get_sample-methods.Rd
index 4fd08de..b3a24e9 100644
--- a/man/get_sample-methods.Rd
+++ b/man/get_sample-methods.Rd
@@ -37,4 +37,3 @@ get_sample(esophagus, "59_5_19")
  \code{\link{taxa_names}}
  \code{\link{sample_names}}
 }
-
diff --git a/man/get_taxa-methods.Rd b/man/get_taxa-methods.Rd
index 40ce618..8a503c6 100644
--- a/man/get_taxa-methods.Rd
+++ b/man/get_taxa-methods.Rd
@@ -38,4 +38,3 @@ get_taxa(esophagus, "B")
  \code{\link{taxa_names}}
  \code{\link{sample_names}}
 }
-
diff --git a/man/get_taxa_unique.Rd b/man/get_taxa_unique.Rd
index d737ab6..69a4736 100644
--- a/man/get_taxa_unique.Rd
+++ b/man/get_taxa_unique.Rd
@@ -36,4 +36,3 @@ get_taxa_unique(GlobalPatterns, "Family")
  \code{\link{taxa_names}}
  \code{\link{sample_names}}
 }
-
diff --git a/man/get_variable.Rd b/man/get_variable.Rd
index 33c5a53..50fab15 100644
--- a/man/get_variable.Rd
+++ b/man/get_variable.Rd
@@ -32,4 +32,3 @@ get_variable(GlobalPatterns, "SampleType")
 
  \code{\link{sample_variables}}
 }
-
diff --git a/man/getslots.phyloseq.Rd b/man/getslots.phyloseq.Rd
index 1358df2..14abe8f 100644
--- a/man/getslots.phyloseq.Rd
+++ b/man/getslots.phyloseq.Rd
@@ -31,4 +31,3 @@ is component data object.
 \seealso{
 merge_phyloseq
 }
-
diff --git a/man/import.Rd b/man/import.Rd
index 5fac64c..e47dd97 100644
--- a/man/import.Rd
+++ b/man/import.Rd
@@ -70,4 +70,3 @@ For RDP pipeline, see:
 
 \code{\link{import_RDP_otu}}
 }
-
diff --git a/man/import_RDP_cluster.Rd b/man/import_RDP_cluster.Rd
index 58b3f1c..aa911af 100644
--- a/man/import_RDP_cluster.Rd
+++ b/man/import_RDP_cluster.Rd
@@ -46,4 +46,3 @@ coerced to an \code{\link{otu_table}} object, and returned.
 \references{
 \url{http://pyro.cme.msu.edu/index.jsp}
 }
-
diff --git a/man/import_RDP_otu.Rd b/man/import_RDP_otu.Rd
index 4616ee8..085f036 100644
--- a/man/import_RDP_otu.Rd
+++ b/man/import_RDP_otu.Rd
@@ -41,4 +41,3 @@ An alternative ``cluster'' file importer for RDP results:
 The main RDP-pyrosequencing website
 \url{http://pyro.cme.msu.edu/index.jsp}
 }
-
diff --git a/man/import_biom.Rd b/man/import_biom.Rd
index 5450f44..b56c53a 100644
--- a/man/import_biom.Rd
+++ b/man/import_biom.Rd
@@ -168,4 +168,3 @@ import_biom(rich_sparse_biom, parseFunction=parse_taxonomy_greengenes)
 
 \code{\link[Biostrings]{XStringSet-io}}
 }
-
diff --git a/man/import_env_file.Rd b/man/import_env_file.Rd
index d1075a7..a7715f8 100644
--- a/man/import_env_file.Rd
+++ b/man/import_env_file.Rd
@@ -39,4 +39,3 @@ the number of times the sequence was observed.
 
 \code{\link{tip_glom}}
 }
-
diff --git a/man/import_mothur.Rd b/man/import_mothur.Rd
index 17fd11d..9152a03 100644
--- a/man/import_mothur.Rd
+++ b/man/import_mothur.Rd
@@ -118,4 +118,3 @@ Schloss, P.D., et al., Introducing mothur: Open-source, platform-independent,
 community-supported software for describing and comparing microbial communities.
 Appl Environ Microbiol, 2009. 75(23):7537-41.
 }
-
diff --git a/man/import_mothur_constaxonomy.Rd b/man/import_mothur_constaxonomy.Rd
index 07a3668..df3ab46 100644
--- a/man/import_mothur_constaxonomy.Rd
+++ b/man/import_mothur_constaxonomy.Rd
@@ -33,4 +33,3 @@ Import mothur constaxonomy file and return a taxonomyTable
 \code{\link{phyloseq}}
 }
 \keyword{internal}
-
diff --git a/man/import_mothur_dist.Rd b/man/import_mothur_dist.Rd
index 9956171..e2a75ff 100644
--- a/man/import_mothur_dist.Rd
+++ b/man/import_mothur_dist.Rd
@@ -29,4 +29,3 @@ dealing with distance matrices.
 \seealso{
 \code{\link{import_mothur}}
 }
-
diff --git a/man/import_mothur_groups.Rd b/man/import_mothur_groups.Rd
index 381750b..adf4115 100644
--- a/man/import_mothur_groups.Rd
+++ b/man/import_mothur_groups.Rd
@@ -29,4 +29,3 @@ into \emph{phyloseq}. You will need both a group file and a list file for that e
 \code{\link{import_mothur}}
 }
 \keyword{internal}
-
diff --git a/man/import_mothur_otu_table.Rd b/man/import_mothur_otu_table.Rd
index c02b67b..910b30f 100644
--- a/man/import_mothur_otu_table.Rd
+++ b/man/import_mothur_otu_table.Rd
@@ -38,4 +38,3 @@ Import mothur list and group files and return an otu_table
 \code{\link{import_mothur}}
 }
 \keyword{internal}
-
diff --git a/man/import_mothur_otulist.Rd b/man/import_mothur_otulist.Rd
index 872ef72..5f09859 100644
--- a/man/import_mothur_otulist.Rd
+++ b/man/import_mothur_otulist.Rd
@@ -40,4 +40,3 @@ into \emph{phyloseq}.
 \code{\link{show_mothur_cutoffs}}, \code{\link{import_mothur}}
 }
 \keyword{internal}
-
diff --git a/man/import_mothur_shared.Rd b/man/import_mothur_shared.Rd
index 6046c34..a696063 100644
--- a/man/import_mothur_shared.Rd
+++ b/man/import_mothur_shared.Rd
@@ -21,4 +21,3 @@ Import mothur shared file and return an otu_table
 \code{\link{import_mothur}}
 }
 \keyword{internal}
-
diff --git a/man/import_pyrotagger_tab.Rd b/man/import_pyrotagger_tab.Rd
index 5c50a0e..7a303b9 100644
--- a/man/import_pyrotagger_tab.Rd
+++ b/man/import_pyrotagger_tab.Rd
@@ -64,4 +64,3 @@ long-run.
 \references{
 \url{http://pyrotagger.jgi-psf.org/}
 }
-
diff --git a/man/import_qiime.Rd b/man/import_qiime.Rd
index 5dd1032..3e30abd 100644
--- a/man/import_qiime.Rd
+++ b/man/import_qiime.Rd
@@ -153,4 +153,3 @@ Nature Methods, 2010; doi:10.1038/nmeth.f.303
 
 \code{\link[Biostrings]{XStringSet-io}}
 }
-
diff --git a/man/import_qiime_otu_tax.Rd b/man/import_qiime_otu_tax.Rd
index 3491b29..ec48e3f 100644
--- a/man/import_qiime_otu_tax.Rd
+++ b/man/import_qiime_otu_tax.Rd
@@ -80,4 +80,3 @@ a switch to a sparse matrix representation of the abundance
 
 \code{\link{import_env_file}}
 }
-
diff --git a/man/import_qiime_sample_data.Rd b/man/import_qiime_sample_data.Rd
index e953efb..4e49df5 100644
--- a/man/import_qiime_sample_data.Rd
+++ b/man/import_qiime_sample_data.Rd
@@ -46,4 +46,3 @@ suggested function for importing QIIME-produced data files.
 
 \code{\link{import_env_file}}
 }
-
diff --git a/man/import_uparse.Rd b/man/import_uparse.Rd
index e6500c1..e4c231c 100644
--- a/man/import_uparse.Rd
+++ b/man/import_uparse.Rd
@@ -66,4 +66,3 @@ and post it as an issue on the
 \seealso{
 \code{\link{import_usearch_uc}}
 }
-
diff --git a/man/import_usearch_uc.Rd b/man/import_usearch_uc.Rd
index 2d21352..76307d7 100644
--- a/man/import_usearch_uc.Rd
+++ b/man/import_usearch_uc.Rd
@@ -86,4 +86,3 @@ import_usearch_uc(usearchfile)
 
 \code{\link{import_qiime}}
 }
-
diff --git a/man/index_reorder.Rd b/man/index_reorder.Rd
index 4f58e82..27017c4 100644
--- a/man/index_reorder.Rd
+++ b/man/index_reorder.Rd
@@ -27,4 +27,3 @@ Force index order of phyloseq objects
 ## GP = index_reorder(GlobalPatterns)
 }
 \keyword{internal}
-
diff --git a/man/intersect_taxa.Rd b/man/intersect_taxa.Rd
index 109c4f6..8ce7158 100644
--- a/man/intersect_taxa.Rd
+++ b/man/intersect_taxa.Rd
@@ -30,4 +30,3 @@ strictly common species.
 \code{\link{Reduce}}, \code{\link{intersect}}
 }
 \keyword{internal}
-
diff --git a/man/make_network.Rd b/man/make_network.Rd
index 7a57b62..0c6133c 100644
--- a/man/make_network.Rd
+++ b/man/make_network.Rd
@@ -94,4 +94,3 @@ ij <- make_network(esophagus, "samples", "unifrac", weighted=TRUE)
 \seealso{
 \code{\link{plot_network}}
 }
-
diff --git a/man/merge_phyloseq.Rd b/man/merge_phyloseq.Rd
index fbaf57b..749f285 100644
--- a/man/merge_phyloseq.Rd
+++ b/man/merge_phyloseq.Rd
@@ -64,4 +64,3 @@ of that component type is returned.
 ## merge_phyloseq(x, y)
 ## merge_phyloseq(y, y, y, y)
 }
-
diff --git a/man/merge_phyloseq_pair-methods.Rd b/man/merge_phyloseq_pair-methods.Rd
index 22384da..3823b77 100644
--- a/man/merge_phyloseq_pair-methods.Rd
+++ b/man/merge_phyloseq_pair-methods.Rd
@@ -3,11 +3,11 @@
 \docType{methods}
 \name{merge_phyloseq_pair}
 \alias{merge_phyloseq_pair}
-\alias{merge_phyloseq_pair,XStringSet,XStringSet-method}
 \alias{merge_phyloseq_pair,otu_table,otu_table-method}
-\alias{merge_phyloseq_pair,phylo,phylo-method}
-\alias{merge_phyloseq_pair,sample_data,sample_data-method}
 \alias{merge_phyloseq_pair,taxonomyTable,taxonomyTable-method}
+\alias{merge_phyloseq_pair,sample_data,sample_data-method}
+\alias{merge_phyloseq_pair,phylo,phylo-method}
+\alias{merge_phyloseq_pair,XStringSet,XStringSet-method}
 \title{Merge pair of phyloseq component data objects of the same class.}
 \usage{
 merge_phyloseq_pair(x, y)
@@ -76,4 +76,3 @@ Special note: non-identical trees are merged using \code{\link[ape]{consensus}}.
 \seealso{
 \code{\link{merge_phyloseq}} \code{\link{merge_taxa}}
 }
-
diff --git a/man/merge_samples-methods.Rd b/man/merge_samples-methods.Rd
index 34720f8..6fba5f3 100644
--- a/man/merge_samples-methods.Rd
+++ b/man/merge_samples-methods.Rd
@@ -3,9 +3,9 @@
 \docType{methods}
 \name{merge_samples}
 \alias{merge_samples}
+\alias{merge_samples,sample_data-method}
 \alias{merge_samples,otu_table-method}
 \alias{merge_samples,phyloseq-method}
-\alias{merge_samples,sample_data-method}
 \title{Merge samples based on a sample variable or factor.}
 \usage{
 merge_samples(x, group, fun=mean)
@@ -70,4 +70,3 @@ otu_table(mGP10)["Ocean", ]
 \seealso{
 \code{\link{merge_taxa}}, code{\link{merge_phyloseq}}
 }
-
diff --git a/man/merge_taxa-methods.Rd b/man/merge_taxa-methods.Rd
index f3bfca4..c70c193 100644
--- a/man/merge_taxa-methods.Rd
+++ b/man/merge_taxa-methods.Rd
@@ -3,11 +3,11 @@
 \docType{methods}
 \name{merge_taxa}
 \alias{merge_taxa}
-\alias{merge_taxa,XStringSet-method}
-\alias{merge_taxa,otu_table-method}
-\alias{merge_taxa,phylo-method}
 \alias{merge_taxa,phyloseq-method}
 \alias{merge_taxa,sample_data-method}
+\alias{merge_taxa,otu_table-method}
+\alias{merge_taxa,phylo-method}
+\alias{merge_taxa,XStringSet-method}
 \alias{merge_taxa,taxonomyTable-method}
 \title{Merge a subset of the species in \code{x} into one species/taxa/OTU.}
 \usage{
@@ -75,4 +75,3 @@ otutree1 <- merge_taxa(otutree0, 1:8, 2)
 \code{\link{tip_glom}}, \code{\link{tax_glom}}, \code{\link{merge_phyloseq}},
  \code{\link{merge_samples}}
 }
-
diff --git a/man/metaMDS.Rd b/man/metaMDS.Rd
index b9d970d..12fa10a 100644
--- a/man/metaMDS.Rd
+++ b/man/metaMDS.Rd
@@ -24,4 +24,3 @@ judiciously and within phyloseq.
 \code{\link[vegan]{metaMDS}}
 }
 \keyword{internal}
-
diff --git a/man/microbio_me_qiime.Rd b/man/microbio_me_qiime.Rd
index e991d9f..0144e8b 100644
--- a/man/microbio_me_qiime.Rd
+++ b/man/microbio_me_qiime.Rd
@@ -96,4 +96,3 @@ See \code{\link{download.file}} and \code{\link{url}}
  
  \code{\link{import_qiime}}
 }
-
diff --git a/man/mt-methods.Rd b/man/mt-methods.Rd
index 36f0981..0936ea5 100644
--- a/man/mt-methods.Rd
+++ b/man/mt-methods.Rd
@@ -3,12 +3,12 @@
 \docType{methods}
 \name{mt}
 \alias{mt}
-\alias{mt,otu_table,character-method}
-\alias{mt,otu_table,factor-method}
+\alias{mt,phyloseq,ANY-method}
 \alias{mt,otu_table,integer-method}
-\alias{mt,otu_table,logical-method}
 \alias{mt,otu_table,numeric-method}
-\alias{mt,phyloseq,ANY-method}
+\alias{mt,otu_table,logical-method}
+\alias{mt,otu_table,character-method}
+\alias{mt,otu_table,factor-method}
 \title{Multiple testing of taxa abundance according to sample categories/classes}
 \usage{
 mt(physeq, classlabel, minPmaxT = "minP", method = "fdr", ...)
@@ -90,4 +90,3 @@ head(res, 10)
 
 \code{\link[stats]{p.adjust}}
 }
-
diff --git a/man/nodeplotblank.Rd b/man/nodeplotblank.Rd
index f9e9bf4..a088e5e 100644
--- a/man/nodeplotblank.Rd
+++ b/man/nodeplotblank.Rd
@@ -37,4 +37,3 @@ plot_tree(esophagus, nodelabf=nodeplotblank)
 
 \code{\link{plot_tree}}
 }
-
diff --git a/man/nodeplotboot.Rd b/man/nodeplotboot.Rd
index ab66827..b88ee14 100644
--- a/man/nodeplotboot.Rd
+++ b/man/nodeplotboot.Rd
@@ -58,4 +58,3 @@ nodeplotboot(3, -0.4)
 
 \code{\link{plot_tree}}
 }
-
diff --git a/man/nodeplotdefault.Rd b/man/nodeplotdefault.Rd
index 536dfce..18e5f99 100644
--- a/man/nodeplotdefault.Rd
+++ b/man/nodeplotdefault.Rd
@@ -45,4 +45,3 @@ nodeplotdefault(3, -0.4)
 
 \code{\link{plot_tree}}
 }
-
diff --git a/man/nsamples-methods.Rd b/man/nsamples-methods.Rd
index 248e674..9c73f95 100644
--- a/man/nsamples-methods.Rd
+++ b/man/nsamples-methods.Rd
@@ -4,8 +4,8 @@
 \name{nsamples}
 \alias{nsamples}
 \alias{nsamples,ANY-method}
-\alias{nsamples,otu_table-method}
 \alias{nsamples,phyloseq-method}
+\alias{nsamples,otu_table-method}
 \alias{nsamples,sample_data-method}
 \title{Get the number of samples.}
 \usage{
@@ -42,4 +42,3 @@ nsamples(physeq1)
 \code{\link{taxa_names}}, \code{\link{sample_names}},
  \code{\link{ntaxa}}
 }
-
diff --git a/man/ntaxa-methods.Rd b/man/ntaxa-methods.Rd
index 46345c8..8069769 100644
--- a/man/ntaxa-methods.Rd
+++ b/man/ntaxa-methods.Rd
@@ -4,11 +4,11 @@
 \name{ntaxa}
 \alias{ntaxa}
 \alias{ntaxa,ANY-method}
-\alias{ntaxa,XStringSet-method}
-\alias{ntaxa,otu_table-method}
-\alias{ntaxa,phylo-method}
 \alias{ntaxa,phyloseq-method}
+\alias{ntaxa,otu_table-method}
 \alias{ntaxa,taxonomyTable-method}
+\alias{ntaxa,phylo-method}
+\alias{ntaxa,XStringSet-method}
 \title{Get the number of taxa/species.}
 \usage{
 ntaxa(physeq)
@@ -45,4 +45,3 @@ ntaxa(phy_tree(esophagus))
 \seealso{
 taxa_names
 }
-
diff --git a/man/ordinate.Rd b/man/ordinate.Rd
index 7d5440e..7e52326 100644
--- a/man/ordinate.Rd
+++ b/man/ordinate.Rd
@@ -153,4 +153,3 @@ supported method options.
 
 \href{http://cran.r-project.org/web/views/Multivariate.html}{Multivariate Statistics}
 }
-
diff --git a/man/otu_table-class.Rd b/man/otu_table-class.Rd
index f5aaae2..8273dc8 100644
--- a/man/otu_table-class.Rd
+++ b/man/otu_table-class.Rd
@@ -21,4 +21,3 @@ to the \code{otu_table} class, including square-bracket, \code{\link{t}}, etc.
 \item{.Data}{This slot is inherited from the \code{\link{matrix}} class.}
  }
 }
-
diff --git a/man/otu_table-methods.Rd b/man/otu_table-methods.Rd
index 56d221f..b3a95ea 100644
--- a/man/otu_table-methods.Rd
+++ b/man/otu_table-methods.Rd
@@ -3,11 +3,11 @@
 \docType{methods}
 \name{otu_table}
 \alias{otu_table}
-\alias{otu_table,ANY-method}
-\alias{otu_table,data.frame-method}
-\alias{otu_table,matrix-method}
-\alias{otu_table,otu_table-method}
 \alias{otu_table,phyloseq-method}
+\alias{otu_table,otu_table-method}
+\alias{otu_table,matrix-method}
+\alias{otu_table,data.frame-method}
+\alias{otu_table,ANY-method}
 \title{Build or access the otu_table.}
 \usage{
 otu_table(object, taxa_are_rows, errorIfNULL=TRUE)
@@ -56,4 +56,3 @@ object, then the corresponding \code{otu_table} is returned.
 \code{\link{phy_tree}}, \code{\link{sample_data}}, \code{\link{tax_table}}
  \code{\link{phyloseq}}, \code{\link{merge_phyloseq}}
 }
-
diff --git a/man/parseTaxonomy-functions.Rd b/man/parseTaxonomy-functions.Rd
index 905e7f3..e4ab36f 100644
--- a/man/parseTaxonomy-functions.Rd
+++ b/man/parseTaxonomy-functions.Rd
@@ -3,7 +3,9 @@
 \name{parse_taxonomy_default}
 \alias{parse_taxonomy_default}
 \alias{parse_taxonomy_greengenes}
+\alias{parse_taxonomy_default}
 \alias{parse_taxonomy_qiime}
+\alias{parse_taxonomy_default}
 \title{Parse elements of a taxonomy vector}
 \usage{
 parse_taxonomy_default(char.vec)
@@ -68,4 +70,3 @@ import functions that deal with taxonomy (e.g. \code{\link{import_qiime}}).
 \code{\link{import_biom}}
  \code{\link{import_qiime}}
 }
-
diff --git a/man/pcoa.Rd b/man/pcoa.Rd
index 98ae3be..09cd990 100644
--- a/man/pcoa.Rd
+++ b/man/pcoa.Rd
@@ -17,4 +17,3 @@ for generic extraction of coordinates and possibly other features from
 any ordination results.
 }
 \keyword{internal}
-
diff --git a/man/phy_tree-methods.Rd b/man/phy_tree-methods.Rd
index 2b0fc63..dfe37ca 100644
--- a/man/phy_tree-methods.Rd
+++ b/man/phy_tree-methods.Rd
@@ -55,4 +55,3 @@ must be named to match the results of
  \code{\link{refseq}},
  \code{\link{phyloseq}}, \code{\link{merge_phyloseq}}
 }
-
diff --git a/man/phylo-class.Rd b/man/phylo-class.Rd
index ae12713..8106450 100644
--- a/man/phylo-class.Rd
+++ b/man/phylo-class.Rd
@@ -11,4 +11,3 @@ It is used throughout the ape package.
 \seealso{
 \code{\link[ape]{phylo}}, \code{\link{setOldClass}}
 }
-
diff --git a/man/phylo.Rd b/man/phylo.Rd
index aa428ed..de116da 100644
--- a/man/phylo.Rd
+++ b/man/phylo.Rd
@@ -33,4 +33,3 @@ the ape package if possible and available.
 \code{\link[ape]{phylo}}
 }
 \keyword{internal}
-
diff --git a/man/phyloseq-class.Rd b/man/phyloseq-class.Rd
index 1df0e61..6c8df1e 100644
--- a/man/phyloseq-class.Rd
+++ b/man/phyloseq-class.Rd
@@ -48,4 +48,3 @@ The constructor, \code{\link{phyloseq}},
  constructor/accessors \code{\link{otu_table}}, \code{\link{sample_data}},
  \code{\link{tax_table}}, \code{\link{phy_tree}}, and \code{\link{refseq}}.
 }
-
diff --git a/man/phyloseq-deprecated.Rd b/man/phyloseq-deprecated.Rd
index 2030349..605a2ff 100644
--- a/man/phyloseq-deprecated.Rd
+++ b/man/phyloseq-deprecated.Rd
@@ -2,48 +2,48 @@
 % Please edit documentation in R/deprecated_functions.R
 \docType{package}
 \name{phyloseq-deprecated}
+\alias{phyloseq-deprecated}
 \alias{deprecated_phyloseq_function}
-\alias{filterfunSample}
-\alias{genefilterSample}
+\alias{plot_taxa_bar}
+\alias{taxaplot}
+\alias{taxtab}
+\alias{taxTab}
+\alias{sampleData}
+\alias{samData}
+\alias{sam_data}
+\alias{speciesSums}
+\alias{sampleSums}
+\alias{nspecies}
+\alias{species.names}
+\alias{sampleNames}
+\alias{sample.names}
 \alias{getSamples}
 \alias{getSpecies}
+\alias{rank.names}
 \alias{getTaxa}
+\alias{sample.variables}
 \alias{getVariable}
-\alias{import_qiime_sampleData}
 \alias{merge_species}
-\alias{nspecies}
 \alias{otuTable}
-\alias{otuTable<-}
-\alias{phyloseq-deprecated}
-\alias{phyloseq-deprecated-package}
+\alias{speciesarerows}
+\alias{speciesAreRows}
 \alias{plot_richness_estimates}
-\alias{plot_taxa_bar}
+\alias{import_qiime_sampleData}
+\alias{filterfunSample}
+\alias{genefilterSample}
 \alias{prune_species}
-\alias{rank.names}
-\alias{samData}
-\alias{sam_data}
-\alias{sam_data<-}
-\alias{sample.names}
-\alias{sample.variables}
-\alias{sampleData}
-\alias{sampleData<-}
-\alias{sampleNames}
-\alias{sampleSums}
-\alias{show_mothur_list_cutoffs}
-\alias{species.names}
-\alias{speciesAreRows}
-\alias{speciesAreRows<-}
-\alias{speciesSums}
-\alias{speciesarerows}
 \alias{subset_species}
-\alias{taxTab}
-\alias{taxTab<-}
-\alias{taxaplot}
-\alias{taxglom}
-\alias{taxtab}
 \alias{tipglom}
+\alias{taxglom}
 \alias{tre}
+\alias{show_mothur_list_cutoffs}
+\alias{sam_data<-}
+\alias{sampleData<-}
 \alias{tre<-}
+\alias{speciesAreRows<-}
+\alias{otuTable<-}
+\alias{taxTab<-}
+\alias{phyloseq-deprecated-package}
 \title{Depcrecated functions in the phyloseq package.}
 \usage{
 deprecated_phyloseq_function(x, value, ...)
@@ -108,4 +108,3 @@ removed.
   \code{taxTab<-} \tab now a synonym for \code{\link{tax_table<-}}\cr
 }
 }
-
diff --git a/man/phyloseq-package.Rd b/man/phyloseq-package.Rd
index 58de586..a01a348 100644
--- a/man/phyloseq-package.Rd
+++ b/man/phyloseq-package.Rd
@@ -18,11 +18,10 @@ and analyzing phylogenetic sequencing data. \emph{phyloseq} additionally provide
 convenience wrappers for input from common clustering applications, common analysis pipelines, 
 and native implementation of methods that are not available in other R packages.
 }
-\author{
-Paul J. McMurdie II \email{mcmurdie at stanford.edu}
-}
 \references{
 \url{www.stanford.edu/~mcmurdie}
 }
+\author{
+Paul J. McMurdie II \email{mcmurdie at stanford.edu}
+}
 \keyword{package}
-
diff --git a/man/phyloseq.Rd b/man/phyloseq.Rd
index 154f3c7..f0dfa63 100644
--- a/man/phyloseq.Rd
+++ b/man/phyloseq.Rd
@@ -46,4 +46,3 @@ identical(x1, esophagus)
 \seealso{
 \code{\link{merge_phyloseq}}
 }
-
diff --git a/man/phyloseq_to_deseq2.Rd b/man/phyloseq_to_deseq2.Rd
index 406697c..a1203a7 100644
--- a/man/phyloseq_to_deseq2.Rd
+++ b/man/phyloseq_to_deseq2.Rd
@@ -59,4 +59,3 @@ tutorials.
  
  \code{\link[DESeq2]{DESeqDataSetFromMatrix}}
 }
-
diff --git a/man/phyloseq_to_metagenomeSeq.Rd b/man/phyloseq_to_metagenomeSeq.Rd
index a0f6c9d..07437dd 100644
--- a/man/phyloseq_to_metagenomeSeq.Rd
+++ b/man/phyloseq_to_metagenomeSeq.Rd
@@ -39,4 +39,3 @@ tutorials for more details.
  \code{\link[metagenomeSeq]{MRtable}}
  \code{\link[metagenomeSeq]{MRfulltable}}
 }
-
diff --git a/man/plot_bar.Rd b/man/plot_bar.Rd
index 30fb997..54d33bc 100644
--- a/man/plot_bar.Rd
+++ b/man/plot_bar.Rd
@@ -71,4 +71,3 @@ plot_bar(gp.ch, "SampleType", fill="Genus", facet_grid=~Family)
 
  \code{\link{qplot}}
 }
-
diff --git a/man/plot_clusgap.Rd b/man/plot_clusgap.Rd
index 1fa618e..6be3516 100644
--- a/man/plot_clusgap.Rd
+++ b/man/plot_clusgap.Rd
@@ -56,4 +56,3 @@ plot_clusgap(gs.pam.RU)
 
 \code{\link[ggplot2]{ggplot}}
 }
-
diff --git a/man/plot_heatmap.Rd b/man/plot_heatmap.Rd
index a32337a..c1316c2 100644
--- a/man/plot_heatmap.Rd
+++ b/man/plot_heatmap.Rd
@@ -203,4 +203,3 @@ Because this function relies so heavily in principle, and in code, on some of th
 Please see further examples in the 
 \href{http://joey711.github.io/phyloseq/plot_heatmap-examples}{phyloseq online tutorials}.
 }
-
diff --git a/man/plot_net.Rd b/man/plot_net.Rd
index bb8aa0c..691032a 100644
--- a/man/plot_net.Rd
+++ b/man/plot_net.Rd
@@ -114,4 +114,3 @@ Original network plotting functions:
 
  \code{\link{plot_network}}
 }
-
diff --git a/man/plot_network.Rd b/man/plot_network.Rd
index fc2a96f..7d8920c 100644
--- a/man/plot_network.Rd
+++ b/man/plot_network.Rd
@@ -109,4 +109,3 @@ This code was adapted from a repo original hosted on GitHub by Scott Chamberlain
 \seealso{
 \code{\link{make_network}}
 }
-
diff --git a/man/plot_ordination.Rd b/man/plot_ordination.Rd
index 86272b9..3481d21 100644
--- a/man/plot_ordination.Rd
+++ b/man/plot_ordination.Rd
@@ -111,4 +111,3 @@ Also see the general wrapping function:
 
 \code{\link{plot_phyloseq}}
 }
-
diff --git a/man/plot_phyloseq-methods.Rd b/man/plot_phyloseq-methods.Rd
index 5cdf53a..a06f0fc 100644
--- a/man/plot_phyloseq-methods.Rd
+++ b/man/plot_phyloseq-methods.Rd
@@ -45,4 +45,3 @@ plot_phyloseq(esophagus)
  \code{\link{plot_bar}}
  \code{\link{plot_richness}}
 }
-
diff --git a/man/plot_richness.Rd b/man/plot_richness.Rd
index f26ea3c..7a7dbee 100644
--- a/man/plot_richness.Rd
+++ b/man/plot_richness.Rd
@@ -131,4 +131,3 @@ plot_richness(GlobalPatterns, x="SampleType", measures=c("Chao1", "ACE", "InvSim
 There are many more interesting examples at the
 \href{http://joey711.github.io/phyloseq/plot_richness-examples}{phyloseq online tutorials}.
 }
-
diff --git a/man/plot_scree.Rd b/man/plot_scree.Rd
index 732ad81..f14a373 100644
--- a/man/plot_scree.Rd
+++ b/man/plot_scree.Rd
@@ -52,4 +52,3 @@ plot_ordination(GP, ordinate(GP, "DCA"), type="scree")
 
  \href{http://joey711.github.io/phyloseq/plot_ordination-examples}{phyloseq online tutorials}
 }
-
diff --git a/man/plot_tree.Rd b/man/plot_tree.Rd
index 6bdbcda..2886dda 100644
--- a/man/plot_tree.Rd
+++ b/man/plot_tree.Rd
@@ -182,4 +182,3 @@ plot_tree(esophagus, size="abundance", color="samples", base.spacing=0.03)
 There are many useful examples of phyloseq tree graphics in the
 \href{http://joey711.github.io/phyloseq/plot_tree-examples}{phyloseq online tutorials}.
 }
-
diff --git a/man/prune_samples-methods.Rd b/man/prune_samples-methods.Rd
index 0750bca..f729319 100644
--- a/man/prune_samples-methods.Rd
+++ b/man/prune_samples-methods.Rd
@@ -4,8 +4,8 @@
 \name{prune_samples}
 \alias{prune_samples}
 \alias{prune_samples,character,otu_table-method}
-\alias{prune_samples,character,phyloseq-method}
 \alias{prune_samples,character,sample_data-method}
+\alias{prune_samples,character,phyloseq-method}
 \alias{prune_samples,logical,ANY-method}
 \title{Define a subset of samples to keep in a phyloseq object.}
 \usage{
@@ -47,4 +47,3 @@ by defining those you want to keep.
 \seealso{
 \code{\link{subset_samples}}
 }
-
diff --git a/man/prune_taxa-methods.Rd b/man/prune_taxa-methods.Rd
index 37cbfc3..7d62b55 100644
--- a/man/prune_taxa-methods.Rd
+++ b/man/prune_taxa-methods.Rd
@@ -4,13 +4,13 @@
 \name{prune_taxa}
 \alias{prune_taxa}
 \alias{prune_taxa,NULL,ANY-method}
-\alias{prune_taxa,character,XStringSet-method}
-\alias{prune_taxa,character,otu_table-method}
+\alias{prune_taxa,logical,ANY-method}
 \alias{prune_taxa,character,phylo-method}
-\alias{prune_taxa,character,phyloseq-method}
+\alias{prune_taxa,character,otu_table-method}
 \alias{prune_taxa,character,sample_data-method}
+\alias{prune_taxa,character,phyloseq-method}
 \alias{prune_taxa,character,taxonomyTable-method}
-\alias{prune_taxa,logical,ANY-method}
+\alias{prune_taxa,character,XStringSet-method}
 \title{Prune unwanted OTUs / taxa from a phylogenetic object.}
 \usage{
 prune_taxa(taxa, x)
@@ -68,4 +68,3 @@ identical(x1, x2)
 
  \href{http://cran.at.r-project.org/web/packages/picante/index.html}{prune.sample}
 }
-
diff --git a/man/psmelt.Rd b/man/psmelt.Rd
index e7e4f48..84056f1 100644
--- a/man/psmelt.Rd
+++ b/man/psmelt.Rd
@@ -70,4 +70,3 @@ print(p)
 
  \code{\link{merge}}
 }
-
diff --git a/man/rank_names.Rd b/man/rank_names.Rd
index 3884e62..bbde6c9 100644
--- a/man/rank_names.Rd
+++ b/man/rank_names.Rd
@@ -30,4 +30,3 @@ rank_names(enterotype)
  \code{\link{taxa_names}}
  \code{\link{sample_names}}
 }
-
diff --git a/man/rarefy_even_depth.Rd b/man/rarefy_even_depth.Rd
index cfa6f9b..83b8f5f 100644
--- a/man/rarefy_even_depth.Rd
+++ b/man/rarefy_even_depth.Rd
@@ -123,4 +123,3 @@ sample_sums(esorepF)
 
 \code{\link{set.seed}}
 }
-
diff --git a/man/read_tree.Rd b/man/read_tree.Rd
index ca99829..6a75ed8 100644
--- a/man/read_tree.Rd
+++ b/man/read_tree.Rd
@@ -48,4 +48,3 @@ read_tree(system.file("extdata", "GP_tree_rand_short.newick.gz", package="phylos
  
 \code{\link[ape]{read.nexus}}
 }
-
diff --git a/man/read_tree_greengenes.Rd b/man/read_tree_greengenes.Rd
index b55f3bf..6046650 100644
--- a/man/read_tree_greengenes.Rd
+++ b/man/read_tree_greengenes.Rd
@@ -54,4 +54,3 @@ class(y)
 # library("ape")
 # read.tree(treefile)
 }
-
diff --git a/man/reconcile_categories.Rd b/man/reconcile_categories.Rd
index f041b3d..84d1c75 100644
--- a/man/reconcile_categories.Rd
+++ b/man/reconcile_categories.Rd
@@ -32,4 +32,3 @@ analysis.
 # # # sapply(SM, class)
 }
 \keyword{internal}
-
diff --git a/man/refseq-methods.Rd b/man/refseq-methods.Rd
index bd395d0..22d044f 100644
--- a/man/refseq-methods.Rd
+++ b/man/refseq-methods.Rd
@@ -46,4 +46,3 @@ contain reference sequences (the component data type you are trying to access in
  \code{\link{phy_tree}},
  \code{\link{phyloseq}}, \code{\link{merge_phyloseq}}
 }
-
diff --git a/man/rm_outlierf.Rd b/man/rm_outlierf.Rd
index 5915e7c..2d989bf 100644
--- a/man/rm_outlierf.Rd
+++ b/man/rm_outlierf.Rd
@@ -37,4 +37,3 @@ prune_taxa(wh2, testOTU)
 \code{\link{topk}}, \code{\link{topf}},
  \code{\link{topp}}, \code{\link{rm_outlierf}}
 }
-
diff --git a/man/sample_data-class.Rd b/man/sample_data-class.Rd
index 4372902..d45ffe0 100644
--- a/man/sample_data-class.Rd
+++ b/man/sample_data-class.Rd
@@ -22,4 +22,3 @@ categories, variables (and so forth) that describe the samples.
 
 }
 }
-
diff --git a/man/sample_data-methods.Rd b/man/sample_data-methods.Rd
index 60396ae..a2e5b18 100644
--- a/man/sample_data-methods.Rd
+++ b/man/sample_data-methods.Rd
@@ -50,4 +50,3 @@ head(sample_data(soilrep))
 \code{\link{phy_tree}}, \code{\link{tax_table}}, \code{\link{otu_table}}
  \code{\link{phyloseq}}, \code{\link{merge_phyloseq}}
 }
-
diff --git a/man/sample_names-methods.Rd b/man/sample_names-methods.Rd
index 4c977b9..9322cc5 100644
--- a/man/sample_names-methods.Rd
+++ b/man/sample_names-methods.Rd
@@ -4,9 +4,9 @@
 \name{sample_names}
 \alias{sample_names}
 \alias{sample_names,ANY-method}
-\alias{sample_names,otu_table-method}
 \alias{sample_names,phyloseq-method}
 \alias{sample_names,sample_data-method}
+\alias{sample_names,otu_table-method}
 \title{Get sample names.}
 \usage{
 sample_names(physeq)
@@ -36,4 +36,3 @@ sample_names(esophagus)
 \seealso{
 \code{\link{taxa_names}}, \code{\link{nsamples}}
 }
-
diff --git a/man/sample_sums.Rd b/man/sample_sums.Rd
index ce2d00a..1e3b9c9 100644
--- a/man/sample_sums.Rd
+++ b/man/sample_sums.Rd
@@ -28,4 +28,3 @@ sample_sums(esophagus)
 \seealso{
 \code{\link{taxa_sums}}, \code{\link{rowSums}}, \code{\link{colSums}}
 }
-
diff --git a/man/sample_variables.Rd b/man/sample_variables.Rd
index 6f6eecd..48d4036 100644
--- a/man/sample_variables.Rd
+++ b/man/sample_variables.Rd
@@ -30,4 +30,3 @@ sample_variables(enterotype)
  \code{\link{taxa_names}}
  \code{\link{sample_names}}
 }
-
diff --git a/man/show-methods.Rd b/man/show-methods.Rd
index dbc0b10..e6821a0 100644
--- a/man/show-methods.Rd
+++ b/man/show-methods.Rd
@@ -3,9 +3,9 @@
 \docType{methods}
 \name{show,otu_table-method}
 \alias{show,otu_table-method}
-\alias{show,phyloseq-method}
 \alias{show,sample_data-method}
 \alias{show,taxonomyTable-method}
+\alias{show,phyloseq-method}
 \title{method extensions to show for phyloseq objects.}
 \usage{
 \S4method{show}{otu_table}(object)
@@ -31,4 +31,3 @@ expected behavior.
 \seealso{
 \code{\link[methods]{show}}
 }
-
diff --git a/man/show_mothur_cutoffs.Rd b/man/show_mothur_cutoffs.Rd
index 973c873..d8b65c3 100644
--- a/man/show_mothur_cutoffs.Rd
+++ b/man/show_mothur_cutoffs.Rd
@@ -26,4 +26,3 @@ for instance, a list or shared file.
 \seealso{
 \code{\link{import_mothur}}
 }
-
diff --git a/man/splat.phyloseq.objects.Rd b/man/splat.phyloseq.objects.Rd
index c9153ba..8101225 100644
--- a/man/splat.phyloseq.objects.Rd
+++ b/man/splat.phyloseq.objects.Rd
@@ -33,4 +33,3 @@ other tools that leave the multi-component object in one piece.
 merge_phyloseq
 }
 \keyword{internal}
-
diff --git a/man/subset_ord_plot.Rd b/man/subset_ord_plot.Rd
index 318cfca..4cd436a 100644
--- a/man/subset_ord_plot.Rd
+++ b/man/subset_ord_plot.Rd
@@ -67,4 +67,3 @@ There are many useful examples of phyloseq ordination graphics in the
 
  \code{\link{plot_ordination}}
 }
-
diff --git a/man/subset_samples-methods.Rd b/man/subset_samples-methods.Rd
index d8a6170..aa432a2 100644
--- a/man/subset_samples-methods.Rd
+++ b/man/subset_samples-methods.Rd
@@ -40,4 +40,3 @@ somewhere in the expression.
 \seealso{
 \code{\link{subset_species}}
 }
-
diff --git a/man/subset_taxa-methods.Rd b/man/subset_taxa-methods.Rd
index 1e81f8b..6c79ceb 100644
--- a/man/subset_taxa-methods.Rd
+++ b/man/subset_taxa-methods.Rd
@@ -38,4 +38,3 @@ somewhere in the expression.
 \seealso{
 \code{\link{subset_samples}}
 }
-
diff --git a/man/tax_glom.Rd b/man/tax_glom.Rd
index 92e9d98..7d7445b 100644
--- a/man/tax_glom.Rd
+++ b/man/tax_glom.Rd
@@ -70,4 +70,3 @@ because they should be meaningless following agglomeration.
 
 \code{\link{merge_taxa}}
 }
-
diff --git a/man/tax_table-methods.Rd b/man/tax_table-methods.Rd
index b549b98..aa9af08 100644
--- a/man/tax_table-methods.Rd
+++ b/man/tax_table-methods.Rd
@@ -4,8 +4,8 @@
 \name{tax_table}
 \alias{tax_table}
 \alias{tax_table,ANY-method}
-\alias{tax_table,data.frame-method}
 \alias{tax_table,matrix-method}
+\alias{tax_table,data.frame-method}
 \title{Build or access the taxonomyTable.}
 \usage{
 tax_table(object, errorIfNULL=TRUE)
@@ -54,4 +54,3 @@ contain a \code{taxonomyTable}.
 \code{\link{phy_tree}}, \code{\link{sample_data}}, \code{\link{otu_table}}
  \code{\link{phyloseq}}, \code{\link{merge_phyloseq}}
 }
-
diff --git a/man/taxa_are_rows-methods.Rd b/man/taxa_are_rows-methods.Rd
index 29966fa..9f26376 100644
--- a/man/taxa_are_rows-methods.Rd
+++ b/man/taxa_are_rows-methods.Rd
@@ -28,4 +28,3 @@ Access taxa_are_rows slot from otu_table objects.
 \seealso{
 \code{\link{otu_table}}
 }
-
diff --git a/man/taxa_names-methods.Rd b/man/taxa_names-methods.Rd
index aa0d8bc..28f4c6e 100644
--- a/man/taxa_names-methods.Rd
+++ b/man/taxa_names-methods.Rd
@@ -4,12 +4,12 @@
 \name{taxa_names}
 \alias{taxa_names}
 \alias{taxa_names,ANY-method}
-\alias{taxa_names,XStringSet-method}
-\alias{taxa_names,otu_table-method}
-\alias{taxa_names,phylo-method}
 \alias{taxa_names,phyloseq-method}
-\alias{taxa_names,sample_data-method}
+\alias{taxa_names,otu_table-method}
 \alias{taxa_names,taxonomyTable-method}
+\alias{taxa_names,sample_data-method}
+\alias{taxa_names,phylo-method}
+\alias{taxa_names,XStringSet-method}
 \title{Get species / taxa names.}
 \usage{
 taxa_names(physeq)
@@ -52,4 +52,3 @@ taxa_names(physeq1)
 \seealso{
 ntaxa
 }
-
diff --git a/man/taxa_sums.Rd b/man/taxa_sums.Rd
index cea644e..f3ee4d7 100644
--- a/man/taxa_sums.Rd
+++ b/man/taxa_sums.Rd
@@ -27,4 +27,3 @@ taxa_sums(esophagus)
 \seealso{
 \code{\link{sample_sums}}, \code{\link{rowSums}}, \code{\link{colSums}}
 }
-
diff --git a/man/taxonomyTable-class.Rd b/man/taxonomyTable-class.Rd
index 9821901..2dbfe64 100644
--- a/man/taxonomyTable-class.Rd
+++ b/man/taxonomyTable-class.Rd
@@ -13,4 +13,3 @@ Row indices represent taxa, columns represent taxonomic classifiers.
    \item{.Data}{This slot is inherited from the \code{\link{matrix}} class.}
 }
 }
-
diff --git a/man/threshrank.Rd b/man/threshrank.Rd
index c5c4e4c..898aeab 100644
--- a/man/threshrank.Rd
+++ b/man/threshrank.Rd
@@ -40,4 +40,3 @@ identical(x1, x3)
 \seealso{
 \code{\link{transform_sample_counts}}, \code{\link{rank}}, \code{\link{threshrankfun}}
 }
-
diff --git a/man/threshrankfun.Rd b/man/threshrankfun.Rd
index 60abf7a..b8274f4 100644
--- a/man/threshrankfun.Rd
+++ b/man/threshrankfun.Rd
@@ -35,4 +35,3 @@ identical(x1, x2)
 \code{\link{transform_sample_counts}}, \code{\link{threshrankfun}},
  \code{\link{threshrank}}
 }
-
diff --git a/man/tip_glom.Rd b/man/tip_glom.Rd
index f11adf2..d5681d2 100644
--- a/man/tip_glom.Rd
+++ b/man/tip_glom.Rd
@@ -67,4 +67,3 @@ plot_tree(tip_glom(esophagus, h=0.2), label.tips="taxa_names", size="abundance",
 
 \code{\link[ape]{phylo}}
 }
-
diff --git a/man/topf.Rd b/man/topf.Rd
index 6640290..084f69b 100644
--- a/man/topf.Rd
+++ b/man/topf.Rd
@@ -39,4 +39,3 @@ prune_taxa(wh2, testOTU)
 \code{\link{topk}}, \code{\link{topf}},
  \code{\link{topp}}, \code{\link{rm_outlierf}}
 }
-
diff --git a/man/topk.Rd b/man/topk.Rd
index 3868ad8..a5461ec 100644
--- a/man/topk.Rd
+++ b/man/topk.Rd
@@ -33,4 +33,3 @@ prune_taxa(wh2, testOTU)
 \code{\link{topk}}, \code{\link{topf}},
  \code{\link{topp}}, \code{\link{rm_outlierf}}
 }
-
diff --git a/man/topp.Rd b/man/topp.Rd
index 44b48e5..aac6851 100644
--- a/man/topp.Rd
+++ b/man/topp.Rd
@@ -35,4 +35,3 @@ prune_taxa(wh2, testOTU)
 \code{\link{topk}}, \code{\link{topf}},
  \code{\link{topp}}, \code{\link{rm_outlierf}}
 }
-
diff --git a/man/transformcounts.Rd b/man/transformcounts.Rd
index c526b21..a99a7c5 100644
--- a/man/transformcounts.Rd
+++ b/man/transformcounts.Rd
@@ -2,8 +2,9 @@
 % Please edit documentation in R/transform_filter-methods.R
 \docType{methods}
 \name{transform_sample_counts}
-\alias{transformSampleCounts}
 \alias{transform_sample_counts}
+\alias{transformSampleCounts}
+\alias{transformSampleCounts}
 \title{Transform abundance data in an \code{otu_table}, sample-by-sample.}
 \usage{
 transform_sample_counts(physeq, fun, ...)
@@ -52,4 +53,3 @@ head(otu_table(x4), 10)
 \seealso{
 \code{\link{threshrankfun}}, \code{\link{rank}}, \code{\link{log}}
 }
-
diff --git a/man/transpose-methods.Rd b/man/transpose-methods.Rd
index a99a674..1611b8a 100644
--- a/man/transpose-methods.Rd
+++ b/man/transpose-methods.Rd
@@ -29,4 +29,3 @@ data(GlobalPatterns)
 otu_table(GlobalPatterns)
 t( otu_table(GlobalPatterns) )
 }
-
diff --git a/man/tree_layout.Rd b/man/tree_layout.Rd
index f1879ae..b416650 100644
--- a/man/tree_layout.Rd
+++ b/man/tree_layout.Rd
@@ -64,4 +64,3 @@ function that utilizes performance enhancements from standard
 \code{\link{data.table}} magic as well as \code{\link{ape-package}}
 internal C code.
 }
-
diff --git a/tests/testthat/test-IO.R b/tests/testthat/test-IO.R
index 25be08e..928e86e 100644
--- a/tests/testthat/test-IO.R
+++ b/tests/testthat/test-IO.R
@@ -319,8 +319,9 @@ test_that("The specialized read_tree_greengenes function works:", {
   expect_match(x$tip.label, "[[:digit:]]+")
   # All tip/OTU names should be unique
   expect_false(any(duplicated(taxa_names(x))))
-  # The more general read_tree function should fail to read and return NULL
-  expect_is(read_tree(treefile), "NULL")
+  # The more general read_tree function reads, but they are not equal
+  y = read_tree(treefile)
+  expect_false(all.equal(x, y))
 })
 ################################################################################
 # microbio_me_qiime tests

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/r-bioc-phyloseq.git



More information about the debian-med-commit mailing list