phyloseq: An R Package for Reproducible Interactive Analysis and Graphics of Microbiome Census Data

Paul J. McMurdie, Susan Holmes · PLoS ONE · 2013 · ecology · 10.1371/journal.pone.0061217 · record mcmurdie2013-phyloseq-microbiome-analysis
tag layer · index · concepts · authors · עברית
Where this record's text came from. 2026-08-31 schema-0.3 pass: every quote verified as an exact substring of the staged text and anchored at merge time; concept terms verified present; every edge endpoint an existing node.
How to read this page. The article text below is reproduced exactly as it was staged; nothing in it has been rewritten. Coloured stretches are tagged. A solid underline means the tag records the paper's own words. A dotted underline means the tag text is the tagger's sentence about the paper — the quotation is the paper's, the wording of the tag is not. Every superscript label links to that tag's row in the table at the foot of the page. The machine-readable edition of the same thing is the TEI file beside this one, where the tags live in standOff. When we have changed our mind. Some entries in the table begin with a word in capitals and the reason for it. EVIDENCE CORRECTED — the finding still stands, but we had quoted the wrong sentence from the paper, and the quotation has been replaced with the right one. RETRACTED — the entry itself was wrong; it stays on the page, marked, with the reason, rather than being deleted. WITHDRAWN AND REPLACED — the entry was wrong, and a corrected version of it appears in the entries below. Each mark carries its own reason, in brackets, because the reasons differ from one entry to the next. An entry we have WITHDRAWN is removed from this page and kept in the record, with its reason. A line reading Audit and a date is a later re-reading of the entry against its whole sentence: DOUBTFUL means it was kept, and the reason says what is loose about it. Quotation marks inside the tagger's sentence. Where a tag is the tagger's own sentence, a phrase in quotation marks inside it is borrowed from the paper — the tagger's wording around it is not. The paper's own sentence is the evidence quote shown on the same row, so the borrowing can be checked against the thing borrowed from without leaving this page. Nothing inside quotation marks anywhere on this page is ours: if it is quoted, it is the paper's. Whose words a concept carries. A concept entry records a term the paper itself uses, so the term, the sense given for it, and its evidence are the paper's own words, quoted where the paper fixes them. This is the opposite of a sense entry in the tag table, which is the tagger's sentence about how the paper uses a term. Where a concept entry could not be grounded in the paper's words, the entry says so on its own row.
Other fields define these differently the same word, defined another way in another discipline
operational taxonomic units 5 fields · reproducible research 4 fields · OTUs 3 fields · R 3 fields · Bioconductor 2 fields · loss of information 2 fields · and 3 more →

Tags on this paper

Every tag the record carries, each linking to every other paper in the corpus that carries it. A tag appears here whether or not its words occur in the article — the spans below are only the ones a sentence in this paper licenses. Of the 63 concept tags on this paper, all 63 are grounded in a quoted sentence. All carry the tagger's gloss of what the term means in this paper, which is not something the article can license.
phyloseq open-source software package object-oriented representation microbiome census data phylogenetic sequencing contingency table taxonomic units experimental observations amplicon sequencing shotgun operational taxonomic units OTUs taxa 16S rRNA PCR amplification OTU-clustering applications post-clustering stage R Bioconductor OTUbase QIIME mothur object-oriented programming infrastructure ecological distances dimensional reduction literate-programming framework roxygen2 phyloseq class experiment-level data storage class otu_table beta diversity pairwise ecological distances ordination distance Fast UniFrac distance matrix ordinate correspondence analysis non-metric multidimensional scaling ggplot2 aesthetic attributes plot_heatmap hierarchical clustering plot_network distance threshold plot_tree rarefaction loss of information Bray-Curtis distances raw abundance counts nonparametric Family Wise Error Rate FWER minP reproducible research complete code and data Sweave knitr R flavored markdown phyloseq-constructor method updated phyloseq-class originally-proposed phyloseq-class structure accessors integrated experiment object dimension propagation distance interface ordination interface graphics grammar ordination-organized heat map permutation error control literate analysis phylogenetic sequencing data phyloseq-class distance method ordination method OTU abundance column sums tuning parameters system-or-tool-building
Method, as described: software design description with worked analyses, graphics, comparison of statistical options and fully released reproduction materials

Legend

relation to other workclaim_relationshow this paper stands to another: agrees, contradicts, extends, qualifies
claim typeclaim_typethe shape of the claim: existence, mechanism, method, critique, prediction, null
concept edgeconcept_edgesan asserted relation between two concepts, with the sentence asserting it
conceptconceptsan idea the paper works with, quoted where the paper uses it
content tagcontent_tagsa finding, definition, quantity, statistic or variable named in the paper
contributioncontributionwhat the paper claims to add
controlcontrolsan experiment run to eliminate a rival explanation
limitationlimitationswhat the paper says its evidence cannot support
mechanismmechanismshow the reported effect is said to come about
methodmethodhow the paper produced its evidence
object of studyobject_of_studywhat the paper is about — the thing it investigates
phenomenonphenomenonthe effect or regularity under study
research questionresearch_questionthe question the paper sets itself
sensesensesa distinct use of a term, quoted where the paper fixes it
unrecordable relationunhoused_relationsa relation the paper asserts that this vocabulary cannot express, with the reason

The paper, tagged

The reference list is not part of the text we hold for this paper. Our copy was extracted from the publisher's page and the bibliography did not survive that extraction, so the article below ends before its references. Nothing has been removed by us.

phyloseq: An R Package for Reproducible Interactive Analysis and Graphics of Microbiome Census Data

Abstract

research_questionlimitationsThe analysis of microbial communities through DNA sequencing brings many challenges: the integration of different types of data with methods from ecology, genetics, phylogenetics, multivariate statistics, visualization and testing. With the increased breadth of experimental designs now being pursued, project-specific statistical analyses are often needed, and these analyses are often difficult (or impossible) for peer researchers to independently reproduce. The vast majority of the requisite tools for performing these analyses reproducibly are already implemented in R and its extensions (packages), but with limited support for high throughput microbiome census data.

object_of_studycontributionconcepts↗concepts↗concepts↗unhoused_relationsunhoused_relationsclaim_relationscontent_tagscontent_tagsHere we describe a software project, phyloseq, dedicated to the object-oriented representation and analysis of microbiome census data in R. It supports importing data from a variety of common formats, as well as many analysis techniques. These include calibration, filtering, subsetting, agglomeration, multi-table comparisons, diversity analysis, parallelized Fast UniFrac, ordination methods, and production of publication-quality graphics; all in a manner that is easy to document, share, and modify. We show how to apply functions from other R packages to phyloseq-represented data, illustrating the availability of a large number of open source analysis techniques. We discuss the use of phyloseq with tools for reproducible research, a practice common in other fields but still rare in the analysis of highly parallel microbiome census data. We have made available all of the materials necessary to completely reproduce the analysis and figures included in this article, an example of best practices for reproducible research.

claim_typeconcepts↗concept_edgesThe phyloseq project for R is a new open-source software package, freely available on the web from both GitHub and Bioconductor.

Introduction

Phylogenetic Sequencing

