跳到主要内容
广告
浏览主题
?

点击PLOS分类法找到你所在领域的文章。

有关公共科学图书馆学科领域的更多信息,请单击在这里

  • 加载指标

phyloseq:微生物组普查数据可重复交互分析和图形的R包

摘要

背景

通过DNA测序分析微生物群落带来了许多挑战:不同类型的数据与生态学、遗传学、系统发育、多元统计、可视化和测试方法的整合。随着实验设计的广度不断扩大,通常需要针对特定项目的统计分析,而同行的研究人员通常很难(或不可能)独立地进行这些分析。用于重复执行这些分析的绝大多数必要工具已经在R及其扩展(包)中实现,但对高通量微生物组普查数据的支持有限。

结果

在这里,我们描述了一个软件项目,phyloseq,专门用于r中微生物组普查数据的面向对象表示和分析。它支持从各种常用格式导入数据,以及许多分析技术。这些包括校准、过滤、子集、聚集、多表比较、多样性分析、并行化快速UniFrac、排序方法和出版质量图形的制作;所有这些都以易于记录、共享和修改的方式进行。我们展示了如何将其他R包中的函数应用于phyloseq表示的数据,说明了大量开源分析技术的可用性。我们讨论了使用可重复研究的工具使用phyloseq,这是一种在其他领域常见的做法,但在高度并行的微生物组普查数据分析中仍然罕见。我们已经提供了所有必要的材料,以完全重现本文中包含的分析和数字,这是可再现研究的最佳实践示例。

结论

R的phyloseq项目是一个新的开源软件包,可从GitHub和Bioconductor免费获得。

简介

系统发育测序

高通量(HT) DNA测序[1]允许微生物生态学研究取得重大进展吗[2]在美国,我们对微生物种类的存在和丰度的了解在很大程度上依赖于以“不依赖培养”的方式观察它们的核酸[3].这种基于核酸测序的微生物组样本居民普查现在通常伴随着其他实验观察(例如临床、环境、代谢组学等),除了系统发育树重建和/或序列的分类分类。在这里,如果它可以有效地表示为分类单位和样本的列联表,并与前面提到的其他数据类型集成,我们将其称为“系统发育测序”数据。重要的是,这个术语-也是这里描述的软件的同名-的定义不是特定于获得系统发育相关微生物普查数据的方法,反映了软件中数据抽象的预期水平。以下是产生系统发育测序数据的常用方法的两个示例。

