woodcorpse的个人博客分享 http://blog.sciencenet.cn/u/woodcorpse

博文

扩增子分析QIIME2. 1简介和安装

已有 16955 次阅读 2017-7-21 07:12 |个人分类:QIIME2|系统分类:科研笔记

[TOC]

扩增子分析QIIME2. 1简介和安装

QIIME2版本 2018.6

更新时间:2018年8月14日

image

声明:本文为QIIME2官方帮助文档的中文版,由中科院遗传发育所刘永鑫博士翻译并测试有效,文档翻译己获QIIME2团队官方授权。由于QIIME2更新频繁,如使用中遇到问题请访问QIIME2官方论坛阅读最新版中文帮助。  

中文帮助链接:https://forum.qiime2.org/t/qiime2-1-chinese-manual/838
如中文翻译没有急时更新,新阅读英文原版 https://docs.qiime2.org

本人只习惯使用命令行模式分析数据,图形界面和Ipython模式下使用暂不介绍。本系列的教程主要以命令行方式为大家演示。在其它方面有使用的经验的朋友,欢迎共享您的使用笔记发布于“宏基因组”公众号,方便大家学习和使用。

简介

QIIME2是微生物组分析流程QIIME(截止18.8.14被引11727次)的全新版(不是升级版),采用python3全新编写,并于2018年1月全面接档QIIME,是代表末来(可重复计算)的分析方法标准(大牛们制定方法标准,我们跟着用就好了)。

优点

  1. 更易于安装:曾经QIIME的安装让无数生信人竞折腰,QIIME2引入了Miniconda软件包管理器,没有管理员权限也可以轻松安装;同时发布了docker镜像,下载即可运行;
  2. 使用方法多样:支持命令行模式(q2cli),也支持图型用户界面q2studio;还有Python用户喜欢的Artifact API(类似IPython notebook);
  3. 分析流程标准化:分析流程更加标准化、全程序记录和可重复,不让用户盲然下面该做什么,更方便查看已分析的记录;
  4. 可视化增强:QIIME后发制人,超越引用9080次的mothur流程,就是其可视化方面的优势,现可视化结果更加方便和漂亮,且全新采用交互式图形结果,点选可查看细节,更易于分析;
  5. 方便合作:项目很少一个组可完成,多人多地结果图表方便共享,适合当下科研合作的需求;
  6. 可扩展:支持自定义功能并加入分析流程;高手可以自己写包,加入QIIME2的流程中了;
  7. 分析可重复:全新定义了文件系统,即包括分析数据、也包括分析过程和结果,每一步的结果,均可追溯全部分析过程,方便检查和重复。

学习思路

Getting started

扩增子分析是一个即复杂、又成熟的领域。复杂是指它的分析种类、方法、步骤特别多,初学者会感到压迫感,但只要肯花几天时间还是可以轻松上手的,再经过几个月的练习和实践,很快很成为领域内的技术小达人,相对于国内5-8年的硕博生涯,如果课题涉及扩增子分析,还是值得投入时间学习的。

本指南将帮助你学习必备的知识,来完成理解、安装和使用QIIME 2,并实现分析你自己的微生物组数据。

下面是学习的顺序:

  1. 先熟悉QIIME2的核心概念
  2. 安装QIIME2
  3. 通篇跟着QIIME2教程完成微生物组分析。推荐先学习概述(trand overview)人体运动图像(Moving Pictures)的教程,接下来再学习粪菌移植(FMT study)沙漠土壤(Atacama Desert soils)分析教程。
  4. 最后可以尝试不同的工作界面,QIIME 2运行多种用户界面,之前你使用的是q2cli的命令行模型。可以查看interfaces文档了解不同的工作界面。例如,喜欢使用图型界面的用户,可以使用QIIME2 Studio;喜欢Python3 Jupyter Notebook的用户可选Artifact API界面。

什么是QIIME 2?

What is QIIME 2?

QIIME 2是一款强大、可扩展和去中心化的微生物组分析包,强调数据分析透明。QIIME 2可以使研究者从原始DNA序列开始分析,直接获取出版级的统计和图片结果。

主要特点:

  • 整合分析流程、自动化追踪数据来源
  • 语义类型系统,自动识别输入文件类型
  • 插件系统可扩展微生物分析种类
  • 支持多种用户界面,如API、命令行、图型

