分享

随机宏基因组测序数据质量控制和去宿主的分析流程和常见问题

 宏基因组 2020-10-09

为进一步提高《微生物组实验手册》稿件质量,本项目新增大众评审环节。文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见。公众号格式显示略有问题,建议点击文末阅读原文下载PDF审稿。在线文档(https:///l/cL8RRqHIL)大众评审页面登记姓名、单位和行号索引的修改建议。修改意见的征集截止时间为推文发布后的72小时,文章将会结合有建设性的修改意见进一步修改后获得DOI在线发表,同时将致谢审稿人。感谢广大同行提出宝贵意见。

随机宏基因组测序数据质量控制和去宿主的分析流程和常见问题

Analysis pipeline and frequently asked questions of quality control and host removal in shotgun metagenomic sequencing

刘永鑫1, 2, 3, #, *,刘芳1, 2, 3, #,陈同4,白洋1, 2, 3, 5, *

1中国科学院遗传与发育生物学研究所,植物基因组学国家重点实验室,北京2中国科学院大学,生物互作卓越创新中心,北京3中国科学院遗传与发育生物学研究所,中国科学院英国约翰英纳斯中心植物和微生物科学联合研究中心,北京4中国中医科学院,中药资源中心,北京5中国科学院大学现代农学院,北京

*通讯作者邮箱: yxliu@genetics.ac.cn ; ybai@genetics.ac.cn

#共同第一作者/同等贡献

摘要: 随机宏基因组测序,也称鸟枪法宏基因组测序,是指对环境样品的总DNA进行高通量测序以获得微生物群落的物种组成及其潜在功能,抑或通过序列拼接和分箱得到其微生物的基因组。宏基因组测序数据预处理包括两方面:一方面,与转录组、基因组测序等分析相似的数据质量控制过程,包括质量评估,去除低质量、引物和接头序列;另一方面,涉及到宿主相关微生物的宏基因组样本易受宿主序列的污染,需要去除宿主序列并评估宿主比例,以获得高质量的微生物组相关数据以方便开展下游分析。本文主要介绍FastQCMultiQCKneadData涵盖并调用Trimmomatic + Bowtie 2等软件组合分析流程的安装、使用方法和结果解读,实现数据质量评估、质量控制和去宿主污染、质量再评估的分析过程,同时对各步骤常见问题和解决方法进行总结,方便同行更准确、高效地实现宏基因组数据的预处理,为下游分析提供高质量的宏基因组数据。

关键词: 宏基因组测序,质量控制,去宿主,FastQCKneadData

仪器设备

1. 计算服务器操作系统:Linux主流发行版本,如CentOS 7+ / Ubuntu 16.04+CPU8+;内存:32G+;硬盘:> 30 GB,且大于原始数据大小3,网络访问畅通。

2. 个人电脑Windows用户需安装XShellPutty等终端类软件,Mac使用系统内置终端即可远程访问计算服务器。

软件和数据库

1. 远程文件传输工具FileZilla客户端3.49.1+https:///

2. 可选Windows远程访问服务器终端工具Xshell 6.0.0197p+https://www./zh/free-for-home-school/

3. 软件管理器Miniconda2 Linux 64-bit Python 2.7: https:///miniconda.html

4. 测序数据质量评估FastQC v0.11.9https://www.bioinformatics./projects/download.html

5. 质量评估报告汇总MultiQC version 1.6 Ewels等,2016https:///

6. 宏基因组质量控制和去宿主分析流程KneadData v0.7.4: http://huttenhower.sph./kneaddata

7. 可选并行任务队列管理Parallel 20200522 Tange2020https://www./software/parallel/     

8. 常用宿主基因组下载Ensembl Genomehttp:/// ,如人类基因组International Human Genome Sequencing2001,拟南芥基因组The Arabidopsis Genome2000

9. 流程参考代码详见:https://github.com/YongxinLiu/MicrobiomeProtocol/blob/master/e1.KneadData/QualityControl_HostRemoval_Pipelie.sh

软件安装和数据库部署

Windows/Mac用户安装FileZilla客户端,用于上传测序数据至服务器或数据中心,也可下载分析结果本地查看。Windows用户安装Xshell用于远程访问服务器并开展分析,Mac用户可使用系统自带Terminal中的ssh命令远程访问服务器。

Linux系统的计算服务器端,以Miniconda2软件和Python2虚拟环境安装所需软件,在将来随着软件的更新可能需要新建Python3虚拟环境才能安装新版本;然后下载人类基因组索引,同时以拟南芥为例介绍下载基因组并建立索引的步骤。

注:代码行添加灰色底纹背景其中需要根据系统环境修改的部分标为蓝色

1. 安装Miniconda2 Linux 64-bitPython 2.7,已经安装Conda可跳过此步骤。

wget -c https://repo./miniconda/Miniconda2-latest-Linux-x86_64.sh

bash Miniconda2-latest-Linux-x86_64.sh

2. 配置Conda环境,添加Bioconda生物频道以方便安装生物学相关的分析软件。

conda config --add channels bioconda

conda config --add channels conda-forge

3. Conda新建Python 2.7环境,命名为qc2quality control python2,然后进入。

conda create -n qc2 python=2.7

conda activate qc2

注:新建虚拟环境,然后在新建的环境下安装工作流程,可以防止新装的软件或者其依赖软件与系统默认环境中的版本相互冲突。另外,将整个分析流程的软件存放在虚拟环境并放置在指定目录下,不用时可以轻松移除,不会对系统产生任何影响。

4. Conda安装相关软件,-y默认同意直接安装,不再提示是否确认。

conda install fastqc -y

conda install multiqc -y

conda install kneaddata -y

conda install parallel -y

注:如果软件下载慢或无法下载,详见常见问题1Conda默认安装Bioconda中的最新版本或所处系统环境支持的最新版本;如果无法安装或安装后使用存在问题,可使用conda remove xxx移除某软件,再指定版本安装,如指定安装KneadData0.6.1版本:conda install kneaddata=0.6.1

5. 宿主基因组数据库下载。

为了方便指定接下来的文件路径,我们首先使用mkdir命令为整个分析流程建立一个文件夹,并命名为meta_preprocess参数-p允许建立多级文件夹、多个文件夹且不报错。然后使用cd命令进入该文件夹。

mkdir -p meta_preprocess

cd meta_preprocess

为了去除宿主序列,我们需要建立宿主序列的索引以供KneadData通过序列比对找到并去除宿主序列。KneadData提供了多个预先建立的常用的宿主序列索引。下面的命令可供我们查看KneadData软件整理好的可用的数据库索引,包括人类基因组、小鼠基因组、人类转录组和核糖体数据库等。

            kneaddata_database

以人类基因组为例,下载Bowtie 2格式索引,此类索引文件通过包含多个文件,推荐建立文件夹并指定下载位置。

mkdir -p db

kneaddata_database --download human_genome bowtie2 db/

如果默认数据库下载速度慢或无法下载,可使用国内备份链接,详见常见问题2

KneadData包括的数据库种类有限,用户可自行下载参考基因组并建索引,以拟芥为例的实例详见常见问题3

6. 准备输入数据

通常测序公司会返回原始raw或纯净clean数据两类数据:原始数据为下机后按测序文库的索引Index拆分获得的样本序列,纯净数据是去除了明显的低质量、测序引物和接头污染序列后的结果。推荐大家使用体积更小、质量更高的纯净序列进行下游分析和提交数据中心。此外,涉及人类研究的数据,需要上传去除人类相关序列后再上传数据中心即本文的输出结果

本文使用的数据来自人类口腔癌症研究的文章Schmidt等,2014NCBISRA项目号为PRJEB4953。为方便演示流程的使用,我们从中选取4个样本,并且随机抽取了75000对序列作为软件的测序数据,可以从中国科学院基因组研究所的原始数据归档库Genome Sequence ArchiveGSAhttps://bigd./gsa/ Wang等,2017中按批次编号CRA002355搜索并下载,也可通过wget并结合for循环通过批次和样本编号批量下载至seq目录代码如下

    mkdir -p seq

使用wget下载单个样本,-c为支持断点续传,-O指定保存位置并可重命名,每个双端样本需要下载两个文件。

wget -c ftp://download./gsa/CRA002355/CRR117732/CRR117732_ f1.fq.gz -O seq/C2_1.fq.gz

wget -c ftp://download./gsa/CRA002355/CRR117732/CRR117732_ r2.fq.gz -O seq/C2_2.fq.gz

结合for循环再下载3个样本,seq命令产生连续序列,$i替换命令中可变部分,结尾加保证变量名结束而被识别。

    for i in `seq 3 5`;do

 wget -c ftp://download./gsa/CRA002355/CRR11773$i/CRR11773$i_f1.fq.gz

        -O seq/C$i_1.fq.gz

 wget -c ftp://download./gsa/CRA002355/CRR11773$i/CRR11773$i_r2.fq.gz

       -O seq/C$i_2.fq.gz

done

视频1. 宏基因组测序数据分析流程演示视频和讲解

https://v.qq.com/x/page/a3128efr2t3.html

实验步骤

开始分析前,我们应处于项目所在目录meta_preprocess,并启动软件所在的Conda环境。

cd meta_preprocess

conda activate qc2

1. FastQC测序数据质量评估。

fastqc seq/*.fq.gz -t 3

*.fq.gz代表所有以.fq.gz结尾的文件,即所有测序数据;-t 3指定3个线程,即同时对3个文件进行并行分析。

1. FastQC质量评估报告中的主要结果和注意事项。A. 序列中每个碱基的质量分布Per base sequence qualityB. 所有序列的GC含量Per sequence GC content分布红色与理论值分布蓝色曲线。C. 接头含量Adapter content。本图数据为样本C3右端序列为列对fastQC的评估结果进行说明,完整评估报告详见seq/C3_2_fastqc.html

FastQC质量评估包括基本统计比如对应样本总序列数,序列长度和GC含量等简要总结、单碱基位点测序质量、GC含量及接头含量等10大类的评估。我们以C3样本右端报告为例,首先查看基本统计中的总序列数Total SequencesGC含量%GC等。其次查看每个碱基位点的质量分数的箱线图1A,每个箱体中间的红线代表此位置上所有序列的测序质量的中位数,然后黄色箱体代表25%-75%百分位数内的质量分布,而两端黑线顶端对应10%90%百分位的质量数,另外连接每个箱体的蓝色线代表的是平均值。根据Y轴序列质量,整个图片区域被划分为高绿色,得分>=28、中黄色,<=20得分<28、低红色,得分<20三个区域。通常Illumina测序数据质量从左往右逐渐降低,从1A可以看到序列结尾的箱体进入红色区域,即序列末端存在大量低质量区,这是我们要质量控制中重点关注并需要去除的部分,待质量控制后再次查看此区域。其次查看所有序列的GC含量Per sequence GC content分布,经常会出现实际值与理论值存在明显差异无法通过评估1B,因为理论值是基于单物种的估计结果,而宏基因组测序对象是多物种的混合物,出现分布明显偏移或多峰属于正常现象。过多的序列Overrepresented sequences处有时可以查看到污染的引物、接头序列常见问题4,或样本中特别丰富的序列。接头含量Adapter Content评估通用接头的比例,1C显示C3样本中存在少量Illumina通用接头的污染。

2. MultiQC对多样本的FastQC评估结果进行汇总。

研究中通常包含大量样本,而且单个样本又包括双端测序两个结果报告,分别查看每个报告是非常巨大的工作量,而且在缺少比较的条件下判断结果的优劣是比较困难的。MultiQC可以将所有结果汇总为单个网页报告,实现了样本间的同屏比较,同时方便筛选异常样本。

multiqc -d seq/ -o ./

-d指定输入目录,-o指定输出目录,./代表当前目录。

2. MultiQC质量评估汇总报告中的重要结果。A. 综合统计General StatisticsB.单位点测序质量的平均值分布Mean Quality ScoresC. 单碱基位点N含量Per Base N ContentD. 过多序列的比例Overrepresented sequences。本报告汇总了样本C2-54个样本包含的8个序列评估报告的汇总,详见multiqc_report.html

我们对多样本质量评估汇总报告multiqc_report.html进行观察,发现样本C3/C4中有较高的重复序列2A,可能原因是测序质量低、测序引物和接头序列污染、样本DNA含量低采用较多PCR循环扩增等原因。还发现C3/C5GC含量明显更高2A,可能存在微生物群落组成的差异。我们还可以通过移动鼠标交互地探索每个样本在每个碱基位置上的质量平均值2B。此外关注碱基中N的含量2C,并记录存在较高N含量的样本。如果在下游分析中这些样本也异常时,可以考虑制定质量筛选标准过滤部分低质量样本,以减少由于实验或测序过程引用的错误。最后重点关注过多序列的比例2D,可能是测序引物和接头污染,也可能是微量DNAPCR扩增导致,具体原因需要进一步查看过多序列含量其对应样本的FastQC报告,结合其对过多序列的详细信息进一步核实是否被标记为测序引物和接头,另外,未知序列也可在线BLASThttps://blast.ncbi.nlm./Blast.cgi 分析来源Altschul等,1997

3. 检查测序双端序列标签是否对应且唯一。

zcat查看样本压缩格式内容,head显示文件前10行,注意观察标签是否重复(3A)

    zcat seq/C2_1.fq.gz|head

    zcat seq/C2_2.fq.gz|head

双端序列标签对应且唯一是分析中保证准确识别每条序列的前提,通常测序下机数据符合序列名唯一的格式要求(3B)。但NCBI发布的数据为节约存储空间简化序列标签(3A),下载的数据会出现双端序列标签完全相同而无法区分正反序列的问题。为保证下游分析的正常,需要修改双端序列标签使之对应且唯一(3B)。代码详见常见问题4

3. NCBI SRA序列标签修改前重复唯一对比。A. NCBI SRA下载双端序列双端标签完全相同。B. 修改后序列双端标签对应且唯一。蓝色代表命令行,其他颜色为fastq格式序列内容,其中序列标签标记为红色。

4. KneadData流程实现数据质量控制和去宿主。

KneadData流程主要依赖Trimmomatic Bolger等,2014进行质量控制和去除引物和接头,Bowtie 2 Langmead and Salzberg2012用来比对宿主基因组,然后通过自定义脚本筛选未能比对到宿主的序列作为输出结果用于下游分析。软件的详细信息,运行kneaddata -h查看。序列接头可从测序供应商处获得,基于质量评估结果查找接头序列的方法详见常见问题5,软件运行提示Java版本不支持的处理方法详见常见问题6

单个样本质控和去宿主,可逐个或结合for循环处理每个样本。

kneaddata -i seq/C2_1.fq.gz -i seq/C2_2.fq.gz

 -o qc/ -v -t 8 --remove-intermediate-output

 --trimmomatic ~/.conda/envs/qc2/share/trimmomatic

 --trimmomatic-options 'ILLUMINACLIP:~/.conda/envs/qc2/share/trimmomatic/adapters/TruSeq3-PE.fa:2:40:15 SLIDINGWINDOW:4:20 MINLEN:50'

 --bowtie2-options '--very-sensitive --dovetail'

 --bowtie2-options="--reorder"

 -db db/Homo_sapiens

使用parallel管理队列,允许多个任务并行提高工作效率,详见软件和数据库7.     流程参考代码

KneadData流程自带了kneaddata_read_count_table流程可完成多样本的质控结果汇总。

kneaddata_read_count_table

--input qc

--output kneaddata_sum.txt

提取原始raw、质量控制后trim和去宿主后final序列数量,详见1

cut -f 1-5,12-13 kneaddata_sum.txt | sed 's/_1_kneaddata//;s/pair//g'

 > kneaddata_report.txt

1. KneadData流程质量控制和去宿主结果统计

Sample

raw 1

raw 2

trimmed 1

trimmed 2

final 1

final 2

C2

75000

75000

65316

65316

64876

64876

C3

75000

75000

48082

48082

30897

30897

C4

75000

75000

50387

50387

29343

29343

C5

75000

75000

60959

60959

57379

57379

注:Sample为样本名,raw 1/2是双端测序的数据量,trimmed 1/2是经Trimmomatic质量控制后仍成对的序列,final 1/2是指经过质量控制和去宿主仍成对的序列。注意1/2必须一致,否则是程序出错,请检查上一步。

5. 质控后质量再评估。

fastqc qc/*_1_kneaddata_paired_*.fastq -t 3

multiqc -d qc/ -o ./

使用fastqc评估质控后的每对测序数据。然后再次使用multiqc进行结果汇总(4)。结果不仅有序列基本信息统计,还包括质控去除比例(%Dropped)和宿主污染比例(%Aligned)的信息(4A)。其中质控部分还采用堆叠柱状图展示质控后各部分的百分比(4B)。去宿主部分堆叠柱状图展示了序列是否比对宿主基因组的读长数量(4C)。此外,我们还要重点关注质控后的整体质量分布,以均值位于绿色区间为宜(4D)

4. MultiQC汇总质量控制、去宿主和最终序列的情况。A. 综合统计General Statistics%Aligned是指比对至宿主基因组的比例,即宿主污染所占比例,%Dropped为低质量或建库污染的比例。B. Trimmomatic质量控制结果柱状图,蓝色为质控后结果,粉红为去除的低质量序列,可交互图片移动鼠标至目标区域可显示细节。C. 比对宿主后各部分序列的比例。蓝色为比对至宿主基因组且有唯一位置,橙色为比对至宿主中有多个位置,红色为非宿主序列。D. 质控后序列质量,一般全部在高质量区绿色。详见multiqc_report_1.html

常见问题

1. 软件下载慢或无法下载。

大部分软件可通用Conda(类似于360软件管家或腾讯软件管理)快速安装,有时会出现无法下载的问题,请检查网络是否正常,或换个时间再试。对于下载速度较慢的情况,也可以添加Conda国内镜像站点加速下载,如清华大学、中国科技大学镜像站等,以添加清华Conda镜像站为例:

site=https://mirrors.tuna./anaconda

conda config --add channels $site/pkgs/free/

conda config --add channels $site/pkgs/main/

conda config --add channels $site/cloud/conda-forge/

conda config --add channels $site/pkgs/r/

conda config --add channels $site/cloud/bioconda/

2. 数据库下载慢或无法下载。

很多国外数据库下载缓慢,甚至托管于GoogleDropbox等国内无法访问的站点。宏基因组公众号团队建立了本领域常用数据库下载的国内备份链接和百度云链接,方便国内同行下载和使用,详见:https://github.com/YongxinLiu/MicrobiomeStatPlot/blob/master/Data/BigDataDownlaodList.md

3. 物种参考基因组下载和建索引,以拟南芥为例。

下载目标物种的参考基因组序列,如在Ensembl Genomes中按分类查找目标物种的基因组下载链接,使用wget下载。

wget -c ftp://ftp./pub/plants/release-47/fasta/arabidopsis_thaliana/dna/Arabidopsis_thaliana.TAIR10.dna.toplevel.fa.gz

         -O ath.fa.gz

-c实现断点续传,-O实现文件重命名,“”用于代码换行。

然后使用bowtie2-build建立索引,输入文件可以是gz压缩格式的fasta文件,并指定输出索引文件前缀。

    bowtie2-build ath.fa.gz ath.bt2

4. 检查测序双端序列标签是否唯一

质控后双端序列数量不同,或双端文件标签不对应视频1,可能是输入序列标签不唯一,需要检查测序双端序列标签是否唯一。

    zcat seq/C2_1.fq.gz|head

    zcat seq/C2_2.fq.gz|head

如果标签重名,需要进行数据解压、对序列的左、右端标题行分别添

    gunzip seq/*.gz

sed -i '1~4 s/$/\1/g' seq/*_1.fq

sed -i '1~4 s/$/\2/g' seq/*_2.fq

再次核对样本是否标签有重复。

    head seq/C2_1.fq

    head seq/C2_2.fq

结果    压缩节省空间,同时与原始序列保持文件名一致。

gzip seq/*.fq

5. 根据质量评估报告确定接头序列

MultiQC的汇总报告中记录每个过多序列较多的样本,如C3/4/5,然后并别查看每个样本对应的FastQC报告中过多序列部分的序列,并复制部分注释为接头的序列,在trimmomatic的接头文件库中搜索。

使用type命令确定trimmomatic软件位置

    type trimmomatic

根据上面显示的环境路径+share/trimmomatic/adapters目录匹配接头序列的文件,本例为C3样本的右端FastQC评估报告中过多的序列栏目可查看到接头序列。

    grep 'ATCGGAAGAGCACACGTCTGAAC' ~/.conda/envs/qc2/share/trimmomatic/adapters/*

6. KneadData运行提示Java版本不支持

尝试使用conda安装指定版本的Java开发环境即可。

conda install openjdk=8.0.152

致谢

本项目由中国科学院战略先导专项(编号:XDA24020104)中国科学院前沿科学重点研究项目(编号:QYZDB-SSW-SMC021)、国家自然科学基金项目(编号:31772400, 31761143017, 31801945, 31701997)中国科学院青年创新促进会(编号:2020101) [Supported by the Strategic Priority Research Program of the Chinese Academy of Sciences (Precision Seed Design and Breeding, No. XDA24020104), the Key Research Program of Frontier Sciences of the Chinese Academy of Science (No. QYZDB-SSW-SMC021), the National Natural Science Foundation of China (No. 31772400, 31761143017, 31801945, 31701997), the Chinese Academy of Sciences Youth Innovation Promotion Association (No. 2020101)]支持。此分析流程在最近发表的综述中被提及刘永鑫等,2019; Liu等,2020。感谢西北农林科技大学席娇对本文的修改。

参考文献

1.    Altschul, S. F., Madden, T. L., Schäffer, A. A., Zhang, J., Zhang, Z., Miller, W. and Lipman, D. J.  (1997). Gapped BLAST and PSI-BLAST: a new generation of protein database search programs. Nucleic Acids Res 25 (17): 3389-3402.

2.    Bolger, A. M., Lohse, M. and Usadel, B. (2014). Trimmomatic: a flexible trimmer for Illumina sequence data. Bioinformatics 30 (15): 2114-2120.

3.    Ewels, P., Magnusson, M., Lundin, S. and Käller, M. (2016). MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics 32 (19): 3047-3048.

4.    International Human Genome Sequencing, C. (2001). Initial sequencing and analysis of the human genome. Nature 409 (6822): 860-921.

5.    Langmead, B. and Salzberg, S. L. (2012). Fast gapped-read alignment with Bowtie 2. Nat Methods 9 (4): 357-359.

6.    Liu, Y.-X., Qin, Y., Chen, T., Lu, M., Qian, X., Guo, X. and Bai, Y. (2020). A practical guide to amplicon and metagenomic analysis of microbiome data. Protein Cell 11.

7.    Schmidt, B. L., Kuczynski, J., Bhattacharya, A., Huey, B., Corby, P. M., Queiroz, E. L. S., Nightingale, K., Kerr, A. R., DeLacure, M. D., Veeramachaneni, R., Olshen, A. B., Albertson, D. G. and Muy-Teck, T. (2014). Changes in abundance of oral microbiota associated with oral cancer. PLoS One 9 (6): e98741.

8.    Tange, O. (2020). GNU Parallel 20200522 ( 'Kraftwerk' ) . Zenodo.

9.    The Arabidopsis Genome, I. (2000). Analysis of the genome sequence of the flowering plant Arabidopsis thaliana . Nature 408 (6814): 796-815.

10.    Wang, Y., Song, F., Zhu, J., Zhang, S., Yang, Y., Chen, T., Tang, B., Dong, L., Ding, N., Zhang, Q., Bai, Z., Dong, X., Chen, H., Sun, M., Zhai, S., Sun, Y., Yu, L., Lan, L., Xiao, J., Fang, X., Lei, H., Zhang, Z. and Zhao, W. (2017). GSA: Genome Sequence Archive*. Genom Proteom Bioinf 15 (1): 14-18.

11.    刘永鑫, 秦媛, 郭晓璇 白洋 (2019). 微生物组数据分析方法与应用 . 遗传 41 (9): 845-826.

请通过以下链接下载视频:

视频1

https://os./doc/upprotocol/p3347/Abstract3347_20200803025729579/kneaddata%20pipeline.wmv

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多