生物信息学
植物营养学术交流

Qiime使用教程

qiime

qiime

Qiime微生生物基因组分析工具的安装

由于Qiime依赖的软件部分只有Linux的版本,Qiime官方建议Windows用户直接安装Qiime的Ubuntu虚拟机,本项研究采用的是1.9.1版本的Qiime。

首先下载并安装VirtuBox,并下载官方提供的已经安装好Qiime的Ubuntu映像文件。

VirtuBox链接:http://www.virtualbox.org/wiki/Downloads

映像文件链接:http://qiime.org/home_static/dataFiles.html

运行VirtualBox,点击New->Next->选择Ubuntu(64 bit)->Next->至少分配3GB内存->Next->选择“Use existing hard drive”->Add->选择你下载的Ubuntu映像文件。然后运行你刚才新建的叫做QIIME的虚拟机(root密码是 qiime)。在虚拟机的桌面上你会看到一个叫做‘Before_you_start’的文件夹,按照里面的提示安装VirtualBox的驱动并设置好交换文件夹,虚拟机里面的Qiime就可以读取宿主机里面的文件了。

 进入Qiime工作流前测序原始数据的初步处理

针对illumina测序仪产生的数据可以参考Qiime官方文档

文档地址:http://qiime.org/tutorials/processing_illumina_data.html

 提取barcode序列

此项操作需要用到虚拟机中的Qiime。原始序列文件需要提前拷贝至Shared_Folder文件夹中。提取barcode序列是指将barcode序列从原始序列中提取出来,并生成barcodes.fastq文件,和其它对应的不包含barcode序列的fastq文件,为接下来的拼接操作做准备。

命令行代码:

extract_barcodes.py –input_type barcode_paired_end -m mapping_file.txt -a -f reads1.fastq -r reads2.fastq –bc1_len 6 –bc2_len 8 -o parsed_barcodes/

参数解释:

-f 正向读取的reads的路径

-r 反向读取的reads的路径

-m metadata文件的路径(文件中包含正向和反向引物信息)

-a 通过正向和反向引物来定位序列

 reads拼接

此项操作的目的在于将双向测序的reads通过overlap区域进行识别并组装成一条完整的序列,生成拼接完毕的fastq文件,用于后续分析。

命令行代码:

join_paired_ends.py -f raw_1.fq.gz -r raw_2.fq.gz -j 10 -p 10 -o /home/qiime/Desktop/fastq-join_joined

参数解释:

-f 正向测序的fastaq文件路径

-r 反向测序的fastaq文件路径

j  最小的overlap长度(用来识别两个read是否属于同一个序列)

-p 在overlap中不同所能容忍的最多不同碱基的百分比

-o 输出文件的路径

详细参数解析Qiime官方文档可见:

https://github.com/biocore/qiime/blob/master/doc/scripts/join_paired_ends.rst

 fasta文件拼接

由于测序公司提供的测序结果的fastaq文件根据样品分成了好几个,为了便于Qiime的后续处理,所以需要合并为一个文件。因此,我们调用Biopython包写了一个fastaq文件合并的脚本。源代码见附表3。

 割库

割库是指依据barcode文件将每一条序列归类到不同的样品中去,生成的文件是一个归类完毕的fasta格式序列文件,其中所有序列都有唯一编号和所属样品。这个操作需要制作一个metadata文件(格式见表2),这个文件也会在Qiime的后续分析中经常用到。

表2 metadata文件格式:

#SampleID BarcodeSequence LinkerPrimerSequence Description Treatment Description
CK1 CATTTTACTTGA GTGCCAGCMGCC CK1 CK CK
CK2 CATTTTGGCTAC GTGCCAGCMGCC CK2 CK CK
CK3 CATTTTGATCAG GTGCCAGCMGCC CK3 CK CK
OM1 CATTTTCAGATC GTGCCAGCMGCC OM1 OM OM
OM2 CATTTTGCCAAT GTGCCAGCMGCC OM2 OM OM
OM3 CATTTTTAGCTT GTGCCAGCMGCC OM3 OM OM

注:SampleID和BarcodeSequence是必须具备的参数,文件可以用表格软件(比如Excel)写入然后保存为txt格式,或者直接用文本编辑器(比如sublime)编辑,各段字符间用制表符隔开。