QIIME 2是对QIIME 1完全重新设计并重写的微生物组分析流程。QIIME 2保留了QIIME 1强大和广泛使用的优点,同时改进了其众多不足之处。

QIIME 2当前支持从最初的端对端的微生物组分析流程。通常QIIME 2插件功能,不断有新功能可用。可以在可用插件列表中查找当前要用的插件。在未来插件页列出了正在开发的插件。

核心概念

Core concepts

本页面描述几个QIIME 2的核心概念,在软件使用前有必要理解这些概念。帮助文档最后的词汇表(附录2),也有助于你理解本网站的内容。

基本概念的学习信息量较大,为方便同行快速上手,可直接进行下面的软件安装和接下来的数据分析。

学习中有疑问和不懂的词,请跳至文本附录1学习核心概念,附录2学习专业词汇,扫清学习中新词和概念的障碍。

安装

有多种安装方法,有Linux服务器的伙伴推荐使用Conda安装,想在windows笔记本上体验的朋友可使用Virtualbox虚拟机安装并学习。其它情况根据自己的环境选择以下方法其一即可。

原生安装QIIME2

Natively installing QIIME 2

Miniconda软件包管理器安装(需要有Linux服务器,但无需管理员权限)提供的conda命令,可以快速安装QIIME 2程序和相关插件。

本人测试采用Miniconda3安装QIIME 2于Ubuntu 16.04,这也是官方推荐的方法,确实非常简单。

安装miniconda3

miniconda3官网:https://conda.io/miniconda.html

# 下载最新版miniconda3
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 添加可执行权限
chmod +x Miniconda3-latest-Linux-x86_64.sh
# 运行安装程序
./Miniconda3-latest-Linux-x86_64.sh

按安装过程中提示操作:回车查看许可协议,空格翻页,输入yes同意许可;默认安装目录为你的家目录下~/miniconda3目录,可回车确认使用此目录;我个人习惯修改为~/conda更简洁);安装结束时提示是否添加至你的环境变量~/.bashrc,这里我选no。

原因如下:选yes可直接将conda3环境加入环境变量的最高优先级,使用方便,但Python3变为默认环境,破坏你之前依赖Python2的软件环境。而选no不添加保证之前软件安装环境不变,但运行conda及相关程序时,需要运行一条命令临时添加~/conda/bin目录至环境变量,或使用绝对路径。

以后想要使用conda,需要运行如下命令将conda临时添加环境变量

export PATH=~/conda/bin:$PATH

如果你刚才同意添加环境变量,完成后关闭当前终端,新打开一个终端继续操作才能生效。

升级conda为最新版:新版的bug最少,碰到问题的机率也小

# 升级conda程序
conda update conda
# 安装下载工具
conda install wget

提示是否安装时,点y,再回车可完成安装。

安装qiime2-2018.6

Linux(64-bit)版本

# 下载软件安装列表
wget https://data.qiime2.org/distro/core/qiime2-2018.6-py35-linux-conda.yml
# 创建虚拟环境并安装qiime2,防止影响其它己安装软件
conda env create -n qiime2-2018.6 --file qiime2-2018.6-py35-linux-conda.yml
# 删除软件列表
rm qiime2-2018.6-py35-linux-conda.yml

下载安装所有依赖关系,时间主要由网速决定,我第一次安装1个多小时还中断了。再重试是可以继续末完成的任务,很快就成功了。

激活工作环境,需要几十秒,命令如下:

source activate qiime2-2018.6

检查是否安装成功,弹出程序帮助即成功

qiime --help

QIIME 2运行成功,显示如下帮助信息:

IIME is caching your current deployment for improved performance. This may take a few moments and should only happen once per deployment.
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.
  tools               Tools for working with QIIME 2 files.
  dev                 Utilities for developers and advanced users.
  alignment           Plugin for generating and manipulating alignments.
  composition         Plugin for compositional data analysis.
  cutadapt            Plugin for removing adapter sequences, primers, and
                      other unwanted sequence from sequence data.
  dada2               Plugin for sequence quality control with DADA2.
  deblur              Plugin for sequence quality control with Deblur.
  demux               Plugin for demultiplexing & viewing sequence quality.
  diversity           Plugin for exploring community diversity.
  emperor             Plugin for ordination plotting with 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.

关闭工作环境

source deactivate

当前为Python3工作环境,不用QIIME 2时关闭环境,不然你其它程序运行可能会出错

虚拟机安装

使用VirtualBox方式安装