条形码[2]扩增子测序数十至数百个样本[4]是一种微生物组的系统发育测序方法,通常针对小亚单位核糖体RNA (16S rRNA)基因[3]也有方便的工具[5]以及大型参考数据库[6]- - - - - -[8].解码每个序列的样本源的任务由其条形码读取,然后进行相似度聚类来定义操作分类单位(OTUs,有时被称为分类单元[9][10]可以通过公开可用的包/管道执行,包括QIIME[11], mothur[12]、盘古大陆[13];以及虚拟机(VM)和基于云的解决方案,如RDP管道[7], Pyrotagger[14], CLoVR-16S[15], Genboree[16], QIIME EC2图像[17], n3phele[18], MG-RAST[19]

另一种实验方法是随机“鸟枪”测序[20][21]未扩增的宏基因组DNA[22]在这种情况下,OTU聚类和计数是基于宏基因组序列片段中一个或多个可检测的系统发育标记,使用phylOTU等工具[23].值得注意的是,后一种方法避免了PCR扩增的偏倚——以牺牲序列效率为代价[23]-这两种方法现在都被普遍用于系统发育测序(图1).

缩略图
图1所示。系统发育测序工作流程的例子。

扩增子或鸟枪系统发育测序的实验和分析工作流程图。指出了phyloseq的预期作用。

https://doi.org/10.1371/journal.pone.0061217.g001

phyloseq项目

前面提到的许多otu集群应用程序还执行额外的下游分析(文件S1)。然而,通常情况下,调查人员必须将人类无法读取的输出数据文件移植到其他软件中,以便针对调查目标进行额外的处理和统计分析。R中强大的统计、生态和图形工具[24]让它成为聚类后分析阶段的一个有吸引力的选项。而编译语言的计算效率就像[25]使它们适合于昂贵但定义明确的初始序列处理需求,随后的分析是模糊定义和项目特定的;相反,需要一组广泛的交互式计算,这通常计算成本较低,而且R非常适合[26].开源R扩展的公共存储库(“包”或“库”)包括许多专用的生态和系统发育包。例如,在CRAN生态任务视图中列出了几十个包[27],以及破坏[28], phangorn[29]激情似火,[30],现在是phyloseq[31].此外,R还包括用于记录分析的基础设施,这种方式可以方便地复制和修改分析[32][33]

尽管有所有这些高度相关的工具,但我们最近描述了缺乏令人满意的标准Bioconductor[34](通常是R),用于从最流行的otu集群应用程序导入数据文件,或在一个完整的集成类中表示这些数据[31].一个Bioconductor包,OTUbase[35],实现了其中的一些目标,但在其数据类中不支持系统发育树,也不支持从流行/最新的otu聚类输出格式导入数据[35][36](文件S1)。我们已经提出了一个新的Bioconductor包,phyloseq(从“phylo遗传sequencing”),致力于R中系统发育测序数据的面向对象表示和分析[31],并支持常见的otu集群输出格式,如QIIME[11], mothur[12]rdp管道[7], Pyrotagger[14],以及生物格式[37]

在本文中,我们将描述一个显著增强的phyloseq代码库的概念框架和工具箱,特别是包括一些高级排序和图形功能。我们进一步注意到,除了phyloseq本身直接支持的功能外,由phyloseq导入的数据也可以访问由大量免费提供的R包编码的分析。最后,我们将在系统发育测序数据的背景下讨论“可重复研究”的概念,以及如何将phyloseq和R用于比最近常见实践中发现的更开放和可重复的分析。

方法

phyloseq项目主要特征

phyloseq包提供了一个面向对象的编程基础设施,简化了系统发育测序数据分析期间所需的许多常见数据管理和预处理任务。这种简化的语法有助于减少不一致错误,并鼓励在预处理期间与数据进行交互。phyloseq包还提供了一组强大的分析和图形功能,以R和Bioconductor中可用的相关包为基础。它包括或支持一些最常用的生态学和系统发育工具,包括用于计算生态距离和执行降维(排序)的一致接口。图形功能允许用户仅用一两行代码就交互式地生成带有注释的出版物质量图形。phyloseq包以嵌入在包的文档界面和关于Bioconductor的PDF版本中的功能级和包级手册的形式包含大量文档[38],以及在phyloseq主页上扩展的可重复示例[39]以及GitHub上的开放协作开发[40]

实现

phyloseq包遵循官方“Writing R Extensions”手册中对标准R包的要求[40].它还满足了Bioconductor存储库的其他要求[34],并使用了一个基于结构化源内注释的读写编程框架,称为roxygen2[41],用于(重新)构建R文档(. rd)文件和命名空间规范。phyloseq包可以安装在任何支持R的系统上,包括Mac OS X、Windows和大多数Linux发行版。

数据可用性

R包可以包括与其他包对象使用相同的帮助系统记录的示例数据[58].加载包后,通过调用data函数,该数据在R会话中可用。除非另有说明,本手稿中提供的示例使用包含在phyloseq包中的示例数据。

数据基础架构及设计

phyloseq项目包括一个面向对象的类,它集成了otu聚类系统发育测序数据的异构组件。虽然Bioconductor提供了许多用于有效操作DNA序列的实用程序,但phyloseq目前还没有重新实现DNA序列解码、处理或otu -聚类的任何方法(图1文件S1)。相反,phyloseq提供了用于读取最常见的otu集群应用程序的输出文件的工具[7][11][12][14],并将该数据在R中表示为主数据类的实例。这个多组件的“实验级”类——命名为“phyloseq”,在这里被称为“phyloseq类”——是phyloseq项目的一个关键设计特征,后续用户可访问的函数期望对这个类的实例进行操作,作为它们的唯一或主要输入数据。这些功能在phyloseq手册中有详细的描述[7]中总结的模块化工作流程的一部分图2

缩略图
图2。使用phyloseq分析工作流程。

工作流开始于OTU聚类结果和独立测量的样本数据(Input,左上),结束于R中可用于推理和验证的各种分析程序。中间是预处理和图形的关键功能。圆角矩形和菱形分别表示函数和数据对象,在图3

https://doi.org/10.1371/journal.pone.0061217.g002

图3概述了该类的结构及其组成部分。默认情况下,每个槽都是空的(NULL),尽管缺少otu_table组件的实例是无效的。phyloseq中的工具截断一个组件的维度(即删除样本或ou),自动将更改传播到所有相关组件。一般来说,研究人员只需要操纵他们的“实验级”对象,使数据(预)处理不容易出错,并经常将分析命令简化为一个数据参数。

缩略图
图3。“phyloseq”类。

phyloseq类是一个实验级数据存储类,由phyloseq包定义,用于表示系统发育测序数据。phyloseq包中的大多数函数都期望这个类的实例作为它们的主参数。请参阅phyloseq手册[38]获取函数的完整列表。

https://doi.org/10.1371/journal.pone.0061217.g003

分析功能

作为对数据基础结构的补充,phyloseq包提供了一组函数,这些函数将phyloseq对象作为主要数据,并执行分析和/或图形任务。图2总结了phyloseq中的一般工作流程,并列出了一些主要功能/工具。

在微生物组样本之间观察到的OTUs的类型和数量(“beta多样性”)的比较通常通过计算成对生态距离来进行[42][43],并通过降维(排序)方法。phyloseq包为最常用的距离计算和排序方法提供了一致的接口。此接口也是下一小节中描述的自定义排序和热图图形功能的基础。

在phyloseq中,生态距离计算的接口是一个单独的函数distance,它将一个phyloseq对象作为其数据参数,并使用一个字符串指示距离方法,显式支持40多个生态距离方法。这包括一个R原生的、可选的Fast UniFrac并行实现[44](加权[45]和未加权的[46]).输出是一个“dist”类距离矩阵(下三角形),适用于核心R中的标准聚类分析(例如hclust),以及某些降维(排序)方法。

执行排序方法的接口也是一个名为ordinate的函数,它以一个phyloseq对象作为主要数据参数,并以一个字符串表示所需的排序方法。例如,下面将对包含的“Global Patterns”数据集执行(无约束)对应分析[47]

坐标函数目前支持对应分析(CA)[48]约束对应分析(CCA)[49],去趋势对应分析(DCA)[50],冗余分析(RDA)[51],主成分分析(PCA)[52],双原理坐标分析(DPCoA)[53],多维标度(MDS, PCoA)[54],非度量多维标度(NMDS)[55].对于CA、CCA、DCA、RDA和DPCoA,排序是基于丰度值的评估(在DPCoA的情况下,也使用了系统发生树上OTUs之间的祖宗距离),而不是生态距离。对于MDS和NMDS,坐标函数需要预先计算的距离矩阵(“dist”对象)或支持的生态距离方法的名称。例如,PCoA/MDS可以在未加权的UniFrac距离矩阵上计算[46],使用以下命令:

有许多可能的方法组合(甚至扩展到表对的时间序列),最佳方法取决于实验的目标和数据的特征[56].phyloseq包还包括一个专门的函数,用于以不同的方式显示排序结果,将在下一节中介绍。

专业的图形

phyloseq包的关键特性之一是一组为系统发育测序分析定制的图形函数,使用ggplot2包构建[57].ggplot2包是Wilkinson的实现图形语法,它提供了分析图形的面向对象的描述,强调数据的分离及其到美学属性的映射[58].在phyloseq包中,名称以“plot_”开头的函数需要一个phyloseq对象作为输入数据,并返回一个ggplot2图形对象。这些plot_函数支持可选的颜色、大小和形状美学到样本或OTU变量的映射——通常通过提供变量名或分类等级作为字符串(例如color = " SampleType ")。图例是根据数据和美学映射自动生成的(基本R图形不是这样的),这些图形的所有特性都可以在R中通过ggplot2包中的函数/选项进一步修改。

下面的列表总结了phyloseq中的关键图形生成函数,这些函数在图4以及phyloseq的在线教程[39].文件S2提供了用于创建的完整R代码图4而且5.我们还包含了一些由plot_ordination (图5).他们强调排序结果的不同方面,最佳选择在很大程度上取决于数据和研究问题的特征。所提供的代码还演示了对ggplot2图形的自定义修改,在本例中,向“OTUs-only”图(文件S2)添加了二维密度估计。

缩略图
图4。图形功能的phyloseq包。

phyloseq类是一个实验级数据存储类,由phyloseq包定义,用于表示系统发育测序数据。phyloseq包中的大多数函数都期望这个类的实例作为它们的主参数。参见phyloseq手册the Global Patterns[47]和菌群[91]数据集包含在phyloseq包中。对Global Patterns数据进行预处理,使每个样本转换为相同的总读取深度,并对20%的样本中未观察到至少3次或所有样本的变异系数≤3.0的OTUs进行修剪。对于plot_tree和plot_bar子图,只显示拟杆菌门。每个子图标题都表示产生该子图的函数。文件S2中提供了复制此图的完整细节。所有这些函数都返回一个ggplot对象,该对象可以由ggplot2包中的工具进一步定制/修改[57].在正文文本和phyloseq主页上查看每个函数的其他描述[39]

https://doi.org/10.1371/journal.pone.0061217.g004

缩略图
图5。包括在phyloseq中的Plot_ordination显示方法。

每个面板使用预处理的“全球模式”数据集的“拟杆菌门”子集,该数据集也用于图4.坐标由无约束对应分析得到[62].不同的面板使用plot_ordination函数的type参数说明排序结果的不同显示。(左上)仅显示样本的示例,“SampleType”映射到颜色美学,填充多边形层强调样本类型同时出现的plot区域。(左上插入)与每个轴相关的特征值的“scree”图,它表示每个轴所代表的总变异性的比例。(右上)样本和OTUs排序结果重叠的双线图表示。OTUs团块在不同的样本类型中同时出现,与分类门的相关性也很明显。(中)一个OTUs-only的地块,按类别划分为多面(分为面板),二维密度估计覆盖在蓝色中。这一观点清楚地表明,棘球菌和黄杆菌类与粪便样本之间缺乏关联,粪便样本似乎富集在拟杆菌属的一个子集中(相对于该拟杆菌属数据集中的其他OTUs)。同时,拟杆菌亚群似乎在多个样本类型中富集。(下)此图形的“分割”类型,其中创建了仅样本和仅otus的图,并使用一个图例和共享的垂直轴并排显示。 Both the “biplot” and “split” options allow dual projections of both OTU- and sample-space.

https://doi.org/10.1371/journal.pone.0061217.g005

  1. plot_ordination。这是绘制排序结果的主要功能。它目前支持排序结果的四种不同表示:仅样本、仅otus、“双线图”(组合)表示和“分割”。中提供了这些不同选项的演示图5.从这些示例中可以看出,“双线图”和“分割”选项支持OTU空间和样本空间的双重投影。附加参数可以轻松地将各自的样本变量或分类等级映射到颜色、大小或形状美观。
  2. plot_heatmap。这是类似于NeatMap包的排序组织热图的特殊实现[59].简单地说,丰度矩阵表示为彩色瓦片的网格,瓦片的颜色映射到(通常是转换后的)丰度值。在这种表示中,otu和样本索引的顺序对于区分任何模式都是至关重要的。传统上,这种组织使用分层聚类方法;但是,正如拉贾拉姆和乌诺最近指出的那样[59],当任意地将深度分支元素放在彼此旁边时,这可能会错误地表示数据。相反,样本(以及可选的OTUs)根据它们在排序的前两个轴上的径向坐标角重新排序。对于plot_heatmap函数,可以使用距离和坐标函数支持的任何距离/排序,默认为非度量多维缩放。可以选择任何任意的颜色比例,以及任意选择的数值转换,以缩放颜色阴影到丰度的映射。
  3. plot_network。这个函数绘制了一个金图类网络[60]表示样本或OTUs之间的二进制关系。使用make_network函数,以phyloseq数据作为输入,并计算出所需的生态距离和阈值。与排序不同,排序中大多数数据结构是由两个或多个轴上的相对位置总结的,而数据是由用直线绘制的样本(或otu)之间的连接总结的。如果两个样本之间的距离小于用户定义的阈值,则认为它们是“连通的”。点的相对位置为网络属性的可视化显示而优化,但在其他方面是任意的。距离函数支持的任何生态距离都可以选择,这可以是样本或OTUs之间主要聚类的有力表示,前提是仔细选择了距离阈值。
  4. plot_tree。该功能可以方便地对系统发育树进行图形化绘制/研究,并覆盖样本数据。在某些情况下,带注释的树可以是潜在进化结构的有力表示。plot_tree函数可选地在树的顶端旁边放置连续的点,表示在其中观察每个OTU的样本。这些点可以将它们的颜色、形状和大小美学映射到样本变量,揭示进化树特定区域上环境变量的对应关系。支持标准的ggplot2自定义,据我们所知,这是目前CRAN/Bioconductor存储库中唯一可用的基于ggplot2的系统发育树功能。对于丰富度高的样品的系统发育测序,该函数中的一些选项呈现速度极慢或密度过大而无法解释,这是使用树总结系统发育测序数据的一个缺点。一种建议是对数据进行聚集或子集化,以便在给定的图上不超过200个otu(树提示),有时不太依赖于映射到树的附加注释的复杂性。在许多现代数据集中,200个otu(或更少)将不足以总结整个数据集,在这种情况下,建议使用一种或多种其他绘图方法。
  5. plot_bar。虽然有时非常复杂,但一个组织良好的条形图可以是一种有效的图形方法,用于直接定量比较丰度值,我们注意到统计学家通常不鼓励使用饼图[61].plot_bar函数将一个phyloseq数据集和一组任意表达式作为输入,用于根据分类等级和样本变量对数据进行分组。返回的图形将每个丰度值表示为矩形块的高度,矩形块由一条细黑线勾画出来,并用用户指定的样本或分类变量的对应颜色填充,默认为灰色。每个OTU丰度矩形对应于相同的水平位置(通常是样本或样本组)按丰度顺序堆叠,这样堆叠条的总高度也可以定量地提供信息。
  6. plot_richness。这个函数在phyloseq数据对象中创建每个样本的丰富度估计值图,允许根据额外的样本变量进行水平分组和着色。样本之间的丰富度差异(alpha多样性)通常是系统发育测序数据提出的第一个问题之一。

规范化和标准化

在多元分析(如PCA)中,通过标准化每一列来校正列间方差的较大差异;即每一列除以它的标准差。因此,在多元分析中,每一列的权重都是相同的。对于OTU丰度表,这样的过程是不合适的,因为列和中的差异可能是100倍。方法基于卡方距离而不是方差,通过比较加权列轮廓来处理这一问题[62],以列内每个OTU的相对丰度计算,并保留总列总和作为权重因子。然而,卡方距离是平方和,可能对异常值和测序“头奖”效应(如焦磷酸测序数据中发生的那些)过于敏感[63].布雷-柯蒂斯距离是一种有用的替代方法,因为它是基于剖面之间的距离,只要实际列和的差异也被考虑在最终的研究中。解决列和之间差异问题的另一种方法是对过多的列进行子抽样,使其与较小的列数量相同。然而,这会导致信息的丢失,这在统计上下文中很少是最优的方法。这种子抽样程序的灵感来自于桑德斯首先发明的覆盖率研究中的稀疏性的流行思想[64],但尚未被证明对所有微生物群落结构都有益。基因表达微阵列分析和微生物丰度分析之间的相似性在[65],该研究提出了几种基于表达的增强丰度测量的策略。主要观点是,在序列深度存在噪声和高变异性时,排序和阈值是重要的。在基因表达分析中,过滤OTUs是有益的,特别是在后面的多次测试调整。phyloseq包实现了与鲁棒多阵列平均(rma)相同的简单过滤和秩变换。[66].我们提供更多的细节(McMurdie和Holmes,[67]).

验证性分析

虽然对于探索和总结微生物组数据很有用,但这里讨论的许多图形和排序方法并不是对任何特定假设的正式检验。微生物组研究中最常见的测试框架是来自不同类别的样本的比较(例如健康和肥胖;控制和处理;不同的环境)。标准检验统计量包括t检验、配对置换t检验和基于F或伪F统计量的方差分析类型检验。然而,微生物组数据有两个特点。首先,原始丰度计数从来都不是正态分布的,所以首选的方法是非参数的。其次,对于otu之间的关系以及在样本上测量的变量,有连续的可用信息,因此测试有时比双样本测试更复杂。超几何检验,也称为Fisher精确检验,用于当我们对每个不同的OTUs有一个测试统计量时。我们的目标是确认这些重要的otu的某些性质与通常被称为“宇宙”的otu的一般人口相比是过度代表的。 For instance in Holmes et al[65]和纳尔逊等人[68]与健康对照组相比,该超几何测试显示IBS大鼠中有几个门显着过度丰富。

许多非参数测试协议中的一个组织原则是,多次重复分析使用户能够控制多次测试,或评估估计器的质量或优化参数的最优值。现代验证性分析目前依赖于这些在各种数据扰动方案下的重复分析,其中重采样、排列和蒙特卡罗模拟是最常见的。例如,bootstrap使用成千上万对重采样数据的分析来解决诸如统计稳定性或偏差估计等问题[69],甚至可以提供置信区域[69]对于非标准参数,如系统发育树[70].对排列数据的重复分析可以控制在同时进行的假设组中遇到1个或多个假阳性(错误拒绝的空值)的概率,也称为家庭明智错误率(FWER)。例如,Westfall和Young基于排列的方法minP程序控制FWER[71]并且在multtest包中实现[72].phyloseq包通过一个称为mt的包装器函数与multtest中的minP接口。在下面的示例代码中,我们使用mt包装器来控制FWER,同时测试每个OTU是否与样本的“Enterotypes”分类相关。请注意,我们首先删除了原作者没有指定肠型的样本(表1).

结果与讨论

随着系统发育测序实验的复杂性和复杂性不断增加,很明显,“一种分析适合所有人”的方法是不够的。虽然在应用程序中耦合通用分析来解码序列和otu集群通常是有用和方便的,但我们认为还需要一套单独的灵活的开源分析工具,这些工具可以被对等体一致地再现,并且容易应用于新的数据集和数据源。它应该包括一个大型的统计函数库,并且独立于otu -聚类方法或测序技术的选择。该phyloseq包通过减少通过R语言和交互式计算环境分析otu聚类系统发育测序数据所需的工作来帮助满足这一需求。

可复制的研究和共享

在探索性统计工作中,很容易产生有偏差的结果[73]通过选择糟糕的指标或测试,未能正确控制多重推论,未公开的数据“修剪”,可能还有许多其他方法。虽然通常不需要[74]- - - - - -[76]在美国,防止有偏见(或支持不足)的发现的一个重要防御措施是对已发表研究的可重复性提出更高的标准[77]在这种方法中,期刊文章都配有足够的数据和软件,这样所有提出的分析、表格和数字都可以精确地复制出来,而且工作量很小[75].在这种高度并行的系统发育测序实验的背景下,可重复的研究可以通过新兴的实验设计标准部分地促进[78]以及文件格式[37].虚拟机映像和云部署的“管道”分析[11][15][19]可以通过减少对昂贵计算硬件的需求,同时避免复杂的安装程序,进一步增加分析的可访问性。然而,使用公开可用的“管道”工具并不能完全满足再现性标准,除非在发表的分析中使用完整的代码和数据[75].在考虑解码、otu聚类和预处理中涉及的许多选择时,这一点尤其重要;以及许多不同的方法,纳入样本协变量和执行复杂数据的多元分析。最近发布的HMP数据和多篇关于他们分析结果的文章强调了这一事实。阈值和噪声滤波由每个团队独立完成,但没有进行整体的稳健性研究[79].分析管道早期的更改可能会产生下游影响,现在很难或不可能评估这些影响。一般来说,通过滤波、归一化、定心、收缩等变换对OTU丰度数据进行预处理是一种常见的做法,也是分析所必需的[66],但在研究人员之间差异很大,通常很难重现。当预处理转换是电子表格中的“手动”调整、未包含在出版物中的自定义代码/脚本或没有报告种子的随机子抽样(“细化”到甚至排序工作)的结果时,尤其如此。一个相关的例子是(通常不是这样)可重复选择的调优参数和基于扰动的统计验证程序,允许轻松测试备选方案和结果的稳健性。在很大程度上,这重新审视了许多可重复研究的相同问题[80]- - - - - -[82]在过去的十年里,微阵列数据的分析已经解决了这些问题[66]在Bioconductor/R中已经有许多经过验证的工具。在phyloseq中强调预处理工具的目的是减少这些步骤构成研究者不透明和特殊努力的程度,同时使不同研究的结果更具可比性。

phyloseq项目的目标之一是帮助缩小目前存在于管道结果和研究人员所需的额外分析之间的可重复性研究的差距。当将phyloseq(可能与其他R包一起使用)与文档工具(如Sweave)一起使用时,可以实现这一点[32], knitr[33], iPython[83]Notebook调用rmagic扩展,或“R风味markdown”(RFM)[84].sweave格式方法是该杂志强烈鼓励的可重复研究标准的一部分生物统计学[81],以及许多与统计学和生物信息学相关的学科[77][85].最近描述的RFM格式和iPython Notebook也可以很好地用于web浏览器是令人满意的文档传递媒介的情况,RFM是我们发布带有嵌入式代码和图形的可复制在线教程的首选源格式(HTML5)。[39][86].我们强调,可再现性的好处并不取决于“漂亮”的代码[87],我们鼓励该领域的研究人员提供他们的代码,即使他们对其编程的优雅性感到不安全。作为一个示例,我们提供了完全再现本文所需的Sweave (. rnw)和支持文件,特别是完整的RFM文件(. rmd)及其相关输出HTML文件,这两个文件都提供了精确再现每个图形所需的预处理步骤和图形命令(file S2)。我们还发布了一个GitHub存储库,专门用于使用phyloseq进行分析的可重复演示[86]

延长phyloseq

值得注意的是,新的类系序列与最初提出的类系序列结构有很大的不同[31],它使用了嵌套的多重继承和命名约定。这在原则上是一种有效的方法,但对于将系统发育测序实验表示为单一对象的目标来说,这是一种过于复杂的方法。更新后的phyloseq类很容易为开发人员扩展,也很容易向用户解释(图3).一般来说,下游分析和绘图函数可能操作phyloseq类的实例,不需要(重新)执行公共有效性检查,因为这些检查被合并为phyloseq构造函数方法的一部分。

R中可用但没有显式包装在phyloseq中的分析工具,用户和开发人员仍然可以通过访问器和其他数据基础设施工具使用。这利用了这样一个事实,即phyloseq数据组件基于标准R数据类,并且很容易在R中的其他包设置中使用。例如,我们包含了示例代码,演示如何使用vegan包中的bioenv函数,从由phyloseq类表示的数据开始(有关代码,请参阅文件S2和phyloseq演示)[86]).类似地,作为开放语言/框架(R)中的开源包,phyloseq可以轻松地包含在正在积极开发的管道、工作台和gui的相关步骤中(例如ClovR)[15], MG-RAST[19], QIIME[11], mcaGUI[88]).对于编程知识有限的研究人员来说,这是一种方法,他们仍然可以受益于phyloseq中包含的或由phyloseq提供便利的一些工具。