concepts↗concepts↗concepts↗concepts↗unhoused_relationssensescontent_tags↗High-throughput (HT) DNA sequencing [1] is allowing major advances in microbial ecology studies [2] , where our understanding of the presence and abundance of microbial species relies heavily on the observation of their nucleic acids in a “culture independent” manner [3] . This nucleic acid sequencing based census of the inhabitants of microbiome samples is very often now accompanied with other experimental observations (e.g. clinical, environmental, metabolomic, etc.), in addition to phylogenetic tree reconstruction and/or taxonomic classification of the sequences. Here we refer to this as “phylogenetic sequencing” data if it can be usefully represented as a contingency table of taxonomic units and samples, and integrated with the other aforementioned data types. Importantly, this term – also the namesake of the software here described – is defined so as to not be specific to the method by which the phylogenetically relevant microbial census data was obtained, reflecting the intended level of data abstraction in the software. The following are two examples of common methods for producing phylogenetic sequencing data.

concepts↗concepts↗concepts↗concepts↗concepts↗concepts↗concepts↗unhoused_relationsconcept_edgescontent_tags↗Barcoded [2] amplicon sequencing of dozens to hundreds of samples [4] is a method of phylogenetic sequencing of microbiomes, often targeting the small subunit ribosomal RNA (16S rRNA) gene [3] , for which there are also convenient tools [5] and large reference databases [6] – [8] . The task of decoding the sample source of each sequence read by its barcode, followed by similarity clustering to define operational taxonomic units (OTUs, sometimes referred to as taxa ) [9] , [10] can be performed by publicly available packages/pipelines, including QIIME [11] , mothur [12] , and PANGEA [13] ; as well as virtual machine (VM) and cloud-based solutions such as the RDP pipeline [7] , Pyrotagger [14] , CLoVR-16S [15] , Genboree [16] , QIIME EC2 image [17] , n3phele [18] , and MG-RAST [19] .

An alternative experimental method is random “shotgun” sequencing [20] , [21] of un-amplified metagenomic DNA [22] , in which case OTU clustering and counting is based upon one or more detectable phylogenetic markers in the metagenomic sequence fragments, using tools such as phylOTU [23] . It is worth noting that bias from PCR amplification is avoided in this latter approach – at the expense of per-sequence efficiency [23] – and both methods are now commonly used for phylogenetic sequencing ( Figure 1 ).

Example of a phylogenetic sequencing workflow. A diagram of an experimental and analysis workflow for amplicon or shotgun phylogenetic sequencing. The intended role for phyloseq is indicated.

The phyloseq Project

limitationsconcepts↗concepts↗concepts↗Many of the previously mentioned OTU-clustering applications also perform additional downstream analyses (File S1). However, typically an investigator must port the human-unreadable output data files to other software for additional processing and statistical analysis specific to the goals of the investigation. The powerful statistical, ecological, and graphics tools available in R [24] make it an attractive option for this post-clustering stage of analysis. While the computational efficiency of compiled languages like [25] make them appropriate for the expensive but well-defined requirements of the initial sequence-processing, the subsequent analysis is vaguely-defined and project specific; requiring instead a broad set of interactive calculations that is often less computationally expensive and for which R is well-suited [26] . The public repositories of open-source R extensions (“packages” or “libraries”) include many dedicated ecology and phylogenetic packages. For instance, there are several dozen packages listed in the CRAN Ecology Task View [27] , as well as distory [28] , phangorn [29] , picante [30] , and now phyloseq [31] . Furthermore, R includes infrastructure for documenting an analysis in such a way that it can be easily reproduced and modified by peers [32] , [33] .

concepts↗concepts↗concepts↗concepts↗In spite of all of these highly relevant tools, we recently described the lack of a satisfactory standard within Bioconductor [34] (or R generally) for importing the data files from the most popular OTU-clustering applications, or representing this data in a complete, integrated class [31] . One Bioconductor package, OTUbase [35] , pursues some of these goals, but has no support for phylogenetic trees in its data class, nor support for importing data from popular/recent OTU-clustering output formats [35] , [36] (File S1). We have proposed a new Bioconductor package, phyloseq (from “ phylo genetic seq uencing”), dedicated to the object-oriented representation and analysis of phylogenetic sequencing data in R [31] , and supporting common OTU-clustering output formats like QIIME [11] , mothur [12] , the RDP-pipeline [7] , Pyrotagger [14] , and the biom-format [37] .

phenomenonIn this article we describe the conceptual framework and toolbox of a substantially enhanced phyloseq codebase, including especially some advanced ordination and graphics capabilities. We further note that data imported by phyloseq is also accessible to analyses encoded by a large number of freely available R packages, in addition to the capabilities directly supported by phyloseq itself. We will end by discussing the notion of “reproducible research” in the context of phylogenetic sequencing data, and how phyloseq and R can be used in analyses that are more open and reproducible than those found in recent common practice.

Methods

phyloseq Project Key Features

concepts↗concepts↗concepts↗claim_relationscontent_tagsThe phyloseq package provides an object-oriented programming infrastructure that simplifies many of the common data management and preprocessing tasks required during analysis of phylogenetic sequencing data. This simplified syntax helps mitigate inconsistency errors and encourages interaction with the data during preprocessing. The phyloseq package also provides a set of powerful analysis and graphics functions, building upon related packages available in R and Bioconductor. It includes or supports some of the most commonly-needed ecology and phylogenetic tools, including a consistent interface for calculating ecological distances and performing dimensional reduction (ordination). The graphics functions allow users to interactively produce annotated publication-quality graphics in just one or two lines of code. The phyloseq package includes extensive documentation in the form of function- and package-level manuals embedded in the package's documentation interface and in a PDF version on Bioconductor [38] , as well as extended reproducible examples on the phyloseq homepage [39] , and open collaborative development on GitHub [40] .

Implementation

concepts↗concepts↗The phyloseq package adheres to the requirements for standard R packages set forth in the official “Writing R Extensions” manual [40] . It also satisfies additional requirements of the Bioconductor Repository [34] , and uses a literate-programming framework based on structured in-source comments, called roxygen2 [41] , for (re)building the R documentation (.Rd) files and the namespace specifications. The phyloseq package can be installed on any system on which R is supported, including Mac OS X, Windows, and most Linux distributions.

Data Availability

R packages can include example data that is documented with the same help system as other package objects [58] . This data becomes available in the R session by invoking the data function after the package has been loaded. Unless otherwise noted, the examples provided in this manuscript use example data that is included in the phyloseq package.

Data Infrastructure and Design

mechanisms↗limitationsunhoused_relationssensesclaim_relationscontent_tags↗The phyloseq project includes an object-oriented class that integrates the heterogeneous components of OTU-clustered phylogenetic sequencing data. Although Bioconductor provides many utilities for efficient manipulation of DNA sequences, phyloseq does not currently re-implement any methods for DNA sequence decoding, processing, or OTU-clustering ( Figure 1 , File S1). Instead, phyloseq provides tools to read the output files of the most common OTU-clustering applications [7] , [11] , [12] , [14] , and represents this data in R as an instance of the main data class. This multi-component “experiment-level” class — named “phyloseq”, and referred to here as “the phyloseq-class” — is a key design feature of the phyloseq project, with subsequent user-accessible functions expecting to operate on an instance of this class as their sole or primary input data. These functions are described in detail in the phyloseq manual [7] , and are part of a modular workflow summarized in Figure 2 .