https://docs.qiime2.org/2018.6/install/virtual/virtualbox/

Virutalbox是一款强大的虚拟机,可以在Windows/Linux/Mac平台运行,并加载制作好的系统镜像运行。适合Windows配置较高的台式机、笔记本学习QIIME 2使用。

主要步骤:

  1. https://www.virtualbox.org下载你系统对应的virtualbox并安装;
  2. 下载QIIME2镜像 https://data.qiime2.org/distro/core/2018.6 ,大小5.4GB;
  3. 解压下载的QIIME2镜像压缩包;
  4. 双击压缩包中的镜像文件QIIME 2 Core - X.Y.Z (build_number).ovf,按提示导入镜像。
  5. 启动虚拟机,进入基于Ubuntu系统的QIIME 2工作环境;
  6. 菜单中安装Guest Additions,获取加载目录功能,并设置共享目录用于读取外部数据。

详细图文教程见官方:https://docs.qiime2.org/2018.6/install/virtual/virtualbox/

中文Virutal box使用教程详见 “宏基因组”公众号:《扩增子分析QIIME. 1虚拟机安装配置及挂载外部目录》

亚马逊云安装

Installing QIIME 2 using Amazon Web Services

我没有亚马逊云的测试平台,有需要的用户,详见官方说明:
https://docs.qiime2.org/2018.6/install/virtual/aws/

使用Docker方式安装

Installing QIIME 2 using Docker

  1. 安装Docker,详见 https://www.docker.com ,Linux可能需要管理员权限

我比较喜欢使用docker,直接下载预配置好的系统使用,对本地系统无影响

Dokcer的基本操作请查看宏基因组公众号的教程《扩增子分析流程2.使用Docker运行QIIME》,或后台回复docker;

  1. 下载QIIME 2镜像

需要下载3Gb的镜像数据,我下载了1小时。

docker pull qiime2/core:2018.6
  1. 确定安装是否成功

运行QIIME2 docker

docker run -t -i -v $(pwd):/data qiime2/core:2018.6 qiime
# 启动docker命令行,挂载当前目录至虚拟机中/data目录,运行qiime测试

# 进入镜像分析数据,并挂载当前目录
docker run --rm -v $(pwd):/data --name=qiime -it  qiime2/core:2018.6
这就相当于打开了一个软件工作环境,目录/data为当前工作目录,可方便分析数据

QIIME 2 2018.6版本核心插件

QIIME 2 2018.6版本默认安装包括q2cli的命令行分析工作环境和如下插件:

  • q2-alignment
  • q2-composition
  • q2-cutadapt
  • q2-dada2
  • q2-deblur
  • q2-demux
  • q2-diversity
  • q2-emperor
  • q2-feature-classifier
  • q2-feature-table
  • q2-gneiss
  • q2-longitudinal
  • q2-metadata
  • q2-phylogeny
  • q2-quality-control
  • q2-quality-filter
  • q2-sample-classifier
  • q2-taxa
  • q2-types
  • q2-vsearch

附1. 核心概念

https://docs.qiime2.org/2018.6/concepts/

想要深入理解QIIME2的分析过程,QIIME定义的核心概念需要了解一下。

数据文件: QIIME 2文件

Data files: QIIME 2 artifacts

QIIME2为了使分析流程标准化,分析过程可重复,制定了统一的分析过程文件格式.qza;qza文件类似于一个封闭的系统,里面包括原始数据、分析的过程和结果;这样保证了文件格式的标准,同时可以追溯每一步的分析,以及图表绘制参数。这一方案为实现将来可重复的分析提供了基础。比如文章投稿,同时提供分析过程的文件,别人可以直接学习或重复实验结果。

由QIIME 2产生的数据类型,叫QIIME 2文件(artifacts),它包括数据和元数据(metadata/样本信息)。元数据描述数据,包括类型、格式和它如何产生。典型的扩展名为.qza

QIIME 2采用工件代替数据文件(如fasta文件),因此分析者必须导入数据来创建QIIME 2文件。虽然典型的分析是从原始数据开始导入QIIME 2,但你可以在分析的任何步骤导入数据。QIIME 2也有工具可以从QIIME2文件中导出数据,详见导出(importing)章节。

使用QIIME2文件代替简单的数据,可以自动追踪文件类型、格式和分析过程。使用QIIME 2文件,研究者可以专注于分析,而无需考虑过程中的各种数据类型。

