写在前面《扩增子分析解读》系列文章介绍扩增子分析是目前宏基因组研究中最常用的技术,由于微生物组受环境影响大,实验间重复较差,更需要更多的实验重复和分析技术来保证结果的准确性、可重复性。 本系统文章叫分析解读,即有详细的分析流程代码,又有本人对使用参数、备选参数意义的解读,可以让大部分零基础的人,更好的理解数据分析过程,并可亲自实践在自己的课题上,获得更好、更合理的实验结果。 16S扩增子测序数据主要来自HiSeq2500产出的双端各250 bp (PE250)数据,因为读长长且价格便宜(性价比高)。HiSeqX PE150和MiSeq PE300也比较常见,但PE150过短分辨率低,而PE300价格高且末端序列质量过低;此外454在之前研究较多,但现在设备已经停产;PacBio读长长可直接测序16S全长1.5kb代表未来的趋势。 本文采用目前最主流的扩增子测序数据类型HiSeq2500 PE250类型数据为例,结合目前主流方法QIIME+USearch优点组合定制的分析流程。本课程中所需的测序数据、实验设计和课程分析生成的中间文件,均可以直去百度云下载。 本课程代码的运行,至少需要Linux平台+安装QIIME1.9.1,我之前发布过三种安装QIIME的方法详见文章目录,总有一款适合你。 第二节. 提取barcode,样品拆分及质控,切除扩增引物本节课程,需要完成扩增子分析解读1质控,实验设计,双端序列合并 先看一下扩增子分析的整体流程,从下向上逐层分析。 分析前准备# 进入工作目录
cd example_PE250 上一节回顾:我们拿到了双端数据,进行了质控、并对实验设计进行了填写和检查无误、最后将双端数据合并为单个文件进行下游分析。 接下来我们将序列末端的barcode标签切下来,因为它们是人为添加的,不属于实验对象;再根据标签序列与实验设计文件比对,对每条序列属于哪个样品进行分类;最后我们切除掉扩增使用的引物,因为它们是人工合成的相似序列,并不是物种的真实序列。这样我们就获得了高质量的扩增区域数据,并且序列名称中包括了样品信息。 4. 提取barcode为什么扩增子有barcode? 通常的测序仪下机数据,只经过Index比对,拆分成来自不同文库的数据文件,分发给用户。而扩增子的一个文库包括几十个样品,还区要通过每个样品上标记的特异Barcode进一步区分,再进行下游分析。 注:如果你是自己构建测序文库,返回数据可以按下文拆分样品;如果是公司建库并测序,他们有样品的barcode信息,通常会返给用户样品拆分后的数据,无需本节中的操作。但原理还是要理解,对整体分析的把握非常重要。 Barcode在扩增子的位置和类型? Barcode位于引物的外侧,比较典型的有三种,上图展示的为最常用的barcode位于左端(正向引物上游),此外还有右端和双端两类也比较常用。 extract_barcodes.py是QIIME中用于切除barcode的脚本,支持你想到的所有类型。 # 提取barcode
extract_barcodes.py -f temp/PE250_join/fastqjoin.join.fastq -m mappingfile.txt -o temp/PE250_barcode -c barcode_paired_stitched --bc1_len 0 --bc2_len 6 -a --rev_comp_bc2 这步任务会在输出目录 barcodes.fastq # 切下来的barcode,用于后续拆分样品
barcodes_not_oriented.fastq # 方向不确定序列的barcode。连引物都不匹配,质量太差,建议不再使用
reads1_not_oriented.fastq # 方向不确定序列的序列,可能barcode切错方向。连引物都不匹配,质量太差,不建议使用
reads2_not_oriented.fastq # 空文件
reads.fastq # 序列文件,与barcode对应,用于下游分析 更多说明建议阅读帮助 http:///scripts/extract_barcodes.html 5. 质控及样品拆分上步对序列方向进行了调整全部为正向,并切开了barcode与扩增序列。下面使用split_libraries_fastq.py对混池根据barcode拆分样品,同时筛选质量大于20(即准确度99%)的序列进行下游分析。参数解释如下: # 质控及样品拆分
split_libraries_fastq.py -i temp/PE250_barcode/reads.fastq -b temp/PE250_barcode/barcodes.fastq -m mappingfile.txt -o temp/PE250_split/ -q 20 --max_bad_run_length 3 --min_per_read_length_fraction 0.75 --max_barcode_errors 0 --barcode_type 6 运行结果会输出三个文件 histograms.txt # 所有序列长度分布数据,可知长分范围308-488,峰值为408
seqs.fna # 质控并拆分后的数据,序列按样品编号为SampleID_0/1/2/3
split_library_log.txt # 日志文件,有基本统计信息和每个样品的数据量;查看可知每个样品最大数据量为110454,最小值为10189 更多说明建议阅读帮助 http:///scripts/split_libraries_fastq.html 6. 切除引物序列这里我们介绍一款高通量引物切除软件,cutadapt,2017-6-16最新版1.14; Cutadapt 1.14下载和安装 # 下载,请尽量检查主页下载最新版源码
wget https://pypi./packages/16/e3/06b45eea35359833e7c6fac824b604f1551c2fc7ba0f2bd318d8dd883eb9/cutadapt-1.14.tar.gz
# 解压
tar xvzf cutadapt-1.14.tar.gz
# 进入程序目录
cd cutadapt-1.14/
# 安装在当前用户目录,不需管理员权限
python setup.py install --user cutadapt切除双端引物及长度控制,参数详解: cutadapt -g AACMGGATTAGATACCCKG -a GGAAGGTGGGGATGACGT -e 0.15 -m 300 --discard-untrimmed temp/PE250_split/seqs.fna -o temp/PE250_P5.fa 程序运行结果会在屏幕上输出结果统计报告,如去接头比例、去掉过短序列比例等;还有去除引物的长度分布,看看有没有异常。如3’端序列没有取反向互补会无法去除19bp序列,而是几bp的错误序列。 Cutadapt结果报告 This is cutadapt 1.14 with Python 2.7.12
Command line parameters: -g AACMGGATTAGATACCCKG -a GGAAGGTGGGGATGACGT -e 0.15 -m 300 --discard-untrimmed temp/PE250_split/seqs.fna -o temp/PE250_P5.fa
Trimming 2 adapters with at most 15.0% errors in single-end mode ...
Finished in 41.03 s (32 us/read; 1.87 M reads/minute).
=== Summary ===
Total reads processed: 1,277,436
Reads with adapters: 1,277,194 (100.0%)
Reads that were too short: 8,849 (0.7%)
Reads written (passing filters): 1,268,345 (99.3%)
Total basepairs processed: 522,379,897 bp
Total written (filtered): 495,607,409 bp (94.9%)
=== Adapter 1 ===
Sequence: GGAAGGTGGGGATGACGT; Type: regular 3'; Length: 18; Trimmed: 202757 times.
No. of allowed errors:
0-5 bp: 0; 6-12 bp: 1; 13-18 bp: 2
Bases preceding removed adapters:
A: 96.3%
C: 1.5%
G: 0.8%
T: 1.3%
none/other: 0.0%
WARNING:
The adapter is preceded by "A" extremely often.
The provided adapter sequence may be incomplete.
To fix the problem, add "A" to the beginning of the adapter sequence.
Overview of removed sequences
length count expect max.err error counts
3 3 19959.9 0 3
4 4 4990.0 0 4
6 2 311.9 0 2
18 202626 0.0 2 202626
19 56 0.0 2 56
=== Adapter 2 ===
Sequence: AACMGGATTAGATACCCKG; Type: regular 5'; Length: 19; Trimmed: 1074437 times.
No. of allowed errors:
0-5 bp: 0; 6-12 bp: 1; 13-19 bp: 2
Overview of removed sequences
length count expect max.err error counts
18 327 0.0 2 189 117 21
19 1059175 0.0 2 1056863 2069 243
20 13846 0.0 2 1817 10955 1074
21 744 0.0 2 5 10 729
WARNING:
One or more of your adapter sequences may be incomplete.
Please see the detailed output above. 写在后面今天先到这里,本文已经讲了三个程序的使用,够大家学习一会的了。要想了解这些程序的更多功能,一定要阅读程序的帮助全文,才能有更深入的理解。 下节预告:扩增子分析解读3去冗余,聚类,生成OTU表 |
|