Analysis workflow using phyloseq. The workflow starts with the results of OTU clustering and independently-measured sample data (Input, top left), and ends at various analytic procedures available in R for inference and validation. In between are key functions for preprocessing and graphics. Rounded rectangles and diamond shapes represent functions and data objects, respectively, further described in Figure 3 .

mechanisms↗controlsconcepts↗unhoused_relationscontent_tagsFigure 3 summarizes the structure of the phyloseq-class and its components. Each of the slots are empty (NULL) by default, although an instance missing an otu_table component is invalid. Tools in phyloseq that truncate dimensions of one component (that is, remove samples or OTUs) automatically propagate the change across all relevant components. In general, researchers only need to manipulate their “experiment-level” object, making data (pre)processing less prone to mistakes, and often simplifying analysis commands to just one data argument.

concepts↗concepts↗concept_edgesThe “phyloseq” class. The phyloseq class is an experiment-level data storage class defined by the phyloseq package for representing phylogenetic sequencing data. Most functions in the phyloseq package expect an instance of this class as their primary argument. See the phyloseq manual [38] for a complete list of functions.

Analysis Functions

Complementing the data infrastructure, the phyloseq package provides a set of functions that take a phyloseq object as the primary data, and performs an analysis and/or graphics task. Figure 2 summarizes the general workflow within phyloseq, and lists some of the main functions/tools.

concepts↗concepts↗concepts↗unhoused_relationssensescontent_tags↗Comparisons of the type and quantity of OTUs observed between microbiome samples (“beta diversity”) is often approached through the calculation of pairwise ecological distances [42] , [43] , and through dimensional reduction (ordination) methods. The phyloseq package provides a consistent interface for the most common approaches to distance calculations and ordination. This interface is also the foundation for the custom ordination and heatmap graphics functions described in the next subsection.

mechanisms↗concepts↗concepts↗concepts↗sensesconcept_edgescontent_tagscontent_tagscontent_tags↗In phyloseq the interface for ecological distance calculations is a single function, distance, that takes a phyloseq object as its data argument as well as a character string indicating the distance method, with explicit support for more than 40 ecological distance methods. This includes a R -native, optionally-parallel implementation of Fast UniFrac [44] (both weighted [45] and unweighted [46] ). The output is a “dist” class distance matrix (lower-triangle) appropriate for standard clustering analysis in core R (e.g. hclust), as well as certain dimensional reduction (ordination) methods.

mechanisms↗limitationsconcepts↗concepts↗concepts↗content_tagscontent_tags↗The interface for performing ordination methods is also a single function, called ordinate, that takes a phyloseq object as its primary data argument and a character string indicating the desired ordination method. For example, the following would perform (unconstrained) correspondence analysis on the included “Global Patterns” dataset [47] .

The ordinate function currently supports correspondence analysis (CA) [48] , constrained correspondence analysis (CCA) [49] , detrended correspondence analysis (DCA) [50] , redundancy analysis (RDA) [51] , principal components analysis (PCA) [52] , double principle coordinates analysis (DPCoA) [53] , multidimensional scaling (MDS, PCoA) [54] , and non-metric multidimensional scaling (NMDS) [55] . For CA, CCA, DCA, RDA, and DPCoA, the ordination is based upon an evaluation of abundance values (in the case of DPCoA, the patristic distances between OTUs on the phylogenetic tree is also used), but not an ecological distance. For MDS and NMDS, the ordinate function requires a pre-calculated distance matrix (“dist” object) or the name of a supported ecological distance method. For example, PCoA/MDS can be calculated on an unweighted UniFrac distance matrix [46] , using the following command:

There are many combinations of approaches possible (even extending into time-series of table pairs), and the optimal approach depends on the goals of the experiment and characteristics of the data [56] . The phyloseq package also includes a specialized function for displaying ordination results in different ways, described in the following section.

Specialized Graphics

mechanisms↗concepts↗concepts↗content_tagsOne of the key features of the phyloseq package is a set of graphics functions custom-tailored for phylogenetic sequencing analysis, built using the ggplot2 package [57] . The ggplot2 package is an implementation of Wilkinson's The Grammar of Graphics , which provides an object-oriented description of analytical graphics that emphasizes the separation of data and its mapping to aesthetic attributes [58] . In the phyloseq package, functions having names beginning with “plot_” require a phyloseq object as input data, and return a ggplot2 graphics object. These plot_ functions support optional mapping of color, size, and shape aesthetics to sample or OTU variables — usually by providing the name of the variable or taxonomic rank as a character string (E.g. color = “SampleType”). Legends are automatically generated based on the data and aesthetic mappings (not true of the base R graphics), and all features of these graphics can be further modified in R via functions/options in the ggplot2 package.

The following list summarizes the key graphics-producing functions in phyloseq, which are also demonstrated in Figure 4 , and in phyloseq's online tutorials [39] . File S2 provides the complete R code for creating Figures 4 and 5 . We have also included some additional examples of graphics created by plot_ordination ( Figure 5 ). They emphasize different aspects of ordination results, and the best choice depends heavily on characteristics of the data and research questions. The provided code also demonstrates a custom modification to the ggplot2 graphic, in this case the addition of a two-dimensional density estimate to the “OTUs-only” plot (File S2).

Graphic functions of the phyloseq package. The phyloseq class is an experiment-level data storage class defined by the phyloseq package for representing phylogenetic sequencing data. Most functions in the phyloseq package expect an instance of this class as their primary argument. See the phyloseq manual The Global Patterns [47] and Enterotypes [91] datasets are included with the phyloseq package. The Global Patterns data was preprocessed such that each sample was transformed to the same total read depth, and OTUs were trimmed that were not observed at least 3 times in 20% of samples or had a coefficient of variation ≤ 3.0 across all samples. For the plot_tree and plot_bar subplots, only the Bacteroidetes phylum is shown. Each subplot title indicates the plot function that produced it. Complete details for reproducing this figure are provided in File S2. All of these functions return a ggplot object that can be further customized/modified by tools in the ggplot2 package [57] . See additional descriptions of each function in the body text, and at the phyloseq homepage [39] .

plot_ordination display methods included in phyloseq. Each panel uses a “Bacteroidetes-only” subset of the preprocessed “Global Patterns” dataset that was also used in Figure 4 . The coordinates are derived from an unconstrained correspondence analysis [62] . Different panels illustrate different displays of the ordination results using the type argument to the plot_ordination function. (Top Left) Example of a samples-only display, with the “SampleType” mapped to the color aesthetic, and a filled-polygon layer to emphasize plot regions where sample types co-occur. (Top Left Insert) A “scree” plot of the eigenvalues associated with each axis, which indicates the proportion of total variability represented in each axis. (Top Right) Biplot representation in which samples and OTUs ordination results are overlaid. Clumps of OTUs appear to co-occur with different sample types, and some correlation with taxonomic phylum is also evident. (Middle) An OTUs-only plot that has been faceted (separated into panels) by class, with a two-dimensional density estimate overlain in blue. This view shows clearly a lack of association between the Sphingobacteria and Flavobacteria classes with fecal samples, which appear to be enriched in a subset of the Bacteroidia (relative to other OTUs in this Bacteroidetes-only dataset). Meanwhile, subsets of Bacteroidia appear to be enriched within multiple sample types. (Bottom) The “split” type for this graphic, in which both samples-only and OTUs-only plots are created, and shown side-by-side with one legend and shared vertical axis. Both the “biplot” and “split” options allow dual projections of both OTU- and sample-space.

