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.| relation to other work | claim_relations | how this paper stands to another: agrees, contradicts, extends, qualifies |
| claim type | claim_type | the shape of the claim: existence, mechanism, method, critique, prediction, null |
| concept edge | concept_edges | an asserted relation between two concepts, with the sentence asserting it |
| concept | concepts | an idea the paper works with, quoted where the paper uses it |
| content tag | content_tags | a finding, definition, quantity, statistic or variable named in the paper |
| contribution | contribution | what the paper claims to add |
| control | controls | an experiment run to eliminate a rival explanation |
| limitation | limitations | what the paper says its evidence cannot support |
| mechanism | mechanisms | how the reported effect is said to come about |
| method | method | how the paper produced its evidence |
| object of study | object_of_study | what the paper is about — the thing it investigates |
| phenomenon | phenomenon | the effect or regularity under study |
| research question | research_question | the question the paper sets itself |
| sense | senses | a distinct use of a term, quoted where the paper fixes it |
| unrecordable relation | unhoused_relations | a relation the paper asserts that this vocabulary cannot express, with the reason |
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.
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.
| facet | tag | field | conf. | whose words |
|---|---|---|---|---|
| object_of_study | the representation, analysis, visualization and reproducibility of microbiome census data in R | object_of_study | the paper's words | |
| research_question | how to provide an integrated, extensible and reproducible post-clustering workflow for heterogeneous phylogenetic sequencing data | research_question | the paper's words | |
| contribution | the open-source phyloseq package, its experiment-level data class, analysis interfaces, graphics and reproducible examples | contribution | the paper's words | |
| claim_type | method | claim_type | the paper's words | |
| phenomenon | the interaction between integrated data representation, project-specific microbiome analysis and reproducibility | phenomenon | the paper's words | |
| method | system-or-tool-building also in: system-or-tool-building | method | the paper's words | |
| mechanisms | A single phyloseq-class instance stores heterogeneous sequencing, taxonomy, tree and sample components. also in: integrated experiment object | mechanisms[0] | 0.95 | the tagger's words |
| mechanisms | Removing samples or OTUs from one slot automatically updates every relevant slot. also in: dimension propagation | mechanisms[1] | 0.95 | the tagger's words |
| mechanisms | One function selects among more than forty ecological distances and returns a standard dist object. also in: distance interface | mechanisms[2] | 0.95 | the tagger's words |
| mechanisms | One function selects an ordination method and consumes either abundances or a distance matrix as required. also in: ordination interface | mechanisms[3] | 0.95 | the tagger's words |
| mechanisms | Plot functions return ggplot2 objects with variables mapped to color, size and shape. also in: graphics grammar | mechanisms[4] | 0.95 | the tagger's words |
| mechanisms | Radial coordinates from ordination reorder samples and optionally OTUs before tile rendering. also in: ordination-organized heat map | mechanisms[5] | 0.95 | the tagger's words |
| mechanisms | Repeated analyses on permuted data support minP control of family-wise error. also in: permutation error control | mechanisms[6] | 0.95 | the tagger's words |
| mechanisms | Sweave, knitr and R-flavored markdown bind code, data, figures and explanatory text. also in: literate analysis | mechanisms[7] | 0.95 | the tagger's words |
| limitations | Project-specific microbiome analyses are often difficult or impossible for peers to reproduce. | limitations[0] | 0.95 | the tagger's words |
| limitations | OTU-clustering outputs commonly require porting into other software for investigation-specific analysis. | limitations[1] | 0.95 | the tagger's words |
| limitations | Phyloseq does not decode sequences, process reads or perform OTU clustering. | limitations[2] | 0.95 | the tagger's words |
| limitations | The optimal ordination approach depends on the experiment and the data. | limitations[3] | 0.95 | the tagger's words |
| limitations | Thresholded network views depend critically on a carefully chosen distance cutoff. | limitations[4] | 0.95 | the tagger's words |
| limitations | Tree graphics can be prohibitively slow or too dense for high-richness data. | limitations[5] | 0.95 | the tagger's words |
| limitations | Chi-squared distances can be overly sensitive to outliers and sequencing jackpot effects. | limitations[6] | 0.95 | the tagger's words |
| limitations | Exploratory graphics and ordinations are not formal tests of a hypothesis. | limitations[7] | 0.95 | the tagger's words |
| limitations | Public pipeline availability alone does not meet the reproducibility standard without the exact code and data. | limitations[8] | 0.95 | the tagger's words |
| controls | automatic propagation of sample and OTU truncation eliminates: inconsistent dimensions across components | controls[0] | 0.95 | the tagger's words |
| controls | validity checks consolidated in the phyloseq constructor eliminates: duplicated downstream class-validity checks | controls[1] | 0.95 | the tagger's words |
| controls | publication of article source, data and figure commands eliminates: hidden analytic steps in the paper's worked example · outcome: held | controls[2] | 0.95 | the tagger's words |
| concepts | phyloseq also in: phyloseq | concepts[0] | 0.95 | the paper's words |
| concepts | open-source software package also in: open-source software package | concepts[1] | 0.95 | the paper's words |
| concepts | object-oriented representation also in: object-oriented representation | concepts[2] | 0.95 | the paper's words |
| concepts | microbiome census data also in: microbiome census data | concepts[3] | 0.95 | the paper's words |
| concepts | phylogenetic sequencing also in: phylogenetic sequencing | concepts[4] | 0.95 | the paper's words |
| concepts | contingency table also in: contingency table | concepts[5] | 0.95 | the paper's words |
| concepts | taxonomic units also in: taxonomic units | concepts[6] | 0.95 | the paper's words |
| concepts | experimental observations also in: experimental observations | concepts[7] | 0.95 | the paper's words |
| concepts | amplicon sequencing also in: amplicon sequencing | concepts[8] | 0.95 | the paper's words |
| concepts | shotgun also in: shotgun | concepts[9] | 0.95 | the paper's words |
| concepts | operational taxonomic units also in: operational taxonomic units | concepts[10] | 0.95 | the paper's words |
| concepts | OTUs also in: OTUs | concepts[11] | 0.95 | the paper's words |
| concepts | taxa also in: taxa | concepts[12] | 0.95 | the paper's words |
| concepts | 16S rRNA also in: 16S rRNA | concepts[13] | 0.95 | the paper's words |
| concepts | PCR amplification also in: PCR amplification | concepts[14] | 0.95 | the paper's words |
| concepts | OTU-clustering applications also in: OTU-clustering applications | concepts[15] | 0.95 | the paper's words |
| concepts | post-clustering stage also in: post-clustering stage | concepts[16] | 0.95 | the paper's words |
| concepts | R also in: R | concepts[17] | 0.95 | the paper's words |
| concepts | Bioconductor also in: Bioconductor | concepts[18] | 0.95 | the paper's words |
| concepts | OTUbase also in: OTUbase | concepts[19] | 0.95 | the paper's words |
| concepts | QIIME also in: QIIME | concepts[20] | 0.95 | the paper's words |
| concepts | mothur also in: mothur | concepts[21] | 0.95 | the paper's words |
| concepts | object-oriented programming infrastructure | concepts[22] | 0.95 | the paper's words |
| concepts | ecological distances also in: ecological distances | concepts[23] | 0.95 | the paper's words |
| concepts | dimensional reduction also in: dimensional reduction | concepts[24] | 0.95 | the paper's words |
| concepts | literate-programming framework also in: literate-programming framework | concepts[25] | 0.95 | the paper's words |
| concepts | roxygen2 also in: roxygen2 | concepts[26] | 0.95 | the paper's words |
| concepts | phyloseq class also in: phyloseq class | concepts[27] | 0.95 | the paper's words |
| concepts | experiment-level data storage class also in: experiment-level data storage class | concepts[28] | 0.95 | the paper's words |
| concepts | otu_table also in: otu_table | concepts[29] | 0.95 | the paper's words |
| concepts | beta diversity also in: beta diversity | concepts[30] | 0.95 | the paper's words |
| concepts | pairwise ecological distances also in: pairwise ecological distances | concepts[31] | 0.95 | the paper's words |
| concepts | ordination also in: ordination | concepts[32] | 0.95 | the paper's words |
| concepts | distance also in: distance | concepts[33] | 0.95 | the paper's words |
| concepts | Fast UniFrac also in: Fast UniFrac | concepts[34] | 0.95 | the paper's words |
| concepts | distance matrix also in: distance matrix | concepts[35] | 0.95 | the paper's words |
| concepts | ordinate also in: ordinate | concepts[36] | 0.95 | the paper's words |
| concepts | correspondence analysis also in: correspondence analysis | concepts[37] | 0.95 | the paper's words |
| concepts | non-metric multidimensional scaling also in: non-metric multidimensional scaling | concepts[38] | 0.95 | the paper's words |
| concepts | ggplot2 also in: ggplot2 | concepts[39] | 0.95 | the paper's words |
| concepts | aesthetic attributes also in: aesthetic attributes | concepts[40] | 0.95 | the paper's words |
| concepts | plot_heatmap also in: plot_heatmap | concepts[41] | 0.95 | the paper's words |
| concepts | hierarchical clustering also in: hierarchical clustering | concepts[42] | 0.95 | the paper's words |
| concepts | plot_network also in: plot_network | concepts[43] | 0.95 | the paper's words |
| concepts | distance threshold also in: distance threshold | concepts[44] | 0.95 | the paper's words |
| concepts | plot_tree also in: plot_tree | concepts[45] | 0.95 | the paper's words |
| concepts | rarefaction also in: rarefaction | concepts[46] | 0.95 | the paper's words |
| concepts | loss of information also in: loss of information | concepts[47] | 0.95 | the paper's words |
| concepts | Bray-Curtis distances also in: Bray-Curtis distances | concepts[48] | 0.95 | the paper's words |
| concepts | raw abundance counts also in: raw abundance counts | concepts[49] | 0.95 | the paper's words |
| concepts | nonparametric also in: nonparametric | concepts[50] | 0.95 | the paper's words |
| concepts | Family Wise Error Rate also in: Family Wise Error Rate | concepts[51] | 0.95 | the paper's words |
| concepts | FWER also in: FWER | concepts[52] | 0.95 | the paper's words |
| concepts | minP also in: minP | concepts[53] | 0.95 | the paper's words |
| concepts | reproducible research also in: reproducible research | concepts[54] | 0.95 | the paper's words |
| concepts | complete code and data also in: complete code and data | concepts[55] | 0.95 | the paper's words |
| concepts | Sweave also in: Sweave | concepts[56] | 0.95 | the paper's words |
| concepts | knitr also in: knitr | concepts[57] | 0.95 | the paper's words |
| concepts | R flavored markdown also in: R flavored markdown | concepts[58] | 0.95 | the paper's words |
| concepts | phyloseq-constructor method also in: phyloseq-constructor method | concepts[59] | 0.95 | the paper's words |
| concepts | updated phyloseq-class also in: updated phyloseq-class | concepts[60] | 0.95 | the paper's words |
| concepts | originally-proposed phyloseq-class structure | concepts[61] | 0.95 | the paper's words |
| concepts | accessors also in: accessors | concepts[62] | 0.95 | the paper's words |
| unhoused_relations | phyloseq → object-oriented representation Phyloseq is dedicated to object-oriented representation and analysis of microbiome census data. | unhoused_relations[0] | 0.95 | the tagger's words |
| unhoused_relations | phylogenetic 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.95 | the tagger's words |
| unhoused_relations | amplicon sequencing → shotgun Shotgun sequencing is presented after amplicon sequencing as the alternative experimental method. | unhoused_relations[2] | 0.95 | the tagger's words |
| unhoused_relations | beta diversity → pairwise ecological distances Beta diversity is commonly approached through pairwise ecological distances and ordination. | unhoused_relations[3] | 0.95 | the tagger's words |
| unhoused_relations | phyloseq project → heterogeneous components The phyloseq project's object-oriented class integrates heterogeneous components of OTU-clustered sequencing data. | unhoused_relations[4] | 0.95 | the tagger's words |
| unhoused_relations | truncate dimensions → relevant components Removing samples or OTUs from one component automatically propagates the change across relevant components. | unhoused_relations[5] | 0.95 | the tagger's words |
| unhoused_relations | phyloseq → open source analysis techniques Phyloseq-represented data can be passed to functions from other R packages. | unhoused_relations[6] | 0.95 | the tagger's words |
| unhoused_relations | complete 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.95 | the tagger's words |
| unhoused_relations | phyloseq → reproducible research Phyloseq used with documentation tools helps close the reproducible-research gap after pipeline output. | unhoused_relations[8] | 0.95 | the tagger's words |
| unhoused_relations | accessors → Analysis tools Accessors make phyloseq components available to analysis tools not explicitly wrapped by the package. | unhoused_relations[9] | 0.95 | the tagger's words |
| unhoused_relations | distance threshold → connections between samples The threshold determines whether two samples are connected in the displayed network. | unhoused_relations[10] | 0.95 | the tagger's words |
| senses | phylogenetic sequencing as a method-agnostic taxon-by-sample census integrated with auxiliary observations | senses[0] | 0.95 | the tagger's words |
| senses | phyloseq as both an experiment-level class and a toolbox of analysis and graphics functions | senses[1] | 0.95 | the tagger's words |
| senses | beta diversity as between-sample comparison of observed OTU composition and quantity | senses[2] | 0.95 | the tagger's words |
| senses | ecological distance as a pairwise dissimilarity input to clustering or ordination | senses[3] | 0.95 | the tagger's words |
| senses | reproducibility as exact recreation of analyses, tables and figures from published data and software | senses[4] | 0.95 | the tagger's words |
| senses | rarefaction as random subsampling of over-abundant columns to the smallest sequencing effort | senses[5] | 0.95 | the tagger's words |
| senses | FWER as the probability of one or more false rejections among simultaneous hypotheses | senses[6] | 0.95 | the tagger's words |
| senses | plot-network connectivity as ecological distance falling below a user-selected threshold | senses[7] | 0.95 | the tagger's words |
| claim_relations | introduces → phyloseq software package note: The paper describes and releases the package. | claim_relations[0] | 0.95 | the tagger's words |
| claim_relations | unifies → microbiome census data, phylogenies, sample data, analysis and graphics note: One experiment-level object integrates heterogeneous components. | claim_relations[1] | 0.95 | the tagger's words |
| claim_relations | extends → R and Bioconductor ecology-analysis ecosystem note: The package builds on related packages and their methods. | claim_relations[2] | 0.95 | the tagger's words |
| claim_relations | demonstrates → fully reproducible article analysis and figures note: The source and output materials are made available. | claim_relations[3] | 0.95 | the tagger's words |
| claim_relations | argues → flexible method-independent post-clustering analysis note: The authors state that one-analysis-fits-all is insufficient. | claim_relations[4] | 0.95 | the tagger's words |
| concept_edges | phyloseq —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. also in: phyloseq · open-source software package | concept_edges[0] | 0.95 | the tagger's words |
| concept_edges | OTUs —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. | concept_edges[1] | 0.95 | the tagger's words |
| concept_edges | phyloseq 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.95 | the tagger's words |
| concept_edges | distance —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. also in: distance · Fast UniFrac | concept_edges[3] | 0.95 | the tagger's words |
| concept_edges | Family 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. also in: Family Wise Error Rate · FWER | concept_edges[4] | 0.95 | the tagger's words |
| concept_edges | updated 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.95 | the tagger's words |
| content_tags | Phyloseq supplies an integrated object model and a broad analysis and graphics toolbox for microbiome census data. | content_tags.findings[0] | 0.95 | the tagger's words |
| content_tags | The package imports common clustering formats and exposes its represented data to other R packages. | content_tags.findings[1] | 0.95 | the tagger's words |
| content_tags | A single experiment-level object reduces mismatch errors by propagating dimension changes across components. | content_tags.findings[2] | 0.95 | the tagger's words |
| content_tags | The distance interface explicitly supports more than forty ecological distance methods. | content_tags.findings[3] | 0.95 | the tagger's words |
| content_tags | The ordinate interface supports abundance-based and distance-based ordination families. | content_tags.findings[4] | 0.95 | the tagger's words |
| content_tags | Phyloseq plot functions return customizable ggplot2 objects. | content_tags.findings[5] | 0.95 | the tagger's words |
| content_tags | Random subsampling to equal depth discards information and is rarely statistically optimal. | content_tags.findings[6] | 0.95 | the tagger's words |
| content_tags | Raw microbiome abundance counts motivate nonparametric rather than normal-theory tests. | content_tags.findings[7] | 0.95 | the tagger's words |
| content_tags | Complete source materials were released to reproduce the paper's analysis and figures. | content_tags.findings[8] | 0.95 | the tagger's words |
| content_tags | The updated class replaced an overly complex nested-inheritance design with centralized validity checks. | content_tags.findings[9] | 0.95 | the tagger's words |
| content_tags | a taxonomic-unit by sample contingency table integrated with other observations also in: phylogenetic sequencing data | content_tags.definitions[0] | 0.95 | the tagger's words |
| content_tags | similarity-clustered operational taxonomic units, sometimes called taxa also in: OTUs | content_tags.definitions[1] | 0.95 | the tagger's words |
| content_tags | an experiment-level class integrating heterogeneous clustered-sequencing components also in: phyloseq-class | content_tags.definitions[2] | 0.95 | the tagger's words |
| content_tags | comparison of the type and quantity of OTUs between samples also in: beta diversity | content_tags.definitions[3] | 0.95 | the tagger's words |
| content_tags | research whose analyses, tables and figures can be exactly recreated from accompanying data and software also in: reproducible research | content_tags.definitions[5] | 0.95 | the tagger's words |
| content_tags | the probability of at least one false positive among simultaneous hypotheses also in: FWER | content_tags.definitions[6] | 0.95 | the tagger's words |
| content_tags | more than 40 ecological distance methods — methods explicitly supported by the distance interface | content_tags.quantities[0] | 0.95 | the tagger's words |
| content_tags | one or two lines of code — reported effort to create annotated publication-quality graphics | content_tags.quantities[1] | 0.95 | the tagger's words |
| content_tags | 100-fold — possible disparity between OTU-table column sums | content_tags.quantities[2] | 0.95 | the tagger's words |
| content_tags | 200 or so OTUs — suggested upper range for an interpretable phylogenetic-tree plot | content_tags.quantities[3] | 0.95 | the tagger's words |
| content_tags | many thousands — number of resampled analyses used by bootstrap procedures | content_tags.quantities[4] | 0.95 | the tagger's words |
| content_tags | 1 or more false positives — event whose probability defines FWER | content_tags.quantities[5] | 0.95 | the tagger's words |
| content_tags | distance method also in: distance method | content_tags.variables[0] | 0.95 | the tagger's words |
| content_tags | ordination method also in: ordination method | content_tags.variables[1] | 0.95 | the tagger's words |
| content_tags | distance threshold also in: distance threshold | content_tags.variables[2] | 0.95 | the tagger's words |
| content_tags | OTU abundance also in: OTU abundance | content_tags.variables[3] | 0.95 | the tagger's words |
| content_tags | column sums also in: column sums | content_tags.variables[4] | 0.95 | the tagger's words |
| content_tags | tuning parameters also in: tuning parameters | content_tags.variables[6] | 0.95 | the tagger's words |
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.