内容

保罗·j·麦克默迪和苏珊·霍姆斯

mcmurdie@stanford.edu

phyloseq主页

如果您发现phyloseq和/或其教程有用,请确认并在您的出版物中引用phyloseq:

phyloseq:一个R包,用于微生物组普查数据的可重复交互分析和图形化(2013) PLoS ONE 8(4):e61217http://dx.plos.org/10.1371/journal.pone.0061217

1其他资源

phyloseq项目也有许多支持的在线资源,其中大部分可以在phyloseq主页,或从phyloseq稳定释放有关Bioconductor的网页

要发布功能请求或寻求帮助,请尝试系统序列问题跟踪器

2本例采用实验数据

在这个例子中,我使用了一项结肠直肠癌研究的公开数据:

基因组分析确定梭杆菌与结直肠癌的相关性.科斯蒂克,D., Gevers, D., Pedamallu, C. S.,米肖德,M.,杜克,F.,厄尔,A. M.等人(2012)。基因组研究, 22(2), 292-298。

顺便说一句,这本书在印刷之前就已经出版了基因组研究另一组研究人员的一篇高度相关的文章(长期可重复的观察!):有核梭杆菌感染在人大肠癌中普遍存在.如果你感兴趣的话。然而,为了举例的目的,我们将坚持使用前一项研究的数据,数据可在microbio.me / qiime服务器。

数据来源,来自文章中的方法部分:

16S基因数据集由454个FLX Titanium序列组成,涵盖了190个样本(95对)的V3到V5可变区。用于16S扩增和测序的详细协议可在HMP数据分析和协调中心网站(http://www.hmpdacc.org/tools_protocols/tools_protocols.php)。

研究ID:1457

项目名称:Kostic_colorectal_cancer_fusobacterium

文摘:研究

结直肠癌的肿瘤微环境是一个由基因组改变的癌细胞、非肿瘤细胞和多种微生物组成的复杂群落。这些成分中的每一种都可能促成癌的发生;然而,人们对微生物群的作用了解得最少。我们用9对肿瘤/正常对的全基因组序列描述了大肠癌中微生物群的组成。通过定量PCR和对95对癌/正常DNA的16S rDNA序列分析,证实梭杆菌门序列在肿瘤中富集,而拟杆菌门和厚壁菌门在肿瘤中缺失。在结直肠肿瘤内使用FISH也可见到梭杆菌。这些发现揭示了结直肠癌微生物群的变化;然而,梭杆菌在结直肠癌发病机制中的确切作用还有待进一步研究。

3.用phyloseq导入数据,转换为DESeq2

从加载phyloseq开始。

图书馆(“phyloseq”);packageVersion(“phyloseq”)
## [1] '1.28.0'

定义文件路径,并将发布的OTU计数数据导入R。

Filepath = system。File ("extdata", "study_1457_split_library_seqs_and_mapping.zip", package="phyloseq") kostic = microbio_me_qiime(filepath)
##找到生物格式文件,现在解析它…##解析完生物…从映射文件导入样本元数据…##合并导入的对象成功合并,创建phyloseq类。# #返回……

在这里,我必须使用相对文件路径,以便这个示例可以在安装了phyloseq的所有系统上运行。实际上,你的文件路径是这样的(如果你提前下载了数据):

filepath = "~/Downloads/study_1457_split_library_seqs_and_mapping.zip" kostic = microbio_me_qiime(文件路径)

或者像这样(如果你直接从微生物中访问数据。Me /qiime服务器直接):

Kostic = microbio_me_qiime(1457)

4转换为DESeq2的DESeqDataSet类

在这个例子中,我用的是主样本协变量,诊断,作为研究设计因素。这项研究的重点是比较健康组织和癌变组织的微生物群,所以这是有道理的。您的研究可能有一个更复杂或嵌套的设计,您应该仔细考虑研究设计公式,因为这对测试结果及其意义至关重要。如果当前表中的变量都不能恰当地代表您的研究设计,您甚至可能需要定义一个新的因子。看到DESeq2主页欲知详情。

下面是数据变量的摘要kostic我们将要用到的,以及前几个条目诊断的因素。

kostic
## phyloseq-class实验级对象## otu_table() OTU表:[2505个类群和190个样本]## sample_data()样本数据:[190个样本由71个样本变量]## tax_table()分类表:[2505个类群由7个分类等级]
头(sample_data (kostic)诊断美元,10)
##[1]健康肿瘤肿瘤健康健康肿瘤健康健康健康级别:健康无肿瘤

5DESeq2转换和调用

首先加载DESeq2。

图书馆(“DESeq2”);packageVersion(“DESeq2”)
## [1] '1.24.0'

下面两行实际上完成了所有复杂的DESeq2工作。这个函数phyloseq_to_deseq2将系统序列格式的微生物组数据转换为DESeqDataSet与色散估计,使用实验设计公式,还显示(~诊断术语)。的DESeq函数执行其余的测试,在这种情况下使用默认的测试框架,但实际上您可以使用替代方案。

首先去掉5个没有诊断属性指定的。这些引入了虚假的第三个设计类,实际上是数据集中罕见的工件。同时去除小于的样本500读(计数)。请注意,这种数据清理是有用的、必要的,并且应该有良好的文档,因为在没有明确文档的情况下更改或省略数据也可能是危险的。在本例中,我实际上首先研究了数据,为了清晰起见,我省略了一些细节(和解释性图表)。

kostic <- subset_samples(kostic, DIAGNOSIS != "None") kostic <- prune_samples(sample_sum (kostic) > 500, kostic) kostic . subset_samples(kostic, DIAGNOSIS != "None"
## phyloseq-class实验级对象## otu_table() OTU表:[2505个类群和177个样本]## sample_data()样本数据:[177个样本由71个样本变量]## tax_table()分类表:[2505个类群由7个分类等级]
diagdds = phyloseq_to_deseq2(kostic, ~ DIAGNOSIS) #计算几何均值之前估计大小因子gm_mean = function(x, na.rm=TRUE){exp(sum(log(x[x > 0]), na.rm=na.rm) / length(x))} geoMeans = apply(counts(diagdds), 1, gm_mean) diagdds = estimateSizeFactors(diagdds, geoMeans = geoMeans) diagdds = DESeq(diagdds, fitType="local")

注意:默认的多重推断修正是Benjamini-Hochberg,并且发生在DESeq函数。

6调查测试结果表

以下结果函数调用创建测试结果表。非常快。这些艰苦的工作已经与deseq2相关的其余数据一起存储在最新版本的diagdds对象(参见上面)。然后根据调整后的p值排序,删除带有an的项NA价值。这个示例的其余部分只是用分类信息格式化结果表,以便在HTML输出中更好地显示。

res = results(diagdds) res = res[order(res$padj, NA .last=NA),] alpha = 0.01 sigtab = res[(res$padj < alpha),] sigtab = cbind(as(sigtab, "data.frame"), as(tax_table(kostic)[rownames(sigtab),], "matrix")) head(sigtab)
## baseMean log2FoldChange lfcSE stat pvalue ## 64396 181.564648 2.195547 0.4282121 -4.847515 1.250173e-06 ## 374052 75.002469 2.523486 0.5411855 4.662885 3.11873e -06 ## 307981 3.258919 2.153038 0.4832019 4.455773 8.359162e-06 ## 180285 168.356513 -1.204357 0.2782362 -4.328542 1.501000e-05 padj王国门类## 64396 0.0007238735细菌梭杆菌属梭杆菌属(类)## 72853 0.0015389626细菌厚壁菌属梭菌属细菌梭杆菌门梭杆菌门(类)## 307981细菌变形杆菌门伽玛变形杆菌门细菌厚壁菌门梭状芽孢杆菌门梭杆菌科梭杆菌门梭杆菌门374052梭杆菌门梭杆菌科梭杆菌门梭杆菌门307981肠杆菌门肠杆菌科克雷伯氏菌门180285梭状芽孢杆菌科瘤胃球菌科粪杆菌

让我们看看在癌组织中显著富集的OTUs。首先,把桌子清理一下,以便看清楚。

posigtab = sigtab[sigtab[, "log2FoldChange"] > 0,] posigtab = posigtab[, c("baseMean", "log2FoldChange", "lfcSE", "padj", "门","类","科","属")]
OTU baseMean log2FoldChange lfcSE padj 家庭
64396 181.564648 2.195547 0.4282121 0.0007238735 Fusobacteria Fusobacteria(类) Fusobacteriaceae 梭菌属
374052 75.002469 2.523486 0.5411855 0.0025588983 Fusobacteria Fusobacteria(类) Fusobacteriaceae 梭菌属
307981 3.258919 2.153038 0.4832019 0.0051450643 变形菌门 Gammaproteobacteria 肠杆菌科 克雷伯氏菌

从原来的研究摘要和标题可以预料到,a梭菌属OTU在癌变和健康样本中是最显著的差异之一。

7阴谋的结果

这是一个显示log2倍变化的条形图,表示属和门。使用一些ggplot2命令。

库(ggplot2) theme_set (theme_bw ()) sigtabgen =子集(sigtab, ! is.na(属))#门阶x = tapply (sigtabgen log2FoldChange美元、美元sigtabgen门函数(x)马克斯(x)) x =排序(x,真的)sigtabgen门美元=因素(as.character (sigtabgen门美元),水平=名称(x)) #属秩序x = tapply (sigtabgen log2FoldChange美元、美元sigtabgen属函数(x)马克斯(x)) x =排序(x,真的)sigtabgen属美元=因素(as.character (sigtabgen属美元),水平=名称(x)) ggplot (sigtabgen aes (y =属,x = log2FoldChange,color=门))+ geom_vline(xintercept = 0.0, color= "gray", size= 0.5) + geom_point(size=6) + theme(axis.text. text)。X = element_text(角度= -90,hjust =0, vjust=0.5))