plot_ordination. This is the main function for plotting the results of an ordination. It currently supports four different representations of the ordination results: samples-only, OTUs-only, “biplot” (combined) representation, and “split”. A demonstration of these different options is provided in Figure 5 . As can be seen in these examples, the “biplot” and “split” options support dual projections of both OTU- and sample-space. Additional parameters easily map the respective sample variable or taxonomic rank to color, size, or shape aesthetics.

mechanisms↗concepts↗concepts↗content_tags↗plot_heatmap. This is a special implementation of the ordination-organized heat map similar to the NeatMap package [59] . Briefly, the abundance matrix is represented as a grid of colored tiles, with the color of the tiles mapped to the (usually transformed) abundance value. The ordering of the OTUs and sample indices in this representation is critical for discriminating any patterns. Traditionally, hierarchical clustering methods have been used for this organization; but, as Rajaram and Oono recently pointed out [59] , this has the potential to misrepresent the data when deeply-branching elements are placed next to one another arbitrarily. Instead, the samples (and optionally, OTUs) are reordered based on their radial coordinate angle in the first two axes of an ordination. For the plot_heatmap function, any of the distances/ordinations supported by the distance and ordinate functions can be used, with the default being non-metric multidimensional scaling. Any arbitrary color scale can be selected, as well as any choice of numerical transformation for scaling the mapping of color shades to abundance.

limitationsconcepts↗concepts↗unhoused_relationssensescontent_tags↗plot_network. This function plots an igraph-class network [60] representing binary relationships between samples or OTUs. The network is calculated using the make_network function with phyloseq data as input and a desired ecological distance and threshold value. Unlike ordination, where most of the data structure is summarized by the relative position in two or more axes, the data is instead summarized by connections between samples (or OTUs) drawn with straight lines. Two samples are considered “connected” if the distance between them is less than a user-defined threshold. The relative position of points is optimized for the visual display of network properties, but is otherwise arbitrary. Any of the ecological distances supported by the distance function can be selected, and this can be a powerful representation of major clusters among samples or OTUs, provided the value of the distance threshold has been chosen carefully.

limitationsconcepts↗content_tagsplot_tree. This function facilitates easy graphical rendering/investigation of the phylogenetic tree, with sample data overlaid. In some cases an annotated tree can be a powerful representation of an underlying evolutionary structure. The plot_tree function optionally places successive points next to the tips of the tree, indicating the samples in which each OTU was observed. These points can have their color, shape, and size aesthetics mapped to sample variables, revealing the correspondence of environmental variables on specific regions of the evolutionary tree. Standard ggplot2 customizations are supported, and this is, to our knowledge, the only function for ggplot2-based phylogenetic trees currently available in the CRAN/Bioconductor repositories. For phylogenetic sequencing of samples with large richness, some of the options in this function will be prohibitively slow to render or too dense to be interpretable, a drawback to summarizing phylogenetic sequencing data using trees. One suggestion is to either agglomerate or subset the data such that there are not more than 200 or so OTUs (tree tips) on a given plot, sometimes less depending on the complexity of the additional annotations being mapped to the tree. In many modern datasets 200 OTUs (or less) will be insufficient to summarize the entire dataset, in which case one or more of the other plot methods is suggested.

plot_bar. Although sometimes very complicated, a well-organized bar plot can be an effective graphical means for direct quantitative comparison of abundance values, and we note that statisticians generally discourage the use of pie-charts [61] . The plot_bar function takes as input a phyloseq dataset and a collection of arbitrary expressions for grouping the data based upon taxonomic rank and sample variables. The returned graphic represents each abundance value as the height of a rectangular block that is outlined by a thin black line and filled with the corresponding color of the user-specified sample or taxonomic variable, grey by default. Each of these OTU abundance rectangles corresponding to the same horizontal position (usually sample, or sample group) are stacked in order of abundance, such that the aggregate height of the stacked bar is also quantitatively informative.

plot_richness . This function creates plots of richness estimates of each sample in a phyloseq data object, allowing for horizontal grouping and color shading according to additional sample variables. Differences in richness (alpha diversity) between samples is often one of the first questions asked of phylogenetic sequencing data.

Normalization and Standardization

limitationsconcepts↗concepts↗concepts↗sensescontent_tagscontent_tagscontent_tags↗In multivariate analyses such as PCA, large differences in variances between columns are corrected by standardizing each column; i.e. dividing each column by its standard deviation. Thus each column will have the same weight in the multivariate analysis. For OTU abundance tables, such a procedure is inappropriate as the disparities in column sums can be 100-fold. Methods based on chi-squared distances rather than variances deal with this by comparing weighted column profiles [62] , computed as relative abundances for each OTU within a column, with the overall column sum retained as a weighting factor. However, chi-square distances are sums of squares and can be overly sensitive to outliers and sequencing “jackpot” effects such as those occurring in pyrosequencing data [63] . Bray-Curtis distances can be a useful alternative, as it is based on the distance between profiles, as long as the differences in actual column sums are also accounted for in the final study. The other approach to the problem of disparities between column sums has been to subsample the over-abundant columns down to the same number as the smaller ones. However this results in a loss of information, rarely an optimal procedure in statistical contexts. This subsampling procedure is inspired by the popular idea of rarefaction in coverage studies first invented by Sanders [64] , but has yet to be proved beneficial for all microbial community structures. The parallels between gene expression microarray analyses and microbial abundance analyses was mentioned in [65] , which proposed several expression-inspired strategies for robustifying abundance measurements. The main points were that rankings and thresholding are important in the presence of noise and high variability in sequence depths. As in gene expression analysis filtering the OTUs is beneficial, especially in the latter multiple testing adjustments. The phyloseq package enables easy filtering and rank transformations in the same vein as robust multi-array averaging (rma) [66] . We provide further details in (McMurdie and Holmes, [67] ).

Confirmatory Analyses

limitationsconcepts↗concepts↗content_tagsAlthough useful for exploring and summarizing microbiome data, many of the graphics and ordination methods discussed here are not formal tests of any particular hypothesis. The most common framework for testing in microbiome studies is the comparisons of samples from different categories (e.g. healthy and obese; control and treated; different environments). Standard test statistics include the t-test, the paired permutation t-test, and ANOVA type tests based on F or pseudo-F statistics. However, microbiome data have two particularities. First, the raw abundance counts are never normally distributed, so the preferred methods are nonparametric. Second, there is contiguous information available about the relationships between OTUs, as well as for variables measured on the samples, so testing is sometimes more elaborate than a two-sample test. The hypergeometric test, also known as Fisher's exact test, is used in cases when we have a test statistic for each of the different OTUs. The goal is to confirm that a certain property of these significant OTUs is overrepresented compared to the general population of OTUs, often called “the universe”. For instance in Holmes et al [65] and Nelson et al [68] several phyla were shown to be significantly over-abundant in IBS rats as compared to healthy controls using this hypergeometric test.

