Importing data
原文地址: https://docs.qiime2.org/2018.11/tutorials/importing/
为了使用qiime 2,输入数据必须存储在qiime 2对象(即qza文件)中。这是实现支持分布式和自动来源跟踪以及语义类型验证和数据格式之间的转换所必须(有关qiime 2对象的更多详细信息,请参阅《1简介和安装》中核心概念部分)。本教程演示如何将各种数据格式导入到qiime 2对象中,以便使用qiime 2开展分析。
注:本教程并没有描述qiime 2中当前支持的所有数据格式。这是一项正在进行的工作,描述了一些最常用的可用数据格式。我们还积极支持其他数据格式。如果您需要导入的数据格式不在这里介绍,请发到qiime 2论坛寻求帮助。
导入通常与初始化数据一起进行(例如,从测序仪获取的原始序列),但也可以在分析流程的任何步骤中执行导入。例如,如果合作者向您提供.biom
格式的特征表,您可以将其导入到qiime 2对象中,以执行对特征表进行操作的“下游”统计分析。
可以使用任何qiime 2接口完成导入。本教程将重点介绍使用qiime 2命令行界面(q2cli)使用qiime导入工具方法导入数据。下面的每一节简要描述了一种数据格式,提供了下载示例数据的命令,并演示了如何将数据导入到qiime 2对象中。
启动工作环境并创建工作目录
# 创建qiime2学习目录并进入
mkdir -p qiime2
cd qiime2
# Miniconda安装的请运行如下命令加载工作环境
source activate qiime2-2018.11
# 如果是docker安装的请运行如下命令,默认加载当前目录至/data目录
# docker run --rm -v $(pwd):/data --name=qiime -it qiime2/core:2018.11
# 创建本节学习目录
mkdir qiime2-importing-tutorial
cd qiime2-importing-tutorial
使用qiime 2,可以导入不同类型的fastq数据:
“EMP protocol” multiplexed single-end fastq
此类数据标准包括两个文件,扩展名均为fastq.gz
,
此部分的数据己经在4人体各部位微生物组分析中下载过,可直接复制,或使用如下命令下载
# 建样品目录
mkdir -p emp-single-end-sequences
# 下载 barcode文件
wget \
-O "emp-single-end-sequences/barcodes.fastq.gz" \
"https://data.qiime2.org/2018.11/tutorials/moving-pictures/emp-single-end-sequences/barcodes.fastq.gz"
# 下载序列文件
wget \
-O "emp-single-end-sequences/sequences.fastq.gz" \
"https://data.qiime2.org/2018.11/tutorials/moving-pictures/emp-single-end-sequences/sequences.fastq.gz"
导入EMP单端测序文件
qiime tools import \
--type EMPSingleEndSequences \
--input-path emp-single-end-sequences \
--output-path emp-single-end-sequences.qza
输出对象:
“EMP protocol” multiplexed paired-end fastq
此类数据标准包括三个文件,扩展名均为fastq.gz
,
此部分的数据己经在 6沙漠土壤分析Atacama soil中下载过,可直接复制,或使用如下命令下载
# 建样品目录
mkdir -p emp-paired-end-sequences
# 下载序列正向和反向文件
wget \
-O "emp-paired-end-sequences/forward.fastq.gz" \
"https://data.qiime2.org/2018.11/tutorials/atacama-soils/1p/forward.fastq.gz"
wget \
-O "emp-paired-end-sequences/reverse.fastq.gz" \
"https://data.qiime2.org/2018.11/tutorials/atacama-soils/1p/reverse.fastq.gz"
# 下载barcode文件
wget \
-O "emp-paired-end-sequences/barcodes.fastq.gz" \
"https://data.qiime2.org/2018.11/tutorials/atacama-soils/1p/barcodes.fastq.gz"
导入QIIME2对象
qiime tools import \
--type EMPPairedEndSequences \
--input-path emp-paired-end-sequences \
--output-path emp-paired-end-sequences.qza
输出对象:
Casava 1.8 single-end demultiplexed fastq
格式描述
在Casava 1.8单样本(单端)的格式中,有一fastq.gz
文件的包含每个样品的单端序列。样品文件名包括标识符,看起来像L2S357_15_L001_R1_001.fastq.gz
。文件名中下划线分隔的区域代表的意义如下:
下载并解压示例数据
wget \
-O "casava-18-single-end-demultiplexed.zip" \
"https://data.qiime2.org/2018.11/tutorials/importing/casava-18-single-end-demultiplexed.zip"
unzip -q casava-18-single-end-demultiplexed.zip
导入数据,因为样品名包括在文件名中,可直接导入
qiime tools import \
--type 'SampleData[SequencesWithQuality]' \
--input-path casava-18-single-end-demultiplexed \
--input-format CasavaOneEightSingleLanePerSampleDirFmt \
--output-path demux-single-end.qza
输出对象:
Casava 1.8 paired-end demultiplexed fastq
格式同上面单端,只是每个样本有一对文件。R1和R2代表正向和反向测序结果。
下载并解压示例数据
wget \
-O "casava-18-paired-end-demultiplexed.zip" \
"https://data.qiime2.org/2018.11/tutorials/importing/casava-18-paired-end-demultiplexed.zip"
unzip -q casava-18-paired-end-demultiplexed.zip
导入数据,因为样品名包括在文件名中,可直接导入
qiime tools import \
--type 'SampleData[PairedEndSequencesWithQuality]' \
--input-path casava-18-paired-end-demultiplexed \
--input-format CasavaOneEightSingleLanePerSampleDirFmt \
--output-path demux-paired-end.qza
输出对象:
“Fastq manifest” formats
划重点,这应该是普通用户最常用的格式。
如果你不是EMP或CASAVA格式的数据,则需要先创建一个“清单文件”,然后使用导入命令qiime工具导入命令,手动将数据导入到qiime 2。
格式说明
首先,您将创建一个名为“清单文件”的文本文件,它将示例标识符映射到fastq.gz或fastq绝对文件路径,其中包含示例的序列和质量数据(即,这些是fastq文件)。清单文件还指示每个fastq.gz或fastq文件中的读取方向。清单文件通常由您创建,它被设计为一种简单的格式,不会对分解的fastq.gz/fastq文件的命名设置限制,因为这些文件没有广泛使用的命名约定。您可以随意调用清单文件。
清单文件是逗号分隔(即.csv)的文本文件。每行的第一个字段是qiime应该使用的样本名,第二个字段是绝对文件路径,第三个字段是读取方向。以#
开头的行和空行将被忽略。文件中不#以开头且不为空的第一行必须是标题行:sample id,absolute filepath,direction
。除了标题行之外,此文件中的行顺序并不重要。
对于单端读取,每个样本ID必须正好有一行对应正向序列(如果您将这些双端序列单独处理为单端读取,则为反向)。对于成对的测序数据,每个样本ID必须正好有两行,对应于正向和反向序列。每行的方向字段只能包含forward或reverse的文本。
fastq.gz
文件位置的绝对文件路径可以包含环境变量(例如 H O M E 或 HOME或 HOME或PWD)。下面的示例说明了一个简单的fastq清单文件,用于两个示例的双端数据。
sample-id,absolute-filepath,direction
# Lines starting with '#' are ignored and can be used to create
# "comments" or even "comment out" entries
sample-1,$PWD/some/filepath/sample1_R1.fastq.gz,forward
sample-2,$PWD/some/filepath/sample2_R1.fastq.gz,forward
sample-1,$PWD/some/filepath/sample1_R2.fastq.gz,reverse
sample-2,$PWD/some/filepath/sample2_R2.fastq.gz,reverse
在文件清单中,fastq.gq
文件绝对路径必须准确,下面的示例说明了一个示例的fastq单端数据的清单文件。
sample-id,absolute-filepath,direction
sample-1,$PWD/some/filepath/sample1_R1.fastq,forward
FastQ数据有四种常用格式变体,导入时必须将其指定为qiime 2的类型,并在以下部分中定义。
SingleEndFastqManifestPhred33
质量值33类型的单端数据
在这个fastq清单格式的变体中,读取方向必须都是正向或反向的。此格式假定用于所有fastq.gz/fastq
文件中位置质量分数的分段偏移量为33(质量值多为大写字母)。
SingleEndFastqManifestPhred64
质量值64类型的单端数据
在这个fastq清单格式的变体中,读取方向必须都是正向或反向的。此格式假定用于所有fastq.gz/fastq
文件中位置质量分数的分段偏移量为64。在导入过程中,qiime 2会将phred 64编码的质量分数转换为phred 33编码的质量分数。这种转换将很慢,但只会发生一次(非主流,很多软件如usearch都不支持,外部可以使用fastp、vsearch等程序转换,QIIME2会自动转换后再进行分析,查看文件质量值多为小写字母的为64类型)。
pairendfastqmanifestphreed33
质量值33类型的双端数据,划重点,此类型最为常用
在这种fastq文件清单格式的变体中,每个样本ID必须有正向和反向读取fastq.gz/fastq
文件。因此,每个样本ID在清单文件中表示两次:一次表示其正向序列,一次表示其反向序列。此格式假定用于所有fastq.gz/fastq
文件中位置质量分数的分段偏移量为33。
pairendfastqmanifestphreed64
质量值64类型的双端数据,划重点,此类型最为常用
在这种fastq文件清单格式的变体中,每个样本ID必须有正向和反向读取fastq.gz/fastq
文件。因此,每个样本ID在清单文件中表示两次:一次表示其正向读取,一次表示其反向读取。此格式假定用于所有fastq.gz/fastq
文件中位置质量分数的分段偏移量为64。在导入过程中,qiime 2会将phred 64编码的质量分数转换为phred 33编码的质量分数。这种转换将很慢,但只会发生一次。
获取示例数据
由于以这四种格式导入数据非常相似,因此我们只提供两种变体的示例:singleEndFastQManifestPhred33
和paireEndFastQManifestPhred64
。
# 下载fastq单双端样本压缩包zip文件,和文件清单文件mainfest
wget \
-O "se-33.zip" \
"https://data.qiime2.org/2018.11/tutorials/importing/se-33.zip"
wget \
-O "se-33-manifest" \
"https://data.qiime2.org/2018.11/tutorials/importing/se-33-manifest"
wget \
-O "pe-64.zip" \
"https://data.qiime2.org/2018.11/tutorials/importing/pe-64.zip"
wget \
-O "pe-64-manifest" \
"https://data.qiime2.org/2018.11/tutorials/importing/pe-64-manifest"
# 解压fastq样品文件
unzip -q se-33.zip
unzip -q pe-64.zip
导入质量值不同编码的两类文件Phred33/64 (一般Phred33比较常见,只有非常老的数据才有Phred64格式或测序公司非设置或转换成了这个非主流格式)
# 导入Phred33格式单端测序结果
qiime tools import \
--type 'SampleData[SequencesWithQuality]' \
--input-path se-33-manifest \
--output-path single-end-demux.qza \
--input-format SingleEndFastqManifestPhred33
# 导入Phred64格式双端测序结果
qiime tools import \
--type 'SampleData[PairedEndSequencesWithQuality]' \
--input-path pe-64-manifest \
--output-path paired-end-demux.qza \
--input-format PairedEndFastqManifestPhred64
输出对象:
Sequences without quality information (i.e. FASTA)
qiime 2目前支持导入qiime 1 seqs.fna
文件格式,该格式由一个fasta文件组成,每条记录只有两行:header
和sequence
。每个序列必须正好一行,不能拆分多行。每条序列的ID必须遵循格式_的要求。是序列所属样本的标识符,是其样本中序列的标识符。
在OTU聚类教程中可以找到导入和去冗余此类数据的示例。
目前不支持其他fasta格式,如具有不同格式序列名的fasta文件或按样本分离的fasta文件(即每个样本一个fasta文件)。
Per-feature unaligned sequence data (i.e., representative FASTA sequences)
格式说明
未对齐的序列数据包含未对齐的DNA序列(即不包含-或.)的fasta格式文件)。序列可能包含未知的核苷酸特征,如N,但某些qiime 2功能不支持这类字符。有关fasta格式的更多信息,请参阅scikit bio fasta格式说明。
获取示例数据
wget \
-O "sequences.fna" \
"https://data.qiime2.org/2018.11/tutorials/importing/sequences.fna"
导入数据
qiime tools import \
--input-path sequences.fna \
--output-path sequences.qza \
--type 'FeatureData[Sequence]'
输出对象:
Per-feature aligned sequence data (i.e., aligned representative FASTA sequences)
格式说明
对齐序列数据是从一个fasta格式的文件中导入的,该文件包含相互对齐的DNA序列。所有对齐序列的长度必须完全相同。序列可能包含未知的核苷酸特征,如N,但某些qiime 2功能不支持这类字符。有关fasta格式的更多信息,请参阅scikit bio fasta
格式说明。
获取示例数据
wget \
-O "aligned-sequences.fna" \
"https://data.qiime2.org/2018.11/tutorials/importing/aligned-sequences.fna"
可能有的人不了解对齐的fasta格式,如下:有-
字符,且等长
>New.CleanUp.ReferenceOTU0 K3.H_3016
-CTGGACCGTGTCTCAGTT-CCAGTGTGGCTGATCATCCT---------CTCAGACCAGC
TACCGATCGTCGCC-TTGGTGGG-CTCTTA-CCC-C-GCCAACTAGCTAATCGGGCATCG
-G-CTCATTC-AATCGCGCAAGGTCCG-----AA----------------G-ATC-CCCT
--G----CTTTCAC-----------CCGTA-----------------G------------
---GT--CGTAT-G--CGG-TA-TTA---------------G--CG--TAA---GTTTCC
--CTA---C--GTT--A--TCCCC-C--CAC-GAC-AG--AG-------TA-GA-TT---
--C--CGA-TG-CA-----------------TT---------------------------
-----------------------------------------
>New.CleanUp.ReferenceOTU1 K3.Z_32919
-CTGGACCGTGTCTCAGTT-CCAGTGTGGCCGTTCATCCT---------CTCAGACCGGC
TACTGATCGTTGGT-TTGGTGGG-CCGTTA-CCC-C-ACCAACTGCCTAATCAGACGCAA
-A-CCCCTCT-TCAGGCGATAGCTTACAGGTAGAGGCTA-------------CCC-TTTC
--T----TCCACAGG----T--------CA---TG--CGGCCCG-TGG------------
---AA--CGTAT-T--CGG-TA-TTA---------------G--CAG-T-C---GTTTCC
--GT-CT----GTT--G--T-CCC-CATC---CTG-AA--GG-------CA-GG-TT-G-
--T--TTA-CG-TG-----------------TTA--------------------------
-----------------------------------------
导入数据
qiime tools import \
--input-path aligned-sequences.fna \
--output-path aligned-sequences.qza \
--type 'FeatureData[AlignedSequence]'
输出对象:
你可以导入预处理的特征进入QIIME 2分析
关于BIOM格式说明,详见 《BIOM:生物观测矩阵——微生物组数据通用数据格式》
下载数据并导入为QIIME2的qza格式
wget \
-O "feature-table-v100.biom" \
"https://data.qiime2.org/2018.11/tutorials/importing/feature-table-v100.biom"
qiime tools import \
--input-path feature-table-v100.biom \
--type 'FeatureTable[Frequency]' \
--input-format BIOMV100Format \
--output-path feature-table-1.qza
输出对象:
wget \
-O "feature-table-v210.biom" \
"https://data.qiime2.org/2018.11/tutorials/importing/feature-table-v210.biom"
qiime tools import \
--input-path feature-table-v210.biom \
--type 'FeatureTable[Frequency]' \
--input-format BIOMV210Format \
--output-path feature-table-2.qza
输出对象:
Phylogenetic trees
通常为newick格式。
wget \
-O "unrooted-tree.tre" \
"https://data.qiime2.org/2018.11/tutorials/importing/unrooted-tree.tre"
qiime tools import \
--input-path unrooted-tree.tre \
--output-path unrooted-tree.qza \
--type 'Phylogeny[Unrooted]'
输出对象:
Other data types
QIIME2支持多达58种数据格式,可用如下命令查看
qiime tools import \
--show-importable-formats
支持的58种格式如下:
可导入的文件类型有哪些呢?
qiime tools import \
--show-importable-types
也有多达38种:
刘永鑫,博士。2008年毕业于东北农大微生物学专业。2014年中科院遗传发育所获生物信息学博士学位,2016年博士后出站留所工作,任宏基因组学实验室工程师,目前主要研究方向为宏基因组学、数据分析与可重复计算和植物微生物组、QIIME 2项目参与人。发于论文12篇,SCI收录9篇。2017年7月创办“宏基因组”公众号,目前分享宏基因组、扩增子原创文章300+篇,代表博文有《扩增子图表解读、分析流程和统计绘图三部曲》,关注人数3万+,累计阅读400万+。
为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外2600+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论,问题不私聊,帮助同行。
学习扩增子、宏基因组科研思路和分析实战,关注“宏基因组”
点击阅读原文,跳转最新文章目录阅读
https://mp.weixin.qq.com/s/5jQspEvH5_4Xmart22gjMA