QIIME2文件追溯数据是如何产生的,可以查看之前的分析过程,每步使用的输入数据。这种自动化、综合和去中心化的跟踪数据,可以使研究者保存QIIME2文件,发送给合作者,也可以准确知道它的分析步骤。这样使分析过程可重复,可学习,也可以产生在方法中使用的文本和图表。追溯支持和鼓励产生QIIME2文件使用适合的属性(如FastTree构建系统发生树).

注意:我们已经注意到使用artifact一词可能产生混淆,因为生物学家通常理解的意思为实验偏差的来源。我们这里artifact的意思是指被多步处理的对象,有点像考古学中的文物。在我们的文档和其它教材中,我们要清楚这里说明的QIIME2文件(artifact)的含义。

数据文件:可视化

Data files: visualizations

QIIME2生成的图表结果文件类型,以.qzv为扩展名,末尾的v代表visual;它同qza文件类似,包括分析方法和结果,方便追溯图表是如何产生的;唯一与qza不同的,它是分析的终点,即结果的呈现,不会在流程中继续分析。可视化的结果包括统计结果表格、交互式图像、静态图片及其它组合的可视化呈现。这类文件可以使用QIIME2 qiime tools view命令查看。

提示:不安装QIIME2程序也可在线 https://view.qiime2.org/ 导入文件并显示结果图文,同时可查看数据分析过程;这将方便与不使用QIIME 2的合作者分享结果。

语义类型

Semantic types

QIIME2每步分析中产生的qza文件,都有相应的语义类型,以便程序识别和分析。例如,分析期望的输入是距离矩阵,QIIME2可以决定那个文件拥有距离矩阵的语言类型,以防上不合理的输入文件进行分析(如一个QIIME2文件代表的是系统发生树)。

语言义烦了也帮助用户避免引入不合理的分析过程。例如,一个特征表(feature table)包括有、无的数据(1代表OTU观察到1次,0代表没有)。然而,当它作为输入计算权重的UniFrac,可计算成功,但结果无意义。

了解分析各步的结果,才能对分析有更深入和全面的认识。查看语义类型页,查看所有支持的语义类型

插件

Plugins

QIIME2中的用户的某个特定功能即为插件,你可以安装并完成分析,比如拆分样品的q2-demux插件、Alpha-或beta-多样性分析的q2-diversity插件等。

插件是软件包,每个人都可以开发。QIIME 2团队已经开完了端到端的微生物组分析流程,也鼓励第三方工具作为插件来提供额外的分析。QIIME 2社区开发了标准化分析的插件的开发,其他用户按其标准开发的特定分析,并可与团队联系发布,或整合入平台。这种去中心化的方法,可以使最新的技术、方法快速部署于QIIME 2平台中,方便QIIME 2有用户。插件也允许用户为某种特定需求选择、自定义分析流程。

检查可用插件页面,查看当前可用的插件。查看未来插件页,查看正开发的功能。

方法和可视化

Methods and visualizers

QIIME 2插件定义的用于进行分析的方法和可视化工具类型。

方法是对QIIME2定义的输入格式进行操作的过程,包括命令和参数,并产生1个或多个标准格式的输出。这一结果可以后续分析或可视化,产生中间或末端的输出。例如rarefy方法,输入文件为q2-feature-table插件产生的特征表,输出文件为样本深度一致的特征表。它可以作为输入文件,用于alpha多样性分析中的q2-diversity方法。输入和输出均为qza文件;

可视化是对定义的标准输入,包括QIIME 2文件和参数的组合,产生统计表格或可视化图形,方便用户解读,输入为qza格式,输出为qzv,文件不仅包括结果,还包括处理的分析命令和参数,方便重复和检查分析过程是否准确。可视化的结果文件qzv是分析的终点,不可以进一步分析。

下一步

Next steps

现在你已经熟悉QIIME 2的核心概念了,接下来可以开始安装QIIME 2,并学习教程啦!!!

附录2. 名词解释Glossary

https://docs.qiime2.org/2018.6/glossary/#

Action 方法或可视化的动作

A general term for a method or visualizer.

Artifact QIIME2定义的文件格式,存储数据和分析结果