mechanisms↗concepts↗concepts↗concepts↗sensesconcept_edgescontent_tags↗content_tagscontent_tagsAn organizing principle in many nonparametric testing protocols is that the repetition of an analysis multiple times enables the user to control for multiple testing, or to evaluate the quality of estimators or the optimal values of tuning parameters. Modern confirmatory analyses currently depend on these repeated analyses under various data perturbation schemes, of which resampling, permutations, and Monte Carlo simulations are the most common. For instance the bootstrap uses many thousands of analyses of resampled data to address problems such as statistical stability or bias estimation [69] , and can even provide confidence regions [69] for nonstandard parameters, such as phylogenetic trees [70] . Repeating analyses on permuted data can allow for control of the probability of encountering 1 or more false positives (falsely rejected nulls) among your group of simultaneous hypotheses, also called the Family Wise Error Rate (FWER). For instance, Westfall and Young's permutation-based minP procedure controls the FWER [71] and is implemented within the multtest package [72] . The phyloseq package interfaces with minP in multtest through a wrapper function, called mt. In the following example code we use the mt wrapper to control the FWER while simultaneously testing whether each OTU correlates with the “Enterotypes” classification of the samples. Note that we first remove samples that were not assigned an enterotype by the original authors ( Table 1 ).

Results from the mt function on the “Enterotypes” dataset.

Results and Discussion

claim_relationsAs the complexity and sophistication of phylogenetic sequencing experiments continues to increase, it is clear that a “one-analysis fits all” approach is not sufficient. While it is often useful and convenient to have common analyses coupled within the application that decodes the sequences and clusters OTUs, we posit that a separate set of flexible open-source analytical tools is also needed that can be reproduced consistently by peers, and easily applied to new datasets and data sources. It should include a large library of statistical functions, and be independent of the choice of OTU-clustering method or sequencing technology. The phyloseq package helps satisfy this need by reducing the effort necessary to analyze OTU-clustered phylogenetic sequencing data via the R language and interactive computing environment.

Reproducible Research and Sharing

limitationsconcepts↗concepts↗unhoused_relationssensescontent_tags↗content_tags↗In exploratory statistical work it is easy to produce biased results [73] through poorly chosen metrics or tests, a failure to properly control for multiple inferences, undisclosed data “pruning”, and probably many other means. Although not commonly required [74] – [76] , an important defense against biased (or poorly-supported) findings is a higher standard for reproducibility in published research [77] , in which journal articles are accompanied by sufficient data and software such that all presented analyses, tables, and figures can be reproduced exactly and with minimal effort [75] . In this context of highly-parallel phylogenetic-sequencing experiments, reproducible research can be partially facilitated by emerging standards for experimental design [78] and file format [37] . Virtual machine image and cloud-deployed “pipeline” analyses [11] , [15] , [19] can further increase accessibility of analyses by mitigating the need for expensive computing hardware while also avoiding complicated installation procedures. However, the use of publicly available “pipeline” tools does not fully meet the reproducibility standard unless accompanied with the complete code and data used in the analysis being published [75] . This is especially important when considering the many choices that are involved in decoding, OTU-clustering, and preprocessing; as well as the many varied approaches to incorporating sample covariates and performing multivariate analyses on complex data. The recent release of the HMP data and multiple articles on the results from their analyses underscore this fact. Thresholding and noise filtering were done independently by each team, but no overall robustness study was performed [79] . Changes early in the analysis pipeline could have downstream effects that are now prohibitively difficult or impossible to evaluate. Generally speaking, the preprocessing of OTU abundance data through filtering, normalizing, centering, shrinking, and other transformations is a common practice and necessary for analysis [66] , but varies widely among researchers and is often difficult to reproduce. This is particularly true when the preprocessing transformations are the result of “manual” adjustments in a spreadsheet, custom code/script that is not included in the publication, or random subsampling (“rarefying” to even sequencing effort) with no reported seed. A related example is the (often not-so) reproducible choice of tuning parameters and perturbation-based statistical validation procedures, allowing for the easy testing of alternatives and robustness of results. To a large extent this revisits many of the same issues of reproducible research [80] – [82] that have been addressed over the last decade for the analysis of microarray data [66] , and for which there are many proven tools already available in Bioconductor/R. The emphasis of preprocessing tools in phyloseq is intended to decrease the extent to which these steps constitute opaque and idiosyncratic efforts by investigators, while making the results of different studies more comparable.

method↗mechanisms↗controlsconcepts↗concepts↗concepts↗unhoused_relationsclaim_relationscontent_tagsOne of the goals of the phyloseq project is to help close the gap in reproducible research that presently exists between pipeline results and the additional analyses required by investigators. This can be achieved when phyloseq is used (possibly with other R packages) in conjunction with documentation tools such as Sweave [32] , knitr [33] , iPython [83] Notebook invoking the rmagic extension, or “ R flavored markdown” (RFM) [84] . The Sweave-format approach is part of the reproducible research standards strongly encouraged by the journal Biostatistics [81] , as well as many disciplines related to statistics and bioinformatics [77] , [85] . The recently-described RFM format and iPython Notebook can also work very well for cases where a web-browser is a satisfactory documentation delivery medium, with RFM being our preferred source format for publishing reproducible online tutorials with embedded code and figures (HTML5) [39] , [86] . We emphasize that the benefits of reproducibility are not contingent on “pretty” code [87] , and we encourage researchers in the field to make their code available even if they feel insecure about its programmatic elegance. As an illustrative example, we have made available the Sweave (.Rnw) and supporting files required to completely reproduce this article, including especially the complete source as an RFM file (.Rmd) with its associated output HTML file, both of which provide the preprocessing steps and graphics commands needed to exactly reproduce each figure (File S2). We have also published a GitHub repository dedicated to reproducible demonstrations of analyses with phyloseq [86] .

Extending phyloseq

controlsconcepts↗concepts↗concepts↗concept_edgescontent_tagsIt is important to note that the new phyloseq-class is a significant departure from the originally-proposed phyloseq-class structure [31] , which used nested multiple inheritance and a naming convention. It was a valid approach in principle, but was an overly complex approach for the goal of representing a phylogenetic sequencing experiment as a single object. The updated phyloseq-class is simple to extend for developers and easy to explain to users ( Figure 3 ). In general, the downstream analysis and plotting functions that might operate on an instance of the phyloseq-class do not need to (re)perform common validity checks because these checks are consolidated as part of the phyloseq-constructor method.

concepts↗unhoused_relationsAnalysis tools available in R but not explicitly wrapped in phyloseq are nevertheless available to users and developers via accessors and other data infrastructure tools. This leverages the fact that phyloseq data components are based on standard R data classes and easily used in other package settings in R. For example, we have included example code that illustrates the use of the bioenv function from the vegan package, starting with data represented by the phyloseq-class (See File S2 for code, and the phyloseq demo [86] ). Similarly, as an open-source package in an open language/framework (R), phyloseq can be easily included at the relevant steps in pipelines, workbenches, and GUIs now under active development (E.g. ClovR [15] , MG-RAST [19] , QIIME [11] , mcaGUI [88] ). This represents a means for investigators with limited programming literacy to still benefit from some of the tools included in, or facilitated by, phyloseq.

