扩增子分析软件QIIME2 必知必会
扩增子一站式分析平台QIIME
2018年1月QIIME2全面接档QIIME1
极简操作
source activate qiime2
qiime tools import --type 'SampleData[PairedEndSequencesWithQuality]' --input-path ../test-paired-end-demultiplexed --source-format CasavaOneEightSingleLanePerSampleDirFmt --output-path demux-paired-end.qza
qiime dada2 denoise-paired --i-demultiplexed-seqs demux-paired-end.qza --o-table table.qza --o-representative-sequences rep-seqs-dada2.qza --p-trim-left-f 0 --p-trim-left-r 0 --p-trunc-len-f 220 --p-trunc-len-r 220
qiime feature-table summarize --i-table table.qza --o-visualization table.qzv
mkdir tableqzv
qiime tools export table.qzv --output-dir tableqzv
mkdir rep-seqs-dada2qza
qiime tools export rep-seqs-dada2.qza --output-dir rep-seqs-dada2qza
source deactivate
QIIME2是微生物组分析流程QIIME的全新版,采用Python3全新编写
- 更易于安装:QIIME2引入了Miniconda软件包管理器,没有管理员权限也可以轻松安装;同时发布了docker镜像,下载即可运行
- 分析流程化:分析流程更加标准化,不让用户盲然下面该做什么;
- 可视化增强:QIIME后发制人,超越引用6964次的mothur流程,就是其可视化方面的优势,现可视化结果更加漂亮,且全新采用交互式图形结果,点选可查看细节,更易于分析
- 方便合作:项目很少一个组可完成,多人多地结果图表方便共享,适合当下科研合作的需求
- 可扩展:支持自定义功能并加入分析流程;高手可以自己写包,加入QIIME2的流程中
- 分析可重复:全新定义了文件系统,即包括分析数据、也包括分析过程和结果,每一步的结果,均可追溯全部分析过程,方便检查和重复
qiime
Usage: qiime [OPTIONS] COMMAND [ARGS]...
QIIME 2 command-line interface (q2cli)
--------------------------------------
To get help with QIIME 2, visit https://qiime2.org.
To enable tab completion in Bash, run the following command or add it to
your .bashrc/.bash_profile:
source tab-qiime
To enable tab completion in ZSH, run the following commands or add them to
your .zshrc:
autoload bashcompinit && bashcompinit && source tab-qiime
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
info Display information about current deployment.#info: qiime info --citations获得版本和引用信息
tools Tools for working with QIIME 2 files
dev Utilities for developers and advanced users.
alignment Plugin for generating and manipulating alignments. #alignment 比对
composition Plugin for compositional data analysis.
dada2 Plugin for sequence quality control with DADA2. #聚类
deblur Plugin for sequence quality control with Deblur.#聚类
demux Plugin for demultiplexing & viewing sequence quality.#demux 拆分样品,结果统计
diversity Plugin for exploring community diversity.#diversity 群落多样性
emperor Plugin for ordination plotting with Emperor.#emperor 绘制排序图
feature-classifier Plugin for taxonomic classification.# 物种分类
feature-table Plugin for working with sample by feature tables.#特征表格
gneiss Plugin for building compositional models.#建模
longitudinal Plugin for paired sample and time series analyses.#成对样品和时间序列分析
metadata Plugin for working with Metadata.# 元数据
phylogeny Plugin for generating and manipulating phylogenies.#多重比对构树
quality-control Plugin for quality control of feature and sequence data.#质量控制
quality-filter Plugin for PHRED-based filtering and trimming.#质量过滤
sample-classifier Plugin for machine learning prediction of sample metadata.#机器学习预测样品数据
taxa Plugin for working with feature taxonomy annotations.#注释
vsearch Plugin for clustering and dereplicating with vsearch.# 去冗余
QIIME2 数据管理
- 1数据文件:人工产品(artifacts)
.qza是分析过程文件,包含原始数据,分析过程和结果,保证了文件格式的标准,可重复分析 - 2数据文件:可视化(visualizations)
.qzv 与qza文件类似,包括分析方法和结果,方便追溯图表的产生,它是分析的终点,不会再流程汇总继续分析。结果包括表格,交互图像,静态图像https://view.qiime2.org/可查看 - 3 语义类型(Semantic types)
每步分析都会产生qza文件,都会有相应的语义类型,避免用户不合理的分析过程(用未标准化的OTU表进行多样性分析) - 数据导入
QIIME2使用了标准文件格式qza和qzv,分别是数据文件和统计图表文件;目的是统一文件格式,方便追溯分析过程。最典型的导入数据,是原始测序数据的导入。实际上,我们可以从分析的任何一步导入数据,继续分析。比如合作者提供了biom格式的OTU表,我们可以导入,并进行下游的统计分析。 - 数据导出
命令: qiime tools export feature-table.qza --output-dir exported-feature-table
export 命令可以导出过程文件qza和qzv的数据
extract 命令不只可以到导出过程文件qza和qzv的数据,还包括生成此文件的相关软件版本,以及步骤的说明
元数据
元数据是实验设计的描述信息表或统计结果,是分析原始数据必须的基本信息。
元数据是从原始数据中获得生物学发现的关键。在QIIME2中,样品的元数据包括技术细节,如DNA条形码用于区分样品、样品描述,如分类、时间点、取样部分等。对于特征表(Feature,原称OTU)的元数据,一般为特征的注释信息,如物种分类信息。样品和特征表的元数据在QIIME2中很多步分析需要使用。
DADA2与deblur 降噪软件
DADA2
DADA2是R的一个软件包,可以进行过滤,去重,嵌合体过滤,reads的拼接,可以修正扩增子的测序错误,确定更多的真实变异。扩增子测序本身就具有内在的限制,但是聚类OTU的方式进一步限制了它的发展。OTU不是物种,它们不应该成为错误的一部分,DADA2可以具有更高的分辨率
DADA(Divisive Amplicon Denoising Algorithm)含义为区分扩增子降噪方程
可以确定真实的变异在454测序扩增子数据输出更少的假阳性。DADA2是DADA的扩展和增强可以应用于Illumina测序数据
- 特点:DADA2最重要的优势是它用了更多的数据。DADA2的错误模型包含了质量信息,而其他的方法都在过滤低质量之后把序列的质量信息忽略。而且DADA2的错误模型也包括了定量的丰度,而且该模型也计算了各种不同转置的概率A->C。而且DADA2以自身数据的错误模型为参数,不用依赖于其他参数分布模型。
DADA2算法:
一种分裂式分割算法
- 1首先将每个reads全部看作单独的单元,Sequence相同的reads被纳入
一个sequence,reads个数即成为该sequence的丰度(abundance)
(其实就是去冗余的过程) - 2计算每个sequence丰度的p-value。当最小的p-value低于设定的阈值时,
将产生一个新的partition。每一个sequence将会被归入最可能生成该
sequence的partition。 - 3 依次类推,完成分割归并。
DADA2与UPARSE,MED(也是一种高分辨率的发现Illumina测序错误的方法)的比较
三个测试数据集
balanced和HMP,Extreme是三种模拟的数据集,
汉明距离
虚线表示,3%聚类的汉明距离
在较低的分辨率时,DADA2有更好的表现,蓝色表示新增加的物种,黑色表示一致的物种
DADA2可以更精确的区分物种,输出更少的错误序列,更有利于下游多样性和差异性分析
Deblur 快速解决单核苷酸群落模式
PCR和测序过程中的噪音限制了区分更相近的物种。传统的聚类OTU的方法也是一种克服测序错误的方式,但是需要人为的设定cutoff的一致性,但是这种方法也降低了分类的精确性。 临床,食品安全,特殊的生态应用需要更精确的物种区分。此外这种方法合并数据进行分析时需要重新进行聚类。Deblur方法提出了sub-operational-taxonomic-unit (sOTU) 提出更精确的分类亚OTU的概念。
- 特点:通过降噪提高了精确性和敏感性,同时减少计算需求。
提出了一个核苷酸对就可以区分的分类水平
可以针对单个样品水平。适合大规模的测序数据比较容易整合多批次的测序样品
Deblur 可以去除假阳性 受到序列长度和多样性的限制
Deblur算法步骤:
- 1 序列按丰度从大到小排序
- 2 根据上界错误率和计算的汉明距离,从序列中抽取被认定为错误的序列
-
3 当某个sequence的reads频次降到0时,该sequence即被删除
Deblur和DADA2进行了稳定性的比较
稳定性从不同的样品中发现相同sOTU(牵涉到要整合各个时期的数据)
40个粪便样品用Miseq不同的run测了两次
(B)对鉴定出来的 unique sOTU进行处理,与NCBI的NR/nt库进行比较。在两种不同方式中的misatch中的比例,在Deblur中,在DADA2中出现,在两种方法中都出现
(C)对鉴定出来的 unique sOTU进行处理,相同的情况,列表示的是不同的种属和地理位置,Deblur的丰度分布模式和真实情况更相似
(D)是三种方法所用的时间
物种注释与分类
通过将我们的查询序列(即,我们的特征,无论是ASV还是OTU)与具有已知分类组成的序列的参考数据库进行比较来实现物种注释。 简单地找到最接近的比对并不是很好 , 因为其他序列同样接近匹配或几乎接近可能具有不同的分类学注释。 因此,我们使用分类学分类来确定最接近的分类学归属,具有某种程度的置信度或共识(如果无法确定地预测,则可能不是物种名称!),基于比对k-mer频率等。 在QIIME 2中学习更多关于分类学分类的知识可以阅读。
q2-feature-classifier包含三种不同的分类方法。 classify-consensus-blast和classify-consensus-vsearch都是基于对齐的方法,可以在N top hits找到合适的注释信息。 这些方法直接参考数据库FeatureData [Taxonomy]和FeatureData [Sequence]文件,不需要预先训练。
根据您的特定样品制备和测序参数(包括用于扩增的引物和序列读数的长度),分类分类器在进行培训时表现最佳。 因此,一般来说,您应该按照训练要素分类器中的说明使用q2-feature-classifier来训练您自己的分类学分类器(例如,来自下面的标记基因参考数据库)。
Qiita提供对许多公共微生物组数据集的访问。 如果您正在寻找用于测试或荟萃分析的微生物组数据,那么Qiita是一个很好的起点。
基于机器学习的分类方法可通过classify-sklearn获得,理论上可以应用scikit-learn中可用的任何分类方法。 必须训练这些分类器,例如,以了解哪些特征最佳地区分每个分类群,为分类过程增加额外的步骤。 分类器训练是参考数据库和标记基因特异性的,每个标记基因/参考数据库组合只需要进行一次; 然后可以根据需要重复使用该分类器,而无需重新训练!
大多数用户甚至不需要遵循该教程并执行该培训步骤,因为可爱的QIIME 2开发人员提供了几种预先训练好的分类器供公众使用
哪种方法最好? 它们都非常好,否则我们不会在这里暴露它们。 😎但一般来说,使用Naive Bayes分类器的classify-sklearn可以略微优于我们根据16S rRNA基因和真菌ITS序列分类的几个标准测试的其他方法。 然而,对于一些用户来说,这可能更困难和令人沮丧,因为它需要额外的训练步骤。 该训练步骤可能是内存密集型的,成为一些无法使用预训练分类器的用户的障碍。 一些用户还喜欢基于对齐的方法,因为他们的操作模式更加透明,其参数更易于操作(有关这些参数的说明和不同应用程序的推荐设置,请参Optimizing taxonomic classification of marker-gene amplicon sequences with QIIME 2’s q2-feature-classifier plugin)。
特征分类可能很慢。 这完全取决于您拥有的序列数量和参考序列的数量。 OTU聚类序列将需要更长的时间进行分类(因为通常还有更多)。 在分类之前过滤序列文件中的低丰度特征,如果您对运行时有疑虑,请尽可能使用较小的参考数据库。 在实践中,在“正常大小”的测序实验中(无论是什么意思😜),我们会看到几分钟(几百个特征)到几个小时(几十万个特征)之间的差异,以便完成分类。 如果你想在那里挂一些数字,请查看我们的分类器运行时性能基准。
功能分类可能是内存密集型的。 我们通常看到最小4 GB RAM,最多需要32 GB。 这一切都取决于参考序列的大小,它们的长度和查询序列的数量......
使用classify-sklearn的示例显示在要素分类器教程和动态图片教程中。 分类法流程图应该使其他分类器方法合理清晰。
所有分类器都会生成FeatureData [Taxonomy]工件,其中包含每个查询序列的分类法分类列表。
想要查看哪些序列和分类分配与每个功能ID相关联? 使用qiime元数据制表将FeatureData [Taxonomy]和FeatureData [Sequence]工件作为输入。
以下是具有FeatureData [Taxonomy]工件的主要操作:
- 1.Collapse your feature table with taxa collapse! 这会将共享相同分类分配的所有功能合并到一个功能中。 该分类分配成为新要素表中的要素ID。 此功能表可以与原始功能表相同的方式使用。 一些用户可能特别感兴趣于执行例如分类法知识的多样性分析,但至少任何分配分类法的人都可能对测试这些分类群的差异丰度感兴趣。 使用分类群作为特征与使用ASV或OTU作为特征进行差异丰度分析比较可以为各种分析提供诊断和信息.
- 绘制您的分类组成,以查看每个样本中各种类群的丰富程度。 查看分类群条形图和功能表热图以获取更多详细信息
- 过滤特征表和代表性序列(FeatureData [序列]工件)以删除某些分类组。 这对于去除已知的污染物或非目标基团是有用的,例如包括线粒体或叶绿体序列的宿主DNA。 它也可用于关注特定组以进行更深入的分析。 有关更多详细信息和示例,请参阅过滤教程.
QIIME2核心概念
- 数据文件: 人工产品 (artifacts)
QIIME2为了使分析流程标准化,分析过程可重复,制定了统一的分析过程文件格式.qza
;qza文件类似于一个封闭的系统,里面包括原始数据、分析的过程和结果;这样保证了文件格式的标准,同时可以追溯每一步的分析,以及图表绘制参数。这一方案为实现将来可重复的分析提供了基础。比如文章投稿,同时提供分析过程的文件,别人可以直接学习或重复实验结果。 - 数据文件:可视化(visualizations)
QIIME2生成的图表结果文件类型,以.qzv
为扩展名,末尾的v代表visual;它同qza文件类似,包括分析方法和结果,方便追溯图表是如何产生的;唯一与qza不同的,它是分析的终点,即结果的呈现,不会在流程中继续分析。可视化的结果包括统计结果表格、交互式图像、静态图片及其它组合的可视化呈现。这类文件可以使用QIIME2qiime tools view
命令查看,不安装程序也可在线 https://view.qiime2.org/ 168 导入显示; - 语义类型(Semantic types)
QIIME2每步分析中产生的qza文件,都有相应的语义类型,以便程序识别和分析,也避免用户引入不合理的分析过程(如使用末标准化的OTU表进行多样性分析)。了解分析各步的结果,才能对分析有更深入和全面的认识。 - 插件(Plugins)
QIIME2中的某个特定功能即为插件,比如拆分样品、Alpha多样性分析等。插件每个人都可以开发,系列已经由社区开发了标准化分析的插件,其他用户按其标准开发的特定分析,并可与团队联系发布,或整合入平台。 - 方法和可视化
方法是对QIIME2定义的输入格式进行操作的过程,并产生标准格式的输出,以方便后续分析,输入和输出均为qza文件;可视化是对定义的标准输入,产生统计表格或可视化图形,方便用户解读,输入为qza格式,输出为qzv,文件不仅包括结果,还包括处理的分析命令和参数,方便重复和检查分析过程是否准确。
常用的语义类型semantic types
FeatureTable[Frequency]: 频率,即Feature表(OTU表),为每个样品中对应OTU出现频率的表格
FeatureTable[RelativeFrequency]: 相对频率,OTU表标准化为百分比的相度丰度
FeatureTable[PresenceAbsence]: OTU有无表,显示样本中某个OTU有或无的表格
FeatureTable[Composition]: 组成表,每个样品中OTU的频率
Phylogeny[Rooted]: 有根进化树
Phylogeny[Unrooted]: 无根进化树
DistanceMatrix: 距离矩阵
PCoAResults: 主成分分析结果
SampleData[AlphaDiversity]: Alpha多样性结果,来自样本自身的分析
SampleData[SequencesWithQuality]: 带质量的序列,要求有质量值,要求序列名称与样品存在对应关系,如为按样品拆分后的数据格式
SampleData[PairedEndSequencesWithQuality]: 成对的带质量序列,要求序列ID与样品编号存在对应关系;
FeatureData[Taxonomy]: 每一个OTU/Feature的分类学信息
FeatureData[Sequence]: 代表性序列
FeatureData[AlignedSequence]: 代表性序列进行多序列比对的结果
FeatureData[PairedEndSequence]: 双端序列进行聚类或去噪后,分类好的OTU或Feature
EMPSingleEndSequences: 采用地球微生物组计划标准实验方法产生的单端测序数据;
EMPPairedEndSequences: 采用地球微生物组计划标准实验方法产生的双端测序数据;
TaxonomicClassifier: 用于物种注释的分类软件
参考:
QIIME2官网
QIIME2中文帮助文档 (Chinese Manual)
扩增子分析QIIME2. 2分析实战Moving Pictures
Nature综述:Rob Knight等大佬手把手教你开展菌群研究
Overview of QIIME 2 Plugin Workflows
Official QIIME workshops
silva|qiime