Data that can be used as input to a QIIME method or visualizer, or that can be generated as output from a QIIME method. Artifacts typically have the extension `.qza· when written to file.

Method 对Artifact分析的方法

An action that takes some combination of artifacts and parameters as input, and produces one or more artifacts as output. These output artifacts could subsequently be used as input to other QIIME 2 methods or visualizers. Methods can produce intermediate or terminal outputs in a QIIME analysis.

Parameter 参数,软件或方法中可调整的部分

A primitive (i.e., non-artifact) input to an action. For example, strings, integers, and booleans are primitives. Primitives are never output from an action.

Pipeline 流程,一系统分析方法的串联集合,让每个环境无缝衔接,类似于流水线,高效完成分析任务

A combination of actions.

Plugin 插件,可扩展的功能

A plugin provides microbiome (i.e. domain-specific) analysis functionality that is accessible to users through a variety of interfaces built around the QIIME 2 framework. Plugins can be developed and distributed by anyone. In more technical terms, a plugin is a Python 3 package that instantiates a qiime2.plugin.Plugin object, and registers actions, data formats, and/or semantic types that become discoverable in the QIIME 2 framework.

Result 分析结果

A general term for an artifact or visualization. A result is produced by a method, visualizer, or pipeline.

Visualization 可视化,把数据绘制成图表方便查看的分析方法

Data that can be generated as output from a QIIME visualizer. Visualizations typically have the extension .qzv when written to file.

Visualizer 可视化工具,将结果可视化的软件

An action that takes some combination of artifacts and parameters as input, and produces exactly one visualization as output. Output visualizations, by definition, cannot be used as input to other QIIME 2 methods or visualizers. Visualizers can only produce terminal output in a QIIME analysis.

附录3. 常用的语义类型semantic types

https://docs.qiime2.org/2018.6/semantic-types/

所有的QIIME 2文件有定义的语义类型。此文中显示了目前文档中提到的所有语义类型,并何使用这些类型。同时介绍如何在QIIME 2插件中定义新的语义类型。

 为什么定义语义类型

Why define semantic types?

定义语义类型(文件类型/文件格式)是为了确定执行某一分析可成功执行,且是有意义的。例如biom.Table对象可保存OTU有无状态(0/1)。如果这个二元OTU表计算有权重的UniFrac就是错误的。

QIIME 2定义的语义类型,帮助用户来避免这些功能上的错误,让系统自动识别.qza文件可以进行哪种分析和可视化。

常用的语义类型

Common semantic types

除了以下这些定义的语义类型,也可以q2-types插件导入。可以任何插件中定义新的类型。

FeatureTable[Frequency]: 频率,即Feature表(OTU表),为每个样品中对应OTU出现频率的表格

FeatureTable[RelativeFrequency]: 相对频率,OTU表标准化为百分比或1的相度丰度

FeatureTable[PresenceAbsence]: 二元特征表,0/1代表是否检测到有/无,例如作为计算Unweighted UniFrac的输入文件

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: 用于物种注释的分类软件

Reference

  1. https://qiime2.org/
  2. Caporaso, J. Gregory, Justin Kuczynski, Jesse Stombaugh, Kyle Bittinger, Frederic D. Bushman, Elizabeth K. Costello, Noah Fierer et al. “QIIME allows analysis of high-throughput community sequencing data.” Nature methods 7, no. 5 (2010): 335-336.
  3. Schloss, Patrick D., Sarah L. Westcott, Thomas Ryabin, Justine R. Hall, Martin Hartmann, Emily B. Hollister, Ryan A. Lesniewski et al. “Introducing mothur: open-source, platform-independent, community-supported software for describing and comparing microbial communities.” Applied and environmental microbiology 75, no. 23 (2009): 7537-7541.
  4. https://docs.qiime2.org/2018.6/glossary/
  5. https://docs.qiime2.org/2018.6/install/virtual/docker/
  6. https://docs.qiime2.org/2018.6/concepts/

猜你喜欢

写在后面

为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外1800+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论,问题不私聊,帮助同行。
image

学习扩增子、宏基因组科研思路和分析实战,关注“宏基因组”
image

image

点击阅读原文,跳转最新文章目录阅读
https://mp.weixin.qq.com/s/5jQspEvH5_4Xmart22gjMA



https://wap.sciencenet.cn/blog-3334560-1067393.html

上一篇:扩增子分析QIIME. 3以管理员安装QIIME1.9.1至Ubuntu16.04
下一篇:宏基因组公众号7月精选文章目录
收藏 IP: 159.226.116.*| 热度|

1 蒋金和

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-3-28 19:00

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部