制作好的metadata文件再用validate_mapping_file.py脚本检测有无错误。

命令行代码:

validate_mapping_file.py -m Map_list.txt

脚本运行完毕后会生成validate_mapping_file_output,可根据提示修改metadata文件。

然后利用split_libraries_fastq.py进行割库操作。

命令行代码:

split_libraries_fastq.py -i reads.fastq -b barcodes.fastq -m Fasting_Map_list.txt –barcode_type 12 -q19 -o ./split_libraries_fastq

参数解释:

-i 不含barcode的序列文件路径

-b barcode序列文件路径

-m metadata文件路径

-q 质量控制参数。q19意为整条序列完全正确的概率大于99%(参考fastaq文件格式)

-o 输出序列路径

去除嵌合体序列

在微生物学中,嵌合体序列指在PCR扩增过程中产生的,母本来自两个或者两个以上的DNA序列。有时,扩增子可能会在完全完成之前过早终止,当PCR在下一个循环中再次检测到时,如果起始区域足够相似,则另外的DNA链可以附着在第一个离开的位置,并从该第二个亲本完成扩增子[17]。如果对该序列直接进行分类,而不检查嵌合状态,则可能将其作为新序列返回。这将给研究者一个假象,即他们发现了一个以前未知的生物体,实际上它只是两个以前分类的微生物的组合。这种序列需要在后续的数据分析中除去。

Qiime提供了去除嵌合体的脚本,但是脚本需要的usearch软件和嵌合体数据库需要自己下载,并添加到虚拟机的环境变量。

usearch 下载链接:http://www.drive5.com/usearch/download.html

“Gold fa” 嵌合体数据库下载链接:http://drive5.com/uchime/gold.fa

命令行代码:

identify_chimeric_seqs.py -i seqs.fna -m usearch61 -o ./usearch_checked_chimeras -r gold.fa

参数解释:

-i 输入序列路径

-o 输出文件路径

-r 嵌合体数据库文件路径

详细参数解析Qiime官方文档可见

运行完脚本后获得chimeras.txt,再利用filter_fasta.py将fna文件中,chimeras.txt文件中记录的嵌合体序列除去。

命令行代码:

filter_fasta.py -f seqs.fna -o seqs_chimeras_filtered.fna -s chimeras.txt -n

参数解释:

-f 输入序列文件路径

-o 输出文件路径

-s 嵌合体序列名单文件路径

-n 去除名单中的序列

当然嵌合体序列也可以利用其它软件和数据库完成譬如ChimeraSlayer和Silva数据库,或者已经比对好的序列。

 OTU聚类和数据的分析和可视化

OTU全称”operational taxonomic unit(可操作的分类单元)”是微生物多样性最常用的单位,在分析小亚基16S或18S rRNA标记基因序列数据集时经常会被使用到。序列可以根据它们彼此的相似性进行聚类,并且基于由研究者设置的相似性阈值(通常为97%相似性)来定义OTU。

Qiime可将生成的OTU信息存储在biom格式的文件中,并可以此为基础,进行下游分析和可视化操作。

 OTU聚类

Qiime提供三种OTU聚类的方式,分别包含在pick_de_novo_otus.py, pick_closed_refer ence_otus.py和pick_open_reference_otus.py三个脚本中。pick_de_novo_otus.py指在没有参考序列数据库的情况下产生新的OTU,pick_closed_refer ence_otus.py指根据参考序列数据库生成OTU,pick_open_reference_otus.py指先根据参考序列数据库生成OTU,没有匹配到参考序列的序列再用de_novo的方式产生新的OTU[18]

如果16s rRNA基因测序区段是V2和V4的话就必须采用pick_closed_refer ence_otus.py脚本,在本项研究中正是这种情况,因此采用Silva的数据库。

Qiime可用的Silva数据库的下载链接:

https://www.arb-silva.de/no_cache/download/archive/qiime/

下载到本地并解压后即可直接调用

命令行代码:

pick_closed_reference_otus.py -i seqs_chimeras_filtered.fna -o ./OTUS -r ./silva16s/97_otus_16S.fasta -t ./silva16s/consensus_taxonomy_7_levels.txt