结论

phyloseq项目是一个新的开源软件工具,用于在R编程语言和环境中对系统发育测序数据进行统计分析。phyloseq中的工具可以很容易地读取几个最常见的OTU聚类管道的数据输出,并且还以统一的、集成的形式表示这些数据,这种形式适用于许多现代分析方法。有了这种数据的集成表示,就很容易使用监督方法——如规范对应分析、判别对应分析、稀疏线性判别分析等——来解释临床或环境反应变量。我们希望这将为用户提供一个门户,使他们的分析朝着更健壮的非参数替代经典最小二乘方法,并允许他们更容易和有效地与他们的数据进行图形化交互。通过利用现有的R基础设施进行可重复的研究,phyloseq项目还实现了可重复的预处理、分析和出版质量的图形制作——这样就很容易记录、共享和修改系统发育测序数据的分析。phyloseq软件包在Bioconductor上发布[34]并在GitHub上合作开发[39]

可用性和需求

项目名称:phyloseq

项目稳定发布:http://www.bioconductor.org/packages/release/bioc/html/phyloseq.html

项目首页:http://joey711.github.com/phyloseq/

项目问题跟踪:https://github.com/joey711/phyloseq/issues

项目演示页面:http://joey711.github.com/phyloseq-demo/

操作系统:平台无关的

