看教程不够直观,那就看视频吧! >>点击加载视频
16S分析能获得的信息比较有限,一般找到差异OTU,就很难再深入分析了。
如何把差异OTU与细菌自身的基因组功能建立联系呢?很多人在这方面做出了努力。
PICRUSt就是让16S扩增子分析锦上添花的工具,可以基于OTU表预测宏基因组的功能基因组成。该软件2013年发表在Nature Biotechnology上,截止17年9月11日引用1098次,由Curtis Huttenhower团队开发。最新本地版本1.1.2于17年8月30日发布。在线版最新为1.1.1于4月25日发布。
已经有很多人写过PICRUSt的原理介绍,比如《根据16S预测微生物群落功能最全攻略》。
但推荐的方法再好,很多小伙伴实际操作中还是有一定困难的。“宏基因组”本着只分享干货的原则,推出扩增子预测宏基因组的中文实操指南。将介绍一系列相关软件的详细使用。
本部分练习所需文件位于百度网盘,链接:http://pan.baidu.com/s/1hs1PXcw 密码:y33d。本练习是在扩增子分析流程中的可选扩展功能。原始流程阅读请点我
制作PICRUSt要求OTU表
大多数人还要用de novo方法建的OTU表,而PICRUSt需要以greengene13.5版本为参考序列的OTU,这就需要自己动手了,可以用linux服务器,也可以用qiime虚拟机搞定(一般公司测序都会给分析好,没有就找他们要)。
创建基于Greengene13.5的close reference OTU表的方法
# 进入测序数据的文件夹 cd ~/example_PE250 # 下载13.5版参考序列,QIIME中13.8版本此软件不支持 wget ftp://greengenes.microbio.me/greengenes_release/gg_13_5/gg_13_5_otus.tar.gz tar xvzf gg_13_5_otus.tar.gz # Usearch产生OTU表 ./usearch10 -usearch_global temp/seqs_usearch.fa -db gg_13_5_otus/rep_set/97_otus.fasta -otutabout result/gg135_otu_table.txt -biomout result/gg135_table.biom -strand plus -id 0.97 -threads 20 # 转换文本为biom标准格式 biom convert -i result/gg135_otu_table.txt -o result/gg135_otu_table.biom --table-type="OTU table" --to-json
在线版操作
Picurst在线服务器 http://huttenhower.sph.harvard.edu/galaxy
Linux本地版使用安装picrust
PICRUST http://picrust.github.io/picrust/install.html#install
依赖关系包括: python 2.7, PyCogent 1.5.3, biom 2.1.4, numpy 1.5.1, 这些都是qiime1.9.1所依赖的,因此只要安装过qiime这都不是问题了(all installed in qiime),详见QIIME安装
# 下载并安装,管理员权限非常顺利,也方便所有人使用 git clone git://github.com/picrust/picrust.git picrust cd picrust sudo pip install . # 下载数据库 download_picrust_files.py
运行picrust
# 按拷备数标准化OTU表, -c指定数据库 normalize_by_copy_number.py -i result/gg135_table.biom -o normalized_otus.biom # 用usearch的biom结果会报错 normalize_by_copy_number.py -i result/gg135_otu_table.biom -o result/normalized_otus.biom -c picrust/picrust/data/16S_13_5_precalculated.tab.gz # 预测宏基因组 predict_metagenomes.py -i result/normalized_otus.biom -o result/metagenome_predictions.biom -c picrust/picrust/data/ko_13_5_precalculated.tab.gz # 转换结果为txt查看 biom convert -i result/metagenome_predictions.biom -o result/metagenome_predictions.txt --table-type="OTU table" --to-tsv # 调整为标准表格 sed -i '/# Const/d;s/#OTU //g' result/metagenome_predictions.txt # 预览KO表,和OTU表类似,只是OTU变为了KO less result/metagenome_predictions.txt # 统计KO数据6910个 wc -l result/metagenome_predictions.txt # 按功能级别分类汇总 # -c指输出类型,有KEGG_Pathways, COG_Category,RFAM三种,-l是级别,分4级 categorize_by_function.py -i result/metagenome_predictions.biom -c KEGG_Pathways -l 3 -o result/metagenome_predictions.L3.biom # 转换结果为txt查看 biom convert -i result/metagenome_predictions.L3.biom -o result/metagenome_predictions.L3.txt --table-type="OTU table" --to-tsv # 调整为标准表格 sed -i '/# Const/d;s/#OTU //g' result/metagenome_predictions.L3.txt # 预览KO表,和OTU表类似,只是OTU变为了KO less -S result/metagenome_predictions.L3.txt # 统计KO数据L3级别有329个 wc -l result/metagenome_predictions.L3.txt # 查找指定通路的丰度情况(可选,用于具体查看某个KO) metagenome_contributions.py -i result/normalized_otus.biom -l K00001,K00002,K00004 -o result/ko_metagenome_contributions.tab
最终结果数据格式
展示KO表的部分结果格式
ID KO4 KO6 KO5 KO3 WT8 KO9 K01365 0.0 0.0 0.0 0.0 0.0 0.0 K01364 0.0 0.0 0.0 0.0 0.0 0.0 K01361 31.0 29.0 31.0 24.0 2.0 26.0 K01360 2.0 0.0 1.0 0.0 1.0 0.0 K01362 77717.0 50358.0 66631.0 81057.0 33085.0 90576.0 K02249 5.0 11.0 4.0 4.0 0.0 2.0 K05841 3123.0 2044.0 2226.0 6404.0 1534.0 2795.0
展示KO level3级的部分结果格式
ID KO4 KO6 KO5 KO3 WT8 KO9 1,1,1-Trichloro-2,2-bis(4-chlorophenyl)ethane (DDT) degr ABC transporters 3016942.0 2108175.0 Adherens junction 142.0 154.0 123.0 119.0 Adipocytokine signaling pathway 90482.0 65434.0 76865.0 African trypanosomiasis 15284.0 10342.0 13778.0 13364.0 Alanine, aspartate and glutamate metabolism 680022.0 Aldosterone-regulated sodium reabsorption 85.0 Alzheimer's disease 85944.0 58346.0 76213.0 73664.0 Amino acid metabolism 218212.0 148475.0 Amino acid related enzymes 929584.0 651269.0 Amino sugar and nucleotide sugar metabolism 659863.0 Aminoacyl-tRNA biosynthesis 664516.0 474744.0 Aminobenzoate degradation 485766.0 339700.0
宏基因组功能分类(KO)表统计与可视化
我们现在获得了KO表或L3级别的功能表,它们同OTU表类似。接下来,可以用官方推荐的STAMP、HUManN、LEfSe和GraPhlAn进行分析。
也可以采用之前我介绍的edgeR或DEseq等R包,对KO表按分组进行统计,找到差异用热图或柱状图展示即可。详见 热图:差异菌、OTU及功能
我们可以使用上文中的代码,对KO像OTU一样分析,看样品间的相关性聚类、差异KO功能分析并热图可视化。
KO与OTU相关分析比较
图1. 原始基于OTU相对丰度样品相关性的热图,WT, OE,KO(这里KO是组名,表示基因敲除)明显分为三组
图2. 基于宏基因组功能(KO)相对丰度样品相关性热图,OE还是明显的一组,KO和OE的差别非常不明显,而且分成了两个混杂的类群。
一种可能是这个基因的突变体引起了菌群结构变化,但在功能基因层面真的和WT差异不大。但更可能的原因是:PICRUSt在本研究中预测的宏基因组数据不够准确全面,偏差到了无法区分WT与突变体,因为原始注释中有很多OTU并不在greengene数据中可以匹配,这些PICRUSt是无法分析的。
差异功能KO统计与热图展示
但OE与WT差异还是明显的,我用上文热图中的代码套用在KO表进一步统计差异KO,并展示。
图3. 差异KO(Level3, P < 5e-7)
详细的绘图代码参考上文热图,也可以在百度云result目录中下载DAKO_egr.r文件,读取OTU替换为KO的表,绘图主要变化只有两处如下:
# 筛选差异KO的阈值,用默认的0.05会有168个差异,热图展示会看不清字。调整至5e-7减少至50个左右只是为方便展示 de_lrt = decideTestsDGE(lrt, adjust.method="fdr", p.value=0.0000005) # 热图绘制,注意KO的名称较长,调整margins第二个值为17才显示完整 heatmap.2(sub_norm, scale="row", Colv=TRUE, Rowv=TRUE,dendrogram="both", col=rev(colorRampPalette(brewer.pal(11, "RdYlGn"))(256)), cexCol=1,keysize=1,density.info="none",main=NULL,trace="none",margins = c(3, 17))
关于差异KO的展示,还常用泡泡图、柱状图结合不同分类级分组展示,这都是绘图的范畴了,我会在将来也会进行详细讲解的。想要自己画的,可以先学习陈同博士的R绘图教程(见公众号菜单-文章目录-R语言绘图部分)。
接触过泛基因组人都知道,即使16S相同,由于细菌序列的大量水平转移,功能基因也是相差极大。所以本软件的结果,仅供描述。富人做宏基因组,穷人16S预测功能锦上添花。
Reference
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!