Conclusions

The phyloseq project is a new open-source software tool for statistical analysis of phylogenetic sequencing data within the R programming language and environment. The tools in phyloseq make it easy to read the data output of several of the most common OTU clustering pipelines, and also represents this data in a unified, integrated form amenable to many modern analysis methods. With this integrated representation of the data it is easy to use supervised methods — such as canonical correspondence analysis, discriminant correspondence analysis, sparse linear discriminant analysis, etc. — to explain clinical or environmental response variables. We hope that this will provide a gateway for users to take their analyses towards more robust nonparametric alternatives to classical least squares methods, and allow them to interact graphically with their data more easily and efficiently. By leveraging existing R infrastructure for reproducible research, the phyloseq project also enables reproducible preprocessing, analysis, and publication-quality graphics production — such that it is easy to document, share, and modify analyses of phylogenetic sequencing data. The phyloseq package is released on Bioconductor [34] and developed collaboratively on GitHub [39] .

Availability and Requirements

Project name: phyloseq

Project Stable Release: http://www.bioconductor.org/packages/release/bioc/html/phyloseq.html

Project Home Page: http://joey711.github.com/phyloseq/

Project Issue Tracker: https://github.com/joey711/phyloseq/issues

Project Demo Page: http://joey711.github.com/phyloseq-demo/

Operating System(s): Platform Independent

Programming Language(s): R

Other Requirements: R, R packages (ade4, ape, Biostrings, foreach, ggplot2, igraph0, multtest, picante, plyr, reshape, RJSONIO, scales, vegan)

License: AGPL-3

Supporting Information

Summary of comparison between phyloseq and currently available software. This PDF file contains a table summarizing a comparison of supported capabilities between phyloseq and QIIME [11] , mothur [12] , and the pair of packages OTUbase [35] and mcaGUI [88] . A “+” or “–” indicates that the capability is not directly supported, respectively. A symbol or word instead of “+” implies that the capability is supported, but with an extra caveat or detail, further defined below the table, if necessary. This is not a comprehensive summary of the capabilities of each packages, but rather the capabilities of relevance to this article. The abbreviations CA, DCA, RDA, and DPCoA stand for the ordination methods correspondence analysis, detrended correspondence analysis, redundancy analysis, and double principal coordinates analysis, respectively. Note that in some cases the capabilities deemed “+” in this table are only supported for amplicon sequencing based data, sometimes from a specific sequencing platform and with the 16S rRNA gene as target. However, the phyloseq package is implemented at a stage in the analysis process that can be more generally applied to any phylogenetic sequencing, including non-standard amplicon targets, shotgun metagenome sequencing, etc.

(PDF)

Click here for additional data file.

Source materials for reproducing this manuscript. This is a compressed .zip directory containing the main source file in Sweave .Rnw format [32] , as well as the additional files necessary to completely recreate the original manuscript submitted to PLoS ONE. For the uninitiated, Sweave is a R/LaTeX2e interleaved hybrid language format [32] that allows advanced typesetting description to accompany R code and its output (including graphics). Also included is the RFM source file that was used to create Figures 4 and 5 , and its accompanying HTML output that includes additional documentation details, links, and intermediate graphics. This latter file is “sourced” (re-run) by the Sweave commands if any of the expected output files are missing. This supporting information zip file also includes R code (at the end of the RFM/HTML files) that demonstrates how to use a phyloseq data object as an argument to other R functions. In this particular example, the bioenv function from the vegan package [92] is demonstrated.

(ZIP)

Click here for additional data file.

Every tag on this page

claim_relations 5 · claim_type 1 · concept_edges 6 · concepts 63 · content_tags 28 · contribution 1 · controls 3 · limitations 9 · mechanisms 8 · method 1 · object_of_study 1 · phenomenon 1 · research_question 1 · senses 8 · unhoused_relations 11

Relations on this page carry a quotation for the claim. Where a relation was separately evidenced — and so tested against the vocabulary for its type — the row says so; 6 of 6 relations here carry that mark. The rest are the tagger’s reading of the sentence quoted beside them.