参数解释:

-i 输入序列路径

-o 输出biom表的路径

-r 参考数据库序列文件路径

-t 参考数据库分类信息文件路径

 OTU聚类和系统发育树的可视化

Qiime自身提供了OTU分类信息可视化脚本

命令行代码:

summarize_taxa_through_plots.py -i new.biom -o taxa_summary -m Map_list.txt

参数解释:

-i 输入biom文件的路径

-o 输出文件的路径

-m metadata文件的路径

summarize_taxa_through_plots.py脚本根据不同的分类等级,对不同种类的微生物的丰度进行可视化,界(Kingdom)、门(Phylum)、纲(Class)、目(Order)、科(Family)、属(Genus)分别对应level_0-level_5。生成的在门水平上的不同种类微生物丰度柱状图见附图1。

Qiime产生的biom文件可以转化成csv格式,从而便于其它软件(比如Excel)直接打开和修改,csv文件也可以直接使用pandas读取。

命令行代码:

biom convert -i otu_table.biom -o all_table.from_biom_w_taxonomy.csv –to-tsv –header-key taxonomy

参数解释:

-i 输入的biom文件路径

-o 输出的csv文件的路径

–to-tsv 转化为csv文件

–header-key 要保留的OTU属性,这里保留的是分类信息

Qiime也提供了系统发育树文件的过滤脚本。filter_tree.py脚本可根据提供的OTU id或者序列id保留或者删除系统发育树的leaf(叶片)。

命令行脚本:

filter_tree.py -i rep_seqs.tre -t tips_to_keep.txt -o pruned.tre

参数解释:

-i 输入系统发育树文件的路径

-t 记录有OTU id或者序列id的文本文件路径

-o 输出系统发育树文件的路径

我们也可以自行更改系统发育树文件中leaf的名称,在这里我们使用了Biopython包来将原来树文件中的OTU id替换成第四级分类(目)上的名称,源代码见附表4,附图2为利用FigTree软件对修改后的tree文件进行可视化和美化操作后生成的图片。

FigTree下载链接:

http://tree.bio.ed.ac.uk/software/figtree/

接下来我们采用pandas包来读取csv文件,采用ETE tookit读取系统发育树文件,进而生成基于系统发育树的OTU聚类热图,见附图3,源代码见附表5。

 多样性分析

α-多样性分析

α-多样性在这里指样本内的多样性,多样性指数越高,说明该样本的微生物种群多样性越高[19]。在Qiime中,可使用alpha_rarefaction.py生成稀疏曲线,进而比较不同处理间的α-多样性的差异。

命令行代码:

alpha_rarefaction.py -i new.biom -o arare_max100/ -t ../silva16s/97_otus.tre -m Map_list.txt -e 100

参数解释:

-i 输入biom文件的路径

-o 输出稀疏曲线文件的路径

-t 系统发育树的路径

-m metadata文件路径

-e 抽样的最大OTU个数

 β-多样性分析

β-多样性在这里指样本之间的微生物群落组成的差异[19]。Qiime提供了beta_diversity_through_plots.py脚本,其作用在于,各样本分别再抽样,并计算各样本再抽样的样本之间的距离矩阵,从而进行PCoA(主成因)分析,生成PCoA图,进而观测β-多样性。

Qiime还提供了jackknifed_beta_diversity.py脚本,他和前者的区别在于,jackknifed_beta_diversity.py多次重复地再抽样,从而能够在PCoA图上生成样点的置信区域。这样能够测试分析结果的健壮性。

两个脚本的使用方法基本相同。

命令行代码:

beta_diversity_through_plots.py -i new.biom -o bdiv_even100 -t 97_otus.tre -m Map_list.txt -e 100

参数解释:

-i 输入biom文件的路径

-o 输出文件路径

-t 系统发育树文件路径

-m metadata路径

-e 抽样深度,即再抽样的序列个数

赞(4)
转载请联系:superxyz@qq.vip.com南农肥料网 » Qiime使用教程

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

南农肥料网,为您提供最贴心的服务

欢迎关注知乎主页欢迎关注github主页