编程语言:R

其他要求:R, R包(ade4,猿猴,Biostrings, foreach, ggplot2, igraph0, multtest, picante, plyr,重塑,RJSONIO,鳞片,素食)

许可:AGPL-3

支持信息

文件S1。

phyloseq与当前可用软件之间的比较总结。此PDF文件包含一个表,总结了phyloseq和QIIME之间支持的功能的比较[11], mothur[12],以及OTUbase的对包[35]和mcaGUI[88].“+”或“-”分别表示不直接支持该功能。用符号或单词代替“+”表示支持该功能,但有额外的警告或细节,如有必要,将在表下面进一步定义。这不是对每个包的功能的全面总结,而是与本文相关的功能。缩写CA、DCA、RDA和DPCoA分别代表排序方法对应分析、去趋势对应分析、冗余分析和双主坐标分析。请注意,在某些情况下,本表中被视为“+”的能力仅支持基于扩增子测序的数据,有时来自特定的测序平台,并以16S rRNA基因为目标。然而,phyloseq包在分析过程中的一个阶段可以更广泛地应用于任何系统发育测序,包括非标准扩增子靶标、鸟枪宏基因组测序等。

https://doi.org/10.1371/journal.pone.0061217.s001

(PDF)

文件S2。

复制本手稿的原始材料。这是一个压缩的.zip目录,包含Sweave .Rnw格式的主源文件[32],以及完全重现提交给PLoS ONE的原始手稿所需的其他文件。对于外行来说,Sweave是一种R/LaTeX2e交错混合语言格式[32]允许高级排版描述伴随R代码及其输出(包括图形)。还包括用于创建的RFM源文件图4而且5,及其附带的HTML输出,其中包括额外的文档细节、链接和中间图形。如果缺少任何预期的输出文件,则由Sweave命令“获取”(重新运行)后一个文件。这个支持信息zip文件还包括R代码(在RFM/HTML文件的末尾),演示如何使用phyloseq数据对象作为其他R函数的参数。在这个特殊的例子中,来自素食包装的bioenv函数[92]是证明。

https://doi.org/10.1371/journal.pone.0061217.s002

(邮政编码)

致谢

我们要感谢Bioconductor的Martin Morgan和Valerie Obenchain就phyloseq的架构和组织提出的有用建议。我们还要感谢phyloseq所依赖的开源包的开发人员,特别是Rob Knight和他的QIIME实验室[11]哈德利·维克汉姆的谋杀案[57],重塑[89],和plyr[90]包,以及Bioconductor和R团队[24][34].还要感谢RStudio和GitHub提供的非常有用和免费的开发应用程序。Julia fuyama提供了DPCoA包装器的原型代码。Gregory Jordan提供了几个核心函数,这些函数使基于ggplot2的系统发生树图成为可能,并从他的“ggphylo”存储库中借来了这些函数。Scott Chamberlain在他的“gggraph”存储库中为基于ggplot2的网络图提供了有用的示例代码。Julia fuyama, Sam Pimentel, Kris Sankaran和Dustin Janatpour提供了关于phyloseq包的早期反馈。Les Dethlefsen, Diana Proctor和David Relman实验室的其他成员提供了持续的反馈和示例数据。Alfred Spormann, Tyrrell Nelson和Tim Meyer也提供了早期版本的说明性数据集。我们也感谢stackoverflow.com上的社区在开发phyloseq期间提供有用的建议。

作者的贡献

设计并编写的软件描述:PJM。实验构思设计:PJM SH,实验执行:PJM SH,数据分析:PJM SH,贡献试剂/材料/分析工具:PJM SH,论文撰写:PJM SH。

参考文献

  1. 1.Metzker ML(2010)测序技术-下一代。自然评论遗传学11:31-46。
  2. 2.Hamady M, Walker JJ, Harris JK, Gold NJ, Knight R(2008)用于焦磷酸测序的纠错条形码引物。自然方法5:235-237。
  3. 3.Pace NR(1997)微生物多样性和生物圈的分子观点。科学276:734-740。
  4. 4.刘志,DeSantis TZ, Andersen GL, Knight R(2008)高度并行焦磷酸测序器产生的16S rRNA序列的精确分类分配。核酸研究36:e120。
  5. 5.DeSantis TZ, Hugenholtz P, Keller K, Brodie EL, Larsen N等。(2006)NAST: 16S rRNA基因比较分析的多序列比对服务器。核酸研究34:W394-9。
  6. 6.DeSantis TZ, Hugenholtz P, Larsen N, Rojas M, Brodie EL等(2006)Greengenes,嵌合体检查的16S rRNA基因数据库和与ARB兼容的工作平台。环境微生物学与应用,28(4):349 - 349。
  7. 7.王强,蔡波,王强。(2009)核糖体数据库项目:改进的rRNA比对和新的分析工具。核酸研究37:D141-5。
  8. 8.Pruesse E, Quast C, Knittel K, Fuchs BM, Ludwig W,等(2007)SILVA:与ARB兼容的质量检查和校准核糖体RNA序列数据的综合在线资源。核酸研究35:7188-7196。
  9. 9.Li W, Godzik A (2006) CD-HIT:一种用于聚类和比较大组蛋白质或核苷酸序列的快速程序。生物信息学22:1658-1659。
  10. 10.黄艳,牛斌,高艳,付玲,李伟(2010)CD-HIT套件:一种用于生物序列聚类和比较的web服务器。生物信息学26:680-682。
  11. 11.Caporaso J, Kuczynski J, Stombaugh J, Bittinger K, Bushman F,等。(2010)QIIME允许高通量群落测序数据分析。自然方法7:335-336。
  12. 12.Schloss PD, Westcott SL, Ryabin T, Hall JR, Hartmann M等(2009)介绍母亲:用于描述和比较微生物群落的开源、平台独立、社区支持的软件。应用环境微生物学75:7537-7541。
  13. 13.Giongo A, Crabb DB, Davis-Richardson AG, Chauliac D, Mobberley JM,等(2010)PANGEA:下一代扩增子分析的管道。ISME杂志4:852-861。
  14. 14.Kunin V (2010) PyroTagger:一种用于rRNA扩增子热裂解序列数据分析的快速、准确的管道。开放期刊
  15. 15.Angiuoli SV, Matalka M, Gussman A, Galens K, Vangala M,等人(2011)CloVR:使用云计算从桌面进行自动化和便携式序列分析的虚拟机。BMC生物信息学12:356。
  16. 16.Genboree微生物组工具集和16S rRNA微生物序列分析(2011)biotconf.org。
  17. 17.QIIME EC2图像文档。可用:http://qiime.org/svn_documentation/tutorials/working_with_aws.html.访问2013年3月22日。
  18. 18.科罗拉多大学博尔德骑士实验室。云中的N3phele生物信息学。可用:http://www.n3phele.com/.访问2013年3月22日。
  19. 19.Meyer F, Paarmann D, D’souza M, Olson R, Glass EM等(2008)宏基因组RAST服务器——用于宏基因组自动系统发育和功能分析的公共资源。BMC生物信息学9:386。
  20. 20.Venter JC, Adams MD, Sutton GG, Kerlavage AR, Smith HO等(1998)人类基因组测序。科学280:1540-1542。
  21. 21.傅瑞敏,李志强,李志强,等(1995)猪流感嗜血杆菌全基因组序列的随机测序与组装。中国生物医学工程学报(自然科学版),29(4):366 - 366。
  22. 22.文特尔·JC, Remington K, Heidelberg JF, Halpern AL, Rusch D,等(2004)马尾藻海环境基因组测序。科学304:66-74。
  23. 23.Sharpton TJ, Riesenfeld SJ, Kembel SW, Ladau J, O'Dwyer JP,等。(2011)基于宏基因组数据的微生物群落多样性高通量分析方法。PLoS计算生物学7:e1001061。
  24. 24.R开发核心团队(2011)R:统计计算的语言和环境。R统计计算基金会,维也纳,奥地利。ISBN 3-900051-07-0。
  25. 25.Stroustrup B (2000) c++编程语言。ISBN 0201700735。Addison-Wesley专业版,第三版。
  26. 26.钱伯斯J(2008)数据分析软件:R.施普林格Verlag编程。
  27. 27.辛普森GL. CRAN任务视图:生态和环境数据分析。可用:http://cran.r-project.org/web/views/Environmetrics.html.访问2013年3月22日。
  28. 28.Chakerian J, Holmes S(2010)破坏:树木之间的距离。
  29. 29.Schliep KP (2011) phangorn:系统发育分析R.生物信息学27:592-593。
  30. 30.柯文,张晓明,张晓明,等。(2010)生态系统发育与生态系统发育的R工具研究。生物信息学26:1463-1464。
  31. 31.McMurdie PJ, Holmes S(2012)系统序列:高通量系统发育序列数据处理和分析的生物导体包。太平洋生物计算研讨会17:235-246。
  32. 32.Hardle W, Ronz B,编辑(2002)Sweave。使用读写数据分析动态生成统计报告。计算机统计2002,计算统计论文集。
  33. 33.谢颖(2012):编织器:R. R包0.8版本中用于动态报告生成的通用包
  34. 34.Gentleman RC, Carey VJ, Bates DM, Bolstad B, Dettling M,等(2004)生物导体:计算生物学和生物信息学的开放软件开发。基因组生物学5:R80。
  35. 35.Beck D, settle M, Foster JA (2011) OTUbase:用于操作分类单元数据的R基础设施包。生物信息学
  36. 36.OTUbase Bioconductor发布页面。(2012):http://www.bioconductor.org/packages/release/bioc/html/OTUbase.html.访问2013年3月22日。
  37. 37.McDonald D, Clemente JC, Kuczynski J(2012)生物观察矩阵(BIOM)格式或:我是如何学会停止担忧并爱上某物的。Giga科学
  38. 38.McMurdie PJ, Holmes S. phyloseq包装手册。可用:http://bioconductor.org/packages/devel/bioc/manuals/phyloseq/man/phyloseq.pdf.访问2013年3月22日。
  39. 39.phyloseq主页。可用:joey711.github.com/phyloseq/。访问2013年3月22日。
  40. 40.R开发核心团队(2012)编写R扩展。综合档案网络(CRAN)。
  41. 41.Wickham H, Danenberg P, Eugster M. roxygen2: R. R包版本2.2.2的源代码文档。可用:http://cran.r-project.org/web/packages/roxygen2/index.html.访问2013年3月22日。
  42. 42.费思D,闵钦P(1987)组成差异作为生态距离的稳健度量。植物学报69:57-68。
  43. 43.Anderson MJ, Ellingsen KE, McArdle BH(2006)多元离散度作为beta多样性的测量。生态学杂志9:683-693。
  44. 44.Hamady M, Lozupone C, Knight R (2009) Fast unifrac:促进微生物群落的高通量系统发育分析,包括焦磷酸测序和系统发育芯片数据分析。ISME杂志
  45. 45.Lozupone CA, Hamady M, Kelley ST, Knight R(2007)定量和定性beta多样性测量导致对微生物群落结构因素的不同见解。应用环境微生物学73:1576-1585。
  46. 46.Lozupone C, Knight R (2005) UniFrac:一种比较微生物群落的系统发育新方法。应用环境微生物学71:8228-8235。
  47. 47.Caporaso JG, Lauber CL, Walters WA, Berg-Lyons D, Lozupone CA等。(2011)每个样本数百万序列深度下16S rRNA多样性的全球模式。美国国家科学院学报108:4516-4522。
  48. 48.Greenacre MJ(1984)对应分析理论与应用。伦敦:学术出版社。
  49. 49.规范对应分析:多元直接梯度分析的一种新的特征向量技术。生态学67:1167。
  50. 50.Hill M, Gauch H(1980)去趋势对应分析,一种改进的排序技术。植物42:47 - 58。
  51. 51.Wollenberg AL(1977)冗余分析是典型相关分析的替代方法。心理测量学42:207-219。
  52. 52.霍特林H(1933)分析一个复杂的统计变量的主成分。教育心理学报24:417-441。
  53. 53.潘文华,杜福尔,谢绍尔(2004)从物种间差异到群落间差异:双主坐标分析。理论生物学杂志228:523-537。
  54. 54.Gower JC(1966)多元分析中隐根和向量方法的一些距离性质。Biometrika 53: 325-338。
  55. 55.林明清(1987)生态排序技术的相对稳健性评价。植物学报69:89-107。
  56. 56.硫oulouse J(2011)成对生态表序列的同时分析:几种方法的比较。应用统计年鉴5:2300-2325。
  57. 57.Wickham H (2009) ggplot2:用于数据分析的优雅图形。施普林格纽约。
  58. 58.Wilkinson L, Wills G(2005)图形语法。统计与计算。施普林格,第二版。
  59. 59.Rajaram S, Oono Y (2010) neatmap -非聚类热图替代方案,R. BMC生物信息学11:45。
  60. 60.Csardi G, Nepusz T(2006)复杂网络研究的igraph软件包。《复杂系统学报》1695年。
  61. 61.Tufte ER(2001)定量信息的可视化显示,图形出版社,柴郡,康涅狄格州,第9章,数据图形设计中的美学和技术。第2版,第178页。
  62. 62.Greenacre M(2007)实践中的对应分析。查普曼&霍尔公司。
  63. 63.Pinto AJ, Raskin L (2012) PCR偏差扭曲焦磷酸测序数据集的细菌和古细菌群落结构。PLoS ONE 7: e43093。
  64. 64.桑德斯HL(1968)海洋底栖生物多样性的比较研究。美国博物学家102:243-282。
  65. 65.李文杰,李志强,李志强,等。(2011)基于R包的微生物群落统计分析。太平洋生物计算研讨会142-153。
  66. 66.Allison DB, Cui X, Page GP, Sabripour M(2006)微阵列数据分析:从混乱到整合和共识。Nat Rev Genet 7:55 - 65。
  67. 67.Holmes S, McMurdie PJ(2012)微生物组的统计分析挑战。出现在PNAS:微生物群落的社会生物学论坛微生物威胁
  68. 68.Nelson T, Pasricha P, Holmes S, Spormann A(2010)与肠易激综合征实验模型相关的管腔和粘膜微生物群落的变化。胃肠病学
  69. 69.Efron B, Tibshirani R (1993) bootstrap导论,第57卷。查普曼&霍尔/CRC。
  70. 70.Holmes S(2003)自举系统发生树:理论与方法。统计学241-255。
  71. 71.Westfall PH, Young SS(1993)基于重采样的多重测试。p值调整的例子和方法。Wiley-Interscience
  72. 72.Pollard KS, Gilbert HN, Ge Y, Taylor S, Dudoit S(2010)多重测试:基于重采样的多重假设检验。R包2.4.0版本
  73. 73.Ioannidis JPA(2005)为什么大多数发表的研究结果都是错误的。PLoS medicine 2: e124。
  74. 74.Merali Z(2010)计算科学:错误,为什么科学编程不能计算。自然467:775-777。
  75. 75.彭德仁(2011)计算科学中的可重复性研究。科学334:1226-1227。
  76. 76.因斯DC,哈顿L,格雷厄姆-卡明J(2012)开放计算机程序的情况。自然482:485-488。
  77. 77.Carey VJ, Stodden V(2010)癌症生物信息学的可重复研究概念和工具。见:Ochs MF, Casagrande JT, Davuluri RV,编辑,癌症研究生物医学信息学,波士顿,马萨诸塞州:施普林格美国。149 - 175页。
  78. 78.李志强,李志强,李志强,等。(2012)基于多重实验设计的度量经济学研究。自然生物技术30:513-520。
  79. 79.人类微生物组项目联盟(2012年)健康人类微生物组的结构、功能和多样性。自然486:207-214。
  80. 80.多诺霍DL(2010)邀请可重复计算研究。生物统计学(牛津,英国)11:385-388。
  81. 81.彭东瑞(2009)可重复性研究与生物统计学。生物统计学(牛津,英国)10:405-408。
  82. 82.mr . R, Temple Lang D(2004)统计分析和可重复性研究。生物导体项目工作文件
  83. 83.Pérez F,格兰杰BE (2007) IPython:一个交互式科学计算系统。计算科学与工程9:21 - 29。
  84. 84.Allaire J, Horner J, Marti V, Porte N markdown包:R. R包版本0.5.4的markdown渲染。可用:http://CRAN.R-project.org/package=markdown.访问2013年3月22日。
  85. 85.绅士R(2005)可复制研究:生物信息学案例研究。统计学在遗传学和分子生物学中的应用4:文章2。
  86. 86.phyloseq演示存储库。可用:https://github.com/joey711/phyloseq-demo.访问2013年3月22日。
  87. 87.巴恩斯N(2010)发布你的计算机代码:这就足够了。自然467:753。
  88. 88.Copeland WK, Krishnan V, Beck D, Settles M, Foster JA,等。(2012)mcaGUI:微生物群落分析r图形用户界面(GUI)。生物信息学(牛津,英国)28:2198-2199。
  89. 89.Wickham H(2007)用重塑包重塑数据。统计软件杂志21:1-20。
  90. 90.维克汉姆H(2011)数据分析的分裂应用组合策略。统计软件杂志40:1-29。
  91. 91.张晓东,李志强,李志强,等。(2011)人体肠道微生物群的肠型研究。自然473:174-180。
  92. 92.Oksanen J, Blanchet FG, Kindt R, Legendre P, O'Hara RB,等(2011)素食主义者:社区生态包。R包版本为1.17-10