Paul j . McMurdie福尔摩斯和苏珊
统计部门,斯坦福大学
,美国加利福尼亚州斯坦福大学,94305
微生物群落的分析带来了许多挑战:许多不同类型的数据和方法的集成,从生态学、遗传学、系统发生学、网络分析、可视化和测试。数据本身可能源自不同来源广泛,如人类的微生物、土壤、表面和海水、污水处理厂、工业设施,等等;结果,这些不同的样本类型可能有非常不同的形式和尺度相关的数据,非常依赖于实验及其问题(s)。进口phyloseq包是一个工具,储存、分析、和图形化显示复杂的系统发育测序数据已经聚集到操作分类单位(辣子鸡),尤其是当有关联的示例数据,系统发育树,和/或分类任务的辣子鸡。这个包利用许多工具在生态学和系统发育分析R(素食,ade4猿,激情似火),同时使用先进/灵活的图形系统(ggplot2)容易产生可发布图形的复杂的系统数据。phyloseq S4类的使用一个专门的系统来存储所有相关系统测序数据作为单一实验层次对象,使其更容易共享数据和再现分析。一般来说,phyloseq寻求促进使用R进行有效的互动和可再生的OTU-clustered高通量测序系统数据的分析。
概述phyloseq应有的功能、目标和设计可以找到自由和开放phyloseq文章在《PLoS ONE》杂志上
最更新的例子是张贴在我们的在线教程从phyloseq主页
一个单独的小插图描述分析工具包括在phyloseq连同各种各样的例子包括使用示例数据。快速加载:
装饰图案(“phyloseq_analysis”)
相比之下,这个描述的目的是提供功能的例子基本数据导入和操作基础设施包括在phyloseq。这包括示例代码导入OTU-clustered来自不同集群的数据管道,以及执行明确的和可再生的过滤任务可以被更改后,检查的鲁棒性。的动机包括工具phyloseq这样是节省时间,并内置结构,需要从同样的实验相关数据表的一致性。这不仅可以减少代码重复,但也降低了数据过滤和分析期间出现错误的可能性。例如,它是故意在phyloseq很难创建一个实验层次对象的组件树和OTU表OTU名称不同。导入功能,修剪工具,以及创建一个实验层次对象的主要工具,phyloseq,所有自动修剪辣子鸡和样本指标的十字路口,这些组件的数据类型是完全一致的。
的类结构phyloseq方案遵循继承关系图如下图所示。的phyloseq包包含多个继承的类与增量复杂性这方法可以扩展到处理完全存在于一个特定对象的数据类型。目前,phyloseq使用4核心数据类。他们是OTU丰富表(otu_table),一个示例数据表(sample_data),一个分类表描述符(taxonomyTable),系统发育树(“phylo”除此之外,猿包)。的otu_table类可以被认为是中央数据类型,因为它直接代表的数量和类型序列在每个样本观察。otu_table扩展了数字矩阵类的R基础,有一些其他功能槽。槽是其中最重要的特性taxa_are_rows槽,面向单个逻辑表明表是否与类群(如行genefilter包中Bioconductor(如与分类群)或列素食主义者和激情似火包)。在phyloseq方法,以及其扩展的方法在其他包,taxa_are_rows值的检查,以确保适当的定位otu_table。一个phyloseq用户只需要指定otu_table定位在初始化期间,所有处理后内部。
的sample_data类直接继承了R的data.frame类,因此有效地存储关于每个样本的分类和数值数据。的取向data.frame在这种情况下要求样品/试验的行、列和变量(一致素食主义者和其他包)。的taxonomyTable类直接继承了矩阵类,面向分类单元/辣子鸡的行和列分类水平(如。门)。
phyloseq-class可以被认为是一个“实验层次阶级”应该包含两个或两个以上的前所述核心数据类。我们假设phyloseq用户将感兴趣的分析,利用他们丰富计数来源于系统测序数据,所以phyloseq ()构造函数将停止错误,如果参数不包括一个otu_table。有很多需要一个常用的方法otu_table和sample_data组合,或一个otu_table和系统发育树的组合。这些方法可以操作phyloseq-class的实例,如果所需的组件,将停止错误数据丢失。
现在让我们开始通过加载phyloseq,描述一些导入数据的方法。
使用phyloseq在一个新的R会话,它必须加载。可以在你的包管理器,或者在命令行中使用图书馆()命令:
库(“phyloseq”)
的一个重要特性phyloseq方法导入系统测序数据的常见分类聚类管道。这些方法将文件路径名作为输入,读取和解析这些文件,并返回一个对象,其中包含的所有数据。
下面提供一些额外的背景细节。最好的可再生的例子在导入数据phyloseq官方数据导入教程页面上可以找到:
http://joey711.github.com/phyloseq/import-data
新版本的QIIME(见下文)产生一个更加全面和状况JSON文件格式,称为biom文件格式:
“biom文件格式(宗教上地明显生态区”)被设计为代表的通常格式项观察在一个或多个生物样本。BIOM地球微生物项目是一个公认的标准,是基因组学标准联盟候选项目。”
看到biom-format主页获取详细信息。
QIIME是一个免费的开源OTU集群和分析管道为Unix(主要是Linux)写的。它是分布在许多不同的形式(包括预安装虚拟机)。看到QIIME主页获取详细信息。
一个QIIME输入文件(样本地图),和两个QIIME输出文件(otu_table.txt,.tre)是公认的import_qiime ()函数。唯一的三个输入文件是必需的,尽管一个“otu_table.txt”如果需要文件import_qiime ()是返回一个完整的实验对象。
在实践中,你会找到相关QIIME文件在其他文件由QIIME管道。目录结构的一个屏幕快照显示了一个典型的QIIME运行期间创建的QIIME目录图。
sample_data对于某些分析对象,可以是非常有用的。返回的对象的类import_qiime ()取决于提供文件名。最全面的类是自动选择,根据列出的输入文件作为参数。至少一个参数需要提供。
独立于平台的,开源的本地安装软件包,mothur,还可以处理编码并执行OTU-clustering扩增子序列。它是广为记载mothur维基
目前,有三种不同的文件产生的mothur包(版本1.22 +),可以进口phyloseq。至少,用户必须提供一个“.list“文件,和至少一个以下两个文件:.groups或.tree。产生的文件mothur的make.group ()函数。可以在细节它的wiki页面。计算出的树文件系统树mothur。
的输出import_mothur ()取决于提供的文件类型。如果提供所有三个文件类型,phyloseq-class返回的一个实例,包含一个OTU丰富表及其相关的系统发育树。
PyroTagger是条形码的OTU-clustering管道16 s rRNA扩增子序列,服务和维护由美国能源部(DOE)联合基因组研究所(变得)。它可以通过一个简单的web界面PyroTagger主页
PyroTagger取未切边的序列作为输入(.fasta)和sequence-quality (.qual)文件,以及一个样本的映射文件,其中包含每个样品的条形码序列和它的名字。它使用一个97 \ %身份阈值定义OTU集群(大约了解分类区别),和没有提供选项用于指定。它允许用户修改阈值设置为低质量的基础。
PyroTagger返回一个excel电子表格文件(xls)包含丰富和分类数据,以及一些相关信息与每个分类任务的信心。这个表格也报告潜在的嵌合序列。这个单一的输出文件是充分的import_RDP_tab (),提供的文件已经转换为纯文本格式一样。任何电子表格应用程序应该足够了。应该没有其他变化xls文件。
import_RDP_tab ()返回一个包含OTU phyloseq-class丰富的实例表和分类表。据我所知,PyroTagger并不代表序列的计算一棵树从每个OTU集群,也不是一个距离对象,因此分析tip_glom ()和UniFrac不适用。
核糖体数据库项目(RDP)提供了一个基于web的编码处理管道称为16 s rRNA扩增子序列RDP焦磷酸测序管道。用户必须运行“数据处理”的所有三个步骤按顺序通过web接口,以获得完整的输出链接聚类,OTU集群使用RDP管道的方法。注意,这个导入函数假定序列名称在生成的集群文件遵循一个特定的命名约定用下划线分隔符(见下文)。
的输出完整的连锁聚类,.clust,是唯一的RDP的输入管道进口:
myOTU1 < - import_RDP_cluster(“路径/ /我的/ filename.clust”)
这返回一个进口商otu_table对象。
RDP集群管道(特别是完成连锁聚类步骤的输出)没有正式的文档”。clust”文件结构或其明显的序列命名约定。
集群文件本身包含的名称中包含的所有序列输入对齐。如果上游条形码和线条处理步骤也完成了RDP管道,然后名字顺序遵循可预测的命名约定在每个序列命名的样本序列ID,隔开“_”分隔符:
sampleName_sequenceIDnumber
这个导入函数假定序列名称集群中的文件遵循这个惯例,并且不包含任何样品名称“_”。如果这工作不太可能并非如此。它可能工作如果你使用RDP管道上游步骤处理你的原始fasta / fastq数据(条形码,修剪)。
有多个数据集包含在示例phyloseq。许多人发表的调查,包括文档总结和引用,以及一些示例代码代表分析中可用的一些方面phyloseq。在包指数,去名字开头“数据——”看到当前可用的文档示例数据集。
示例数据加载到工作环境,使用数据()命令:
数据(GlobalPatterns)数据(食道)数据(菌群)却能合成更多形成数据(soilrep)
同样的,进入enterotype ?会发现所谓的“菌群”却能合成更多形成的文档数据。例子的详细信息,请参见示例数据教程
在小字体,下面是摘要的GlobalPatterns数据打印到终端。这些摘要中是一致的phyloseq-class对象。虽然组件GlobalPatterns有成千上万的元素,每个组件的命令行只返回一个简短的总结。这鼓励你检查一个对象仍然是你期望的,而不需要让成千上万的元素滚动整个终端。在的情况下,你想看到更多的特定组件,使用一个accessor函数(见下表)。
数据(GlobalPatterns) GlobalPatterns
# # # # phyloseq-class实验层次对象otu_table () OTU表:[19216类群和26个样本)# # sample_data()示例数据:[26个样品7样本变量)# # tax_table()分类表:由7[19216类群分类排名)# # phy_tree()种系发生树:[19216提示和19215内部节点)
假设你已经从一个实验原始数据导入到R,他们的指标是正确标示。你怎么得到phyloseq认识到这些表的适当的类数据?并进一步结合在一起?表表组件构造器函数列出关键功能将这些核心数据格式转换成特定的组件数据对象认可phyloseq。这些也将
| 函数 | 输入类 | 输出描述 |
|---|---|---|
otu_table |
数字矩阵 | otu_table对象存储OTU丰富 |
otu_table |
data.frame | otu_table对象存储OTU丰富 |
sample_data |
data.frame | sample_data对象存储样本变量 |
tax_table |
字符矩阵 | taxonomyTable对象存储分类身份 |
tax_table |
data.frame | taxonomyTable对象存储分类身份 |
read_tree |
文件路径字符 | phylo-class树,从文件读取 |
read.table |
表文件路径 | 一个矩阵或data.frame(性病R核心功能) |
| 函数 | 输入类 | 输出描述 |
|---|---|---|
phyloseq |
两个或多个组件对象 | phyloseq-class,实验层次对象 |
merge_phyloseq |
两个或多个组件或phyloseq-class对象 | 结合实例phyloseq-class |
下面的例子说明了使用组件数据表的构造方法。
otu1 < - otu_table (raw_abundance_matrix taxa_are_rows = FALSE) sam1 < - sample_data (raw_sample_data.frame) tax1 < - tax_table (raw_taxonomy_matrix) tre1 < - read_tree (my_tree_file)
一旦他们适当的数据表转换类,结合成一个对象只需要一个额外的函数调用,phyloseq ():
ex1b < - phyloseq (my_otu_table、my_sample_data my_taxonomyTable, my_tree)
你不需要所有的四个数据类型在上面的示例中为了结合成一个validity-checked实验层次phyloseq-class对象。的phyloseq ()方法将检测组件数据类,并建立相应的。下游分析方法将访问所需的组件使用phyloseq的访问器,抛出一个错误如果丢失了什么。对于大多数下游方法只需要供应组合,phyloseq-class对象(的输出phyloseq ()),通常作为第一个参数。
ex1c < - phyloseq (my_otu_table my_sample_data)
每当phyloseq-class创建的实例phyloseq——例如,当我们使用import_qiime ()函数导入数据,或者结合使用手动导入表phyloseq ()——代表类群的行和列索引或样品内部检查/修剪兼容性,这样所有组件数据描述完全相同(只有)辣子鸡和样本。
phyloseq项目包括支持两个不同类别的合并完成。
merge_samples (),merge_taxa ()merge_phyloseq ()进一步的细节,请参阅可再生的在线教程:
http://joey711.github.com/phyloseq/merge
一旦你有空phyloseq对象,很多访问器功能可用于查询方面的数据集。总结了函数名和它的目的访问器的功能表。
| 函数 | 返回 |
|---|---|
( |
标准提取算子。工作otu_table,sample_data,taxonomyTable |
访问 |
一般槽phyloseq-package访问器函数 |
get_taxa |
丰度值的类群样本我 |
get_sample |
丰度值的分类群我所有样品 |
get_taxa_unique |
观察分类单元的一个独特的向量在一个特定的分类等级 |
get_variable |
单个样本变量向量/因素 |
nsamples |
得到样品所描述的对象的数量 |
ntaxa |
得到辣子鸡的数量(类群)所描述的一个对象 |
otu_table |
构建或otu_table对象的访问 |
rank_names |
获得可用的名称分类 |
sample_data |
建立或访问sample_data对象 |
sample_names |
所有样品的名称 |
taxa_names |
所有分类单元的名称 |
sample_sums |
每个样本的丰度值的总和 |
sample_variables |
样本变量的名字 |
taxa_sums |
每个类群的丰度值的总和 |
taxa_are_rows |
真正的如果类群行指数otu_table |
tax_table |
一个分类表 |
phy_tree |
访问phyloseq对象中包含的树 |
削减高通量测序系统数据可能是有用的,甚至是必要的,对于某些类型的分析。然而,重要的是,原始数据总是可用的引用和再现性;和方法用于修剪是透明的,所以他们可以执行相同的削减或过滤步骤相同或相关的数据。为了促进这一点,phyloseq包含很多方面削减/过滤系统测序项目的数据。因为匹配指数类群和样品是严格执行,构造子集的数据组件自动从其他相应的指标子集。变量持有修剪版本的可以宣布你的原始数据,并进一步削减,原始数据的不丢失。
一般来说,大部分削减应该使用S4方法完成prune_taxa ()或prune_samples ()。
例如,允许创建一个新对象,只有拥有最丰富的20个类群的实验。为了实现这一点,我们将使用prune_taxa ()函数。
数据(GlobalPatterns) most_abundant_taxa < - sort (taxa_sums (GlobalPatterns),真的)[1:topN] ex2 < - prune_taxa(名称(most_abundant_taxa), GlobalPatterns)
现在我们可以问一个问题,“这些辣子鸡分类家庭是什么?”(构造子集仍然返回taxonomyTable对象,它是总结。我们需要转换为一个向量)
topFamilies < - tax_table (ex2)(,“家庭”)(topFamilies,“矢量”)
# # [1]NA“ACK-M1”“ACK-M1”# # [4]“Bifidobacteriaceae NA NA # # [7]”Nostocaceae“NA”奈瑟氏菌科“# #[10]“奈瑟氏菌科”“巴斯德氏菌科”“肠杆菌科”# #[13]“类杆菌”“类杆菌”“类杆菌”# # [16]“Clostridiaceae”“Ruminococcaceae”“Ruminococcaceae”# # [19]“Ruminococcaceae”“链球菌科”
前面的示例是一个相对简单的过滤,我们一直只有20在整个实验中最丰富的。但是,如果我们想要保持每个样品的20最丰富的类群?的,只保留类群中还发现了至少三分之一的我们的样品吗?如果我们想只保留那些遇到一些类群across-sample标准?
更复杂的过滤phyloseq包含一个函数,genefilter_sample,需要作为参数phyloseq对象,以及一个或多个过滤函数的列表将被应用到每个示例丰富矩阵(otu_table),以及一个整数参数,一个,指定有多少样品过滤函数必须返回真正的为特定类群避免删除从对象。支持函数filterfun_sample也包括在phyloseq促进创造一个正确格式化函数(外壳)如果不止一个函数是同时应用。genefilter_sample返回一个逻辑向量适合直接发送prune_taxa为实际的削减。
这里是完全捏造的一个例子otu_table被称为testOTU。
testOTU < - otu_table(矩阵(样本(1:50,25日取代= TRUE), 5、5), taxa_are_rows = FALSE) f1 < - filterfun_sample (topk (2) wh1 < - genefilter_sample (f1, testOTU = 2) wh2 < - c (T, T, T, F, F) prune_taxa (wh1 testOTU) prune_taxa (wh2 testOTU)
这里还有一个例子使用包含的数据集,GlobalPatterns。最丰富的类群都只有在最丰富的类群10 \ %至少一半的样本数据集GlobalPatterns。请注意,没有必要子集GlobalPatterns为了做到这一点过滤。S4的方法prune_taxa每个子集与组件的对象,并将复杂对象返回。
数据(GlobalPatterns) f1 < - filterfun_sample (topp (0.1)) wh1 < - genefilter_sample (f1, GlobalPatterns = (1/2 * nsamples (GlobalPatterns)))和(wh1)
# # 795年[1]
ex2 < - prune_taxa (wh1 GlobalPatterns)
打印(ex2)
# # # # phyloseq-class实验层次对象otu_table () OTU表:[795类群和26个样本)# # sample_data()示例数据:[26个样品7样本变量)# # tax_table()分类表:由7[795类群分类排名)# # phy_tree()种系发生树:[795提示和794内部节点)
如果不是最丰富的类群,你最感兴趣的是丰富的个人分数(又名序列,观察),然后topf函数是合适的。陡峭的rank-abundance曲线,topf似乎会更加保守(削减更多的分类群),因为它是基于相对丰富的总合。它不保证一定数量或比例的总分类单元(丰富)将被保留。
数据(GlobalPatterns) f1 < - filterfun_sample (topf (0.9)) wh1 < - genefilter_sample (f1, GlobalPatterns = (1/3 * nsamples (GlobalPatterns)))和(wh1) prune_taxa (wh1 GlobalPatterns)
的filter_taxa直接类似于函数genefilter微阵列滤波函数,但从phyloseq对象用于过滤辣子鸡。它适用于任意设置的功能——作为一个功能列表,例如,创建的genefilter: filterfun——across-sample标准,一次一个OTU。它可以被认为是一个扩展的genefilter-package为phyloseq对象(从Bioconductor存储库)。它需要phyloseq对象作为输入,并返回一个逻辑向量表示每个OTU是否通过了标准。另外,如果修剪选项设置为FALSE,它返回的already-trimmed版本phyloseq对象。
检查下面的例子。注意,函数genefilter和kOverA来自genefilter包。
数据(“菌群”却能合成更多形成)库(genefilter)弗利斯特雨< - filterfun (kOverA (5,2 e-05))。罗技< - filter_taxa(菌群,却能合成更多形成弗利斯特雨)。修剪< - filter_taxa(菌群,却能合成更多形成弗利斯特雨,真的)相同(ent。修剪,prune_taxa (ent。罗技,菌群)却能合成更多形成)
# # [1]
相同的(和(ent.logi) ntaxa (ent.trim))
# # [1]
filter_taxa(菌群,却能合成更多形成弗利斯特雨,真的)
# # # # phyloseq-class实验层次对象otu_table () OTU表:[416分类单元和280个样本)# # sample_data()示例数据:[280样品9样本变量)# # tax_table()分类表:[416类群1分类排名)
是可能的样本子集phyloseq基于样本变量使用的对象subset_samples ()函数。例如子集GlobalPatterns只保留某些环境中,需要以下行(相关表自动子集):
要是< - subset_samples (GlobalPatterns SampleType % % c(“淡水”、“海洋”,“淡水(溪)”))
要是
# # # # phyloseq-class实验层次对象otu_table () OTU表:[19216类群和8个样本)# # sample_data()示例数据:[8样品7样本变量]# # tax_table()分类表:由7[19216类群分类排名)# # phy_tree()种系发生树:[19216提示和19215内部节点)
对于这个示例只显示一个分类变量,但原则上一个连续变量可以被指定和提供同样的逻辑表达式子集函数。事实上,因为sample_data组件对象的扩展data.frame类,也可以与的子集子集功能:
子集(sample_data (GlobalPatterns) SampleType % % c(“淡水”、“海洋”,“淡水(溪)”))
# #样本数据:[8样品7样本变量]:# # X。SampleID底漆Final_Barcode Barcode_truncated_plus_T # # LMEpi24M LMEpi24M ILBC_13 ACACTG CAGTGT # # SLEpi20M SLEpi20M ILBC_15 ACAGAG CTCTGT # # AQC1cm AQC1cm ILBC_16 ACAGCA TGCTGT # # AQC4cm AQC4cm ILBC_17 ACAGCT AGCTGT # # AQC7cm AQC7cm ILBC_18 ACAGTG CACTGT # # NP2 NP2 ILBC_19 ACAGTT AACTGT # #这类这类ILBC_20 ACATCA TGATGT # # NP5 NP5 ILBC_21 ACATGA TCATGT # # Barcode_full_length SampleType # # LMEpi24M CATGAACAGTG淡水# # SLEpi20M AGCCGACTCTG淡水# # AQC1cm GACCACTGCTG淡水(溪)# # AQC4cm CAAGCTAGCTG淡水(溪)# # AQC7cm ATGAAGCACTG淡水(溪)# # NP2 TCGCGCAACTG海洋# # NP3 GCTAAGTGATG海洋# # NP5 GAACGATCATG海洋# # # #描述LMEpi24M曼德特湖明尼苏达州,24米变温层# # SLEpi20M闪闪发光的威斯康辛州湖,20米eplimnion # # AQC1cm Allequash溪,0-1cm深度# # AQC4cm Allequash溪,3 - 4厘米深度# # AQC7cm Allequash河,6 - 7厘米深度# # NP2新港码头,CA地表水,时间1 # # NP3新港码头,CA地表水,时间2 # # NP5新港码头,CA地表水,时间3
可以通过特定的分类范畴使用子集subset_taxa ()函数。例如,如果我们想子集GlobalPatterns关于门,这样它只包含数据厚壁菌门:
ex4 < - subset_taxa (GlobalPatterns门= =“壁厚菌门”)
ex4
# # # # phyloseq-class实验层次对象otu_table () OTU表:[4356类群和26个样本)# # sample_data()示例数据:[26个样品7样本变量)# # tax_table()分类表:由7[4356类群分类排名)# # phy_tree()种系发生树:[4356提示和4355内部节点)
也可以随机子集,例如随机100类群从整个数据集的子集。
randomSpecies100 < -样本(taxa_names (GlobalPatterns), 100年,取代= FALSE) ex5 < - prune_taxa (randomSpecies100 GlobalPatterns)
Sample-wise变换可以实现的transform_sample_counts ()函数。它需要两个参数,(1)phyloseq你想变换对象,您想要使用的功能来执行转换。任意函数可以作为第二个参数提供的,只要它返回一个数字相同的向量作为输入。在以下简单的示例中,我们创建另一个对象,ex2,“转换”的恒等函数,使其实际上是相同的GlobalPatterns。
数据(GlobalPatterns) ex2 < - transform_sample_counts (GlobalPatterns,我)
对于某些analyis我们可能想要将大量数据。例如,对于RDA我们想变换丰富计数within-sample行列,并进一步包括一个阈值之外的所有类群接收相同的等级值。独立执行每个样本的排名,这样的一个特定的分类群在一个特定的示例不受样本总量的影响相对于其他样品测序项目。
下面的例子展示了如何执行这样一个thresholded-rank转换的丰度表复杂phyloseq对象GlobalPatterns任意阈值为500。
ex4 < - transform_sample_counts (GlobalPatterns threshrankfun (500))
# # tax_glom()假设我们怀疑OTU-level区别的重要性在我们的数据集。对于这个场景,phyloseq包括一个taxonomic-agglommeration方法,tax_glom ()相同,合并类群的分类范畴为用户指定的分类级别。在以下代码中,我们合并所有同一属的分类单元,存储新对象ex6。
ex6 < - tax_glom (GlobalPatterns taxlevel =“属”)
同样,我们最初的实例对象(GlobalPatterns)也包含一个phlyogenetic树对应于每个OTU,我们也可以使用作为一种手段来合并类群在我们的数据集,是密切相关的。在本例中,我们指定一个阈值教父的距离。类群比这更密切相关的阈值合并。这是特别有用,当数据集有许多类群的分类任务缺乏水平你想调查,当使用问题tax_glom ()。请注意,对于数据集与大量的类群,tax_glom会明显快于tip_glom。同时,要记住tip_glom要求它的第一个参数是一个包含一个对象树tax_glom而不是需要一个taxonomyTable(见phyloseq类)。
ex7 < - tip_glom (GlobalPatterns speciationMinLength = 0.05)
命令输出没有提供在编译过程中节省时间的小插图。用户被鼓励尝试这在你的数据集,甚至这个例子中,如果感兴趣。这可能需要一段时间来运行完整,未切边的数据。
请检查phyloseq安装教程为帮助安装。这可能是第一时间的新闻和更新安装将公布的信息,。也看看其他的GitHub phyloseq主页,因为这是最好的地方张贴问题,错误报告,功能请求,贡献代码,等等。
运行函数/方法的并行实现phyloseq(如。UniFrac (GlobalPatterns并行= TRUE)),您还需要安装一个函数注册一个平行的“后端”。只有一个工作并行的后端是必要的,但有几个选项,最好将取决于您的特定系统的细节。“doParallel”包是一个很好的起点。任何一个从下面的行R会话将安装一个后端包。
install.packages (“doParallel”) install.packages (doMC) install.packages install.packages (“doSNOW”) (“doMPI”)
J Gregory Caporaso贾斯汀Kuczynski Jesse Stombaugh凯尔bitting,弗雷德里克·D布什曼QIIME允许社区高通量测序数据的分析。自然方法7(5):335 - 336年,2010年。
P D城堡,S L威斯克,T Ryabin J R大厅,M哈特曼,et al。引入mothur:开源,独立于平台的,支持的软件描述和比较微生物群落。应用与环境微生物学75(23):7537 - 7541年,2009年。
J R科尔,问王,E Cardenas J鱼、茶等。核糖体数据库项目:改进的比对和核糖体rna分析的新工具。核酸的研究37(数据库问题):D141-5, 2009年。
罗伯特·C绅士,文森特·j·凯里,道格拉斯·m·贝茨等。Bioconductor:打开软件开发计算生物学和生物信息学。基因组生物学5:R80, 2004年。