facettagfieldconf.whose words
object_of_studythe representation, analysis, visualization and reproducibility of microbiome census data in Robject_of_studythe paper's words
research_questionhow to provide an integrated, extensible and reproducible post-clustering workflow for heterogeneous phylogenetic sequencing dataresearch_questionthe paper's words
contributionthe open-source phyloseq package, its experiment-level data class, analysis interfaces, graphics and reproducible examplescontributionthe paper's words
claim_typemethodclaim_typethe paper's words
phenomenonthe interaction between integrated data representation, project-specific microbiome analysis and reproducibilityphenomenonthe paper's words
methodsystem-or-tool-buildingmethodthe paper's words
mechanismsA single phyloseq-class instance stores heterogeneous sequencing, taxonomy, tree and sample components.mechanisms[0]0.95the tagger's words
mechanismsRemoving samples or OTUs from one slot automatically updates every relevant slot.mechanisms[1]0.95the tagger's words
mechanismsOne function selects among more than forty ecological distances and returns a standard dist object.mechanisms[2]0.95the tagger's words
mechanismsOne function selects an ordination method and consumes either abundances or a distance matrix as required.mechanisms[3]0.95the tagger's words
mechanismsPlot functions return ggplot2 objects with variables mapped to color, size and shape.mechanisms[4]0.95the tagger's words
mechanismsRadial coordinates from ordination reorder samples and optionally OTUs before tile rendering.mechanisms[5]0.95the tagger's words
mechanismsRepeated analyses on permuted data support minP control of family-wise error.mechanisms[6]0.95the tagger's words
mechanismsSweave, knitr and R-flavored markdown bind code, data, figures and explanatory text.mechanisms[7]0.95the tagger's words
limitationsProject-specific microbiome analyses are often difficult or impossible for peers to reproduce.limitations[0]0.95the tagger's words
limitationsOTU-clustering outputs commonly require porting into other software for investigation-specific analysis.limitations[1]0.95the tagger's words
limitationsPhyloseq does not decode sequences, process reads or perform OTU clustering.limitations[2]0.95the tagger's words
limitationsThe optimal ordination approach depends on the experiment and the data.limitations[3]0.95the tagger's words
limitationsThresholded network views depend critically on a carefully chosen distance cutoff.limitations[4]0.95the tagger's words
limitationsTree graphics can be prohibitively slow or too dense for high-richness data.limitations[5]0.95the tagger's words
limitationsChi-squared distances can be overly sensitive to outliers and sequencing jackpot effects.limitations[6]0.95the tagger's words
limitationsExploratory graphics and ordinations are not formal tests of a hypothesis.limitations[7]0.95the tagger's words
limitationsPublic pipeline availability alone does not meet the reproducibility standard without the exact code and data.limitations[8]0.95the tagger's words
controlsautomatic propagation of sample and OTU truncation
eliminates: inconsistent dimensions across components
controls[0]0.95the tagger's words
controlsvalidity checks consolidated in the phyloseq constructor
eliminates: duplicated downstream class-validity checks
controls[1]0.95the tagger's words
controlspublication of article source, data and figure commands
eliminates: hidden analytic steps in the paper's worked example · outcome: held
controls[2]0.95the tagger's words
conceptsphyloseq
also in: phyloseq
concepts[0]0.95the paper's words
conceptsopen-source software packageconcepts[1]0.95the paper's words
conceptsobject-oriented representationconcepts[2]0.95the paper's words
conceptsmicrobiome census dataconcepts[3]0.95the paper's words
conceptsphylogenetic sequencingconcepts[4]0.95the paper's words
conceptscontingency tableconcepts[5]0.95the paper's words
conceptstaxonomic unitsconcepts[6]0.95the paper's words
conceptsexperimental observationsconcepts[7]0.95the paper's words
conceptsamplicon sequencingconcepts[8]0.95the paper's words
conceptsshotgun
also in: shotgun
concepts[9]0.95the paper's words
conceptsoperational taxonomic unitsconcepts[10]0.95the paper's words
conceptsOTUs
also in: OTUs
concepts[11]0.95the paper's words
conceptstaxa
also in: taxa
concepts[12]0.95the paper's words
concepts16S rRNA
also in: 16S rRNA
concepts[13]0.95the paper's words
conceptsPCR amplificationconcepts[14]0.95the paper's words
conceptsOTU-clustering applicationsconcepts[15]0.95the paper's words
conceptspost-clustering stageconcepts[16]0.95the paper's words
conceptsR
also in: R
concepts[17]0.95the paper's words
conceptsBioconductor
also in: Bioconductor
concepts[18]0.95the paper's words
conceptsOTUbase
also in: OTUbase
concepts[19]0.95the paper's words
conceptsQIIME
also in: QIIME
concepts[20]0.95the paper's words
conceptsmothur
also in: mothur
concepts[21]0.95the paper's words
conceptsobject-oriented programming infrastructureconcepts[22]0.95the paper's words
conceptsecological distancesconcepts[23]0.95the paper's words
conceptsdimensional reductionconcepts[24]0.95the paper's words
conceptsliterate-programming frameworkconcepts[25]0.95the paper's words
conceptsroxygen2
also in: roxygen2
concepts[26]0.95the paper's words
conceptsphyloseq classconcepts[27]0.95the paper's words
conceptsexperiment-level data storage classconcepts[28]0.95the paper's words
conceptsotu_table
also in: otu_table
concepts[29]0.95the paper's words
conceptsbeta diversityconcepts[30]0.95the paper's words
conceptspairwise ecological distancesconcepts[31]0.95the paper's words
conceptsordination
also in: ordination
concepts[32]0.95the paper's words
conceptsdistance
also in: distance
concepts[33]0.95the paper's words
conceptsFast UniFrac
also in: Fast UniFrac
concepts[34]0.95the paper's words
conceptsdistance matrixconcepts[35]0.95the paper's words
conceptsordinate
also in: ordinate
concepts[36]0.95the paper's words
conceptscorrespondence analysisconcepts[37]0.95the paper's words
conceptsnon-metric multidimensional scalingconcepts[38]0.95the paper's words
conceptsggplot2
also in: ggplot2
concepts[39]0.95the paper's words
conceptsaesthetic attributesconcepts[40]0.95the paper's words
conceptsplot_heatmap
also in: plot_heatmap
concepts[41]0.95the paper's words
conceptshierarchical clusteringconcepts[42]0.95the paper's words
conceptsplot_network
also in: plot_network
concepts[43]0.95the paper's words
conceptsdistance thresholdconcepts[44]0.95the paper's words
conceptsplot_tree
also in: plot_tree
concepts[45]0.95the paper's words
conceptsrarefaction
also in: rarefaction
concepts[46]0.95the paper's words
conceptsloss of informationconcepts[47]0.95the paper's words
conceptsBray-Curtis distancesconcepts[48]0.95the paper's words
conceptsraw abundance countsconcepts[49]0.95the paper's words
conceptsnonparametric
also in: nonparametric
concepts[50]0.95the paper's words
conceptsFamily Wise Error Rateconcepts[51]0.95the paper's words
conceptsFWER
also in: FWER
concepts[52]0.95the paper's words
conceptsminP
also in: minP
concepts[53]0.95the paper's words
conceptsreproducible researchconcepts[54]0.95the paper's words
conceptscomplete code and dataconcepts[55]0.95the paper's words
conceptsSweave
also in: Sweave
concepts[56]0.95the paper's words
conceptsknitr
also in: knitr
concepts[57]0.95the paper's words
conceptsR flavored markdownconcepts[58]0.95the paper's words
conceptsphyloseq-constructor methodconcepts[59]0.95the paper's words
conceptsupdated phyloseq-classconcepts[60]0.95the paper's words
conceptsoriginally-proposed phyloseq-class structureconcepts[61]0.95the paper's words
conceptsaccessors
also in: accessors
concepts[62]0.95the paper's words
unhoused_relationsphyloseq → object-oriented representation
Phyloseq is dedicated to object-oriented representation and analysis of microbiome census data.
unhoused_relations[0]0.95the tagger's words
unhoused_relationsphylogenetic sequencing → contingency table
Phylogenetic sequencing data can be represented as a taxonomic-unit by sample contingency table integrated with other data.
unhoused_relations[1]0.95the tagger's words
unhoused_relationsamplicon sequencing → shotgun
Shotgun sequencing is presented after amplicon sequencing as the alternative experimental method.
unhoused_relations[2]0.95the tagger's words
unhoused_relationsbeta diversity → pairwise ecological distances
Beta diversity is commonly approached through pairwise ecological distances and ordination.
unhoused_relations[3]0.95the tagger's words
unhoused_relationsphyloseq project → heterogeneous components
The phyloseq project's object-oriented class integrates heterogeneous components of OTU-clustered sequencing data.
unhoused_relations[4]0.95the tagger's words
unhoused_relationstruncate dimensions → relevant components
Removing samples or OTUs from one component automatically propagates the change across relevant components.
unhoused_relations[5]0.95the tagger's words
unhoused_relationsphyloseq → open source analysis techniques
Phyloseq-represented data can be passed to functions from other R packages.
unhoused_relations[6]0.95the tagger's words
unhoused_relationscomplete code and data → reproducibility standard
A public pipeline meets the reproducibility standard only when its complete code and data are published.
unhoused_relations[7]0.95the tagger's words
unhoused_relationsphyloseq → reproducible research
Phyloseq used with documentation tools helps close the reproducible-research gap after pipeline output.
unhoused_relations[8]0.95the tagger's words
unhoused_relationsaccessors → Analysis tools
Accessors make phyloseq components available to analysis tools not explicitly wrapped by the package.
unhoused_relations[9]0.95the tagger's words
unhoused_relationsdistance threshold → connections between samples
The threshold determines whether two samples are connected in the displayed network.
unhoused_relations[10]0.95the tagger's words
sensesphylogenetic sequencing as a method-agnostic taxon-by-sample census integrated with auxiliary observationssenses[0]0.95the tagger's words
sensesphyloseq as both an experiment-level class and a toolbox of analysis and graphics functionssenses[1]0.95the tagger's words
sensesbeta diversity as between-sample comparison of observed OTU composition and quantitysenses[2]0.95the tagger's words
sensesecological distance as a pairwise dissimilarity input to clustering or ordinationsenses[3]0.95the tagger's words
sensesreproducibility as exact recreation of analyses, tables and figures from published data and softwaresenses[4]0.95the tagger's words
sensesrarefaction as random subsampling of over-abundant columns to the smallest sequencing effortsenses[5]0.95the tagger's words
sensesFWER as the probability of one or more false rejections among simultaneous hypothesessenses[6]0.95the tagger's words
sensesplot-network connectivity as ecological distance falling below a user-selected thresholdsenses[7]0.95the tagger's words
claim_relationsintroduces → phyloseq software package
note: The paper describes and releases the package.
claim_relations[0]0.95the tagger's words
claim_relationsunifies → microbiome census data, phylogenies, sample data, analysis and graphics
note: One experiment-level object integrates heterogeneous components.
claim_relations[1]0.95the tagger's words
claim_relationsextends → R and Bioconductor ecology-analysis ecosystem
note: The package builds on related packages and their methods.
claim_relations[2]0.95the tagger's words
claim_relationsdemonstrates → fully reproducible article analysis and figures
note: The source and output materials are made available.
claim_relations[3]0.95the tagger's words
claim_relationsargues → flexible method-independent post-clustering analysis
note: The authors state that one-analysis-fits-all is insufficient.
claim_relations[4]0.95the tagger's words
concept_edgesphyloseq —is-a→ open-source software package
the relation itself is separately evidenced · strength of the relation: 1 · note: Direct categorical statement. · the relation stated: The phyloseq project for R is a new open-source software package.
concept_edges[0]0.95the tagger's words
concept_edgesOTUs —same-as→ taxa
the relation itself is separately evidenced · strength of the relation: 1 · note: Direct naming equivalence. · the relation stated: Operational taxonomic units are sometimes referred to as taxa.
also in: OTUs · taxa
concept_edges[1]0.95the tagger's words
concept_edgesphyloseq class —is-a→ experiment-level data storage class
the relation itself is separately evidenced · strength of the relation: 1 · note: Direct class statement. · the relation stated: The phyloseq class is an experiment-level data storage class.
concept_edges[2]0.95the tagger's words
concept_edgesdistance —part-of→ Fast UniFrac
the relation itself is separately evidenced · strength of the relation: 1 · note: Direct inclusion statement. · the relation stated: The distance interface includes an R-native Fast UniFrac implementation. Audit 2026-09-28: DOUBTFUL - read against its span and kept, but Fast UniFrac is one method WITHIN the distance function; part-of runs the wrong way.
concept_edges[3]0.95the tagger's words
concept_edgesFamily Wise Error Rate —same-as→ FWER
the relation itself is separately evidenced · strength of the relation: 1 · note: Direct acronym equivalence. · the relation stated: Family Wise Error Rate is parenthetically abbreviated FWER.
concept_edges[4]0.95the tagger's words
concept_edgesupdated phyloseq-class —contrasted-with→ originally-proposed phyloseq-class structure
the relation itself is separately evidenced · strength of the relation: 0.95 · note: Direct structural contrast. · the relation stated: The updated class is described as a significant departure from the original nested-inheritance structure.
concept_edges[6]0.95the tagger's words
content_tagsPhyloseq supplies an integrated object model and a broad analysis and graphics toolbox for microbiome census data.content_tags.findings[0]0.95the tagger's words
content_tagsThe package imports common clustering formats and exposes its represented data to other R packages.content_tags.findings[1]0.95the tagger's words
content_tagsA single experiment-level object reduces mismatch errors by propagating dimension changes across components.content_tags.findings[2]0.95the tagger's words
content_tagsThe distance interface explicitly supports more than forty ecological distance methods.content_tags.findings[3]0.95the tagger's words
content_tagsThe ordinate interface supports abundance-based and distance-based ordination families.content_tags.findings[4]0.95the tagger's words
content_tagsPhyloseq plot functions return customizable ggplot2 objects.content_tags.findings[5]0.95the tagger's words
content_tagsRandom subsampling to equal depth discards information and is rarely statistically optimal.content_tags.findings[6]0.95the tagger's words
content_tagsRaw microbiome abundance counts motivate nonparametric rather than normal-theory tests.content_tags.findings[7]0.95the tagger's words
content_tagsComplete source materials were released to reproduce the paper's analysis and figures.content_tags.findings[8]0.95the tagger's words
content_tagsThe updated class replaced an overly complex nested-inheritance design with centralized validity checks.content_tags.findings[9]0.95the tagger's words
content_tagsa taxonomic-unit by sample contingency table integrated with other observationscontent_tags.definitions[0]0.95the tagger's words
content_tagssimilarity-clustered operational taxonomic units, sometimes called taxa
also in: OTUs
content_tags.definitions[1]0.95the tagger's words
content_tagsan experiment-level class integrating heterogeneous clustered-sequencing componentscontent_tags.definitions[2]0.95the tagger's words
content_tagscomparison of the type and quantity of OTUs between samplescontent_tags.definitions[3]0.95the tagger's words
content_tagsresearch whose analyses, tables and figures can be exactly recreated from accompanying data and softwarecontent_tags.definitions[5]0.95the tagger's words
content_tagsthe probability of at least one false positive among simultaneous hypotheses
also in: FWER
content_tags.definitions[6]0.95the tagger's words
content_tagsmore than 40 ecological distance methods — methods explicitly supported by the distance interfacecontent_tags.quantities[0]0.95the tagger's words
content_tagsone or two lines of code — reported effort to create annotated publication-quality graphicscontent_tags.quantities[1]0.95the tagger's words
content_tags100-fold — possible disparity between OTU-table column sumscontent_tags.quantities[2]0.95the tagger's words
content_tags200 or so OTUs — suggested upper range for an interpretable phylogenetic-tree plotcontent_tags.quantities[3]0.95the tagger's words
content_tagsmany thousands — number of resampled analyses used by bootstrap procedurescontent_tags.quantities[4]0.95the tagger's words
content_tags1 or more false positives — event whose probability defines FWERcontent_tags.quantities[5]0.95the tagger's words
content_tagsdistance methodcontent_tags.variables[0]0.95the tagger's words
content_tagsordination methodcontent_tags.variables[1]0.95the tagger's words
content_tagsdistance thresholdcontent_tags.variables[2]0.95the tagger's words
content_tagsOTU abundance
also in: OTU abundance
content_tags.variables[3]0.95the tagger's words
content_tagscolumn sums
also in: column sums
content_tags.variables[4]0.95the tagger's words
content_tagstuning parameterscontent_tags.variables[6]0.95the tagger's words

Interpretive choices

Tags that could not be placed in the text:

What was deliberately not tagged, and why, is recorded per paper by the tagger. Where a paper has no such record, this page says so rather than implying that nothing was declined.

© 2026 Shir Sivroni · ORCID 0009-0000-2597-2824