二代、三代测序软件及分析流程整理
二代测序拼接软件
SPAdes
该软件是最常用的二代测序拼接软件。速度虽然没有soapdenovo快,但是结果似乎更加可靠,并且考虑到SOAPdenovo多年没有更新,SPAdes应该为首选。
另外,SPAdes 软件不仅支持 illumina 测序数据,还可用于Ion Torrent测序数据,PacBio测序数据、sanger 数据,Nanopore数据。并且可以加入其它拼接结果以作为辅助拼接(Hybrid)。
1
| spades.py -1 illumina_ninanjie_1_clean.fastq.gz -2 illumina_ninanjie_2_clean.fastq.gz -o spades_illumina -t 24
|
SOAPdenovo
SOAPdenovo 是由华大基因开发的 SOAP 软件包的一部分,主要用于短序列 reads 拼接,尤其是 illumina 测序数据。但已长时间无人维护。
二代测序流程
- 获取测序数据
- fastqc 质控
1
| fastqc -f fastq -o illumina_qc/ illumina_ninanjie_1.fastq.gz illumina_ninanjie_2.fastq.gz
|
- fastp去除质量不好的位点
1
| fastp -i ../illumina_ninanjie_1.fastq.gz -o ../illumina_ninanjie_1_clean.fastq.gz -I ../illumina_ninanjie_2.fastq.gz -O ../illumina_ninanjie_2_clean.fastq.gz -z 4 -q 20 -u 30 -n 10 -f 20 -t 10 -F 20 -T 10 -h clean.html
|
- 再次fastqc质控得到clean的数据
1
| fastqc -f fastq -o illumina_clean_qc/ illumina_ninanjie_1_clean.fastq.gz illumina_ninanjie_2_clean.fastq.gz
|
- 使用二代测序拼接软件对clean数据进行拼接
1
| spades.py -1 illumina_ninanjie_1_clean.fastq.gz -2 illumina_ninanjie_2_clean.fastq.gz -o spades_illumina -t 24
|
- 纠错
三代测序拼接软件
flye(适合Pacbio和Nanopore)
flye 原来叫做abruijn,是一款适合单分子测序的拼接软件,适合处理Pacbio与Nanopore数据。flye 适合拼接多种数据集,从小的细菌基因组到很大的哺乳动物基因组都可以完成。
flye 其实是一个完整的拼接流程,原始测序数据作为输入,最后就可以直接输出经过纠错校正的基因组序列,同时,flye 也有一个独立的模块可以用来拼接宏基因组。
1
| flye --nano-raw nanopore_ninanjie.fastq.gz -g 120m -t 12 -o flye_nano
|
canu(适合Pacbio和Nanopore)
canu 是一款三代测序数据拼接软件,适用于 Pacbio 与 Nanopore 测序数据。canu 软件其实具有悠久的历史,虽然只发表于 2017 年,但其源于著名的 Celera Assembler。Celera Assembler 主要用于一代测序,现在已不再更新。canu 延续了Celera Assembler工具的组装原理,专门用于三代长读长以及错误率较高的测序的结果组装。canu软件缺点是非常消耗资源,拼接比较耗时,默认会使用所有 CPU。
1
| canu -d canu -p canu genomeSize=5.4m maxThreads=24 -nanopore-raw ../data/clean.filtlong.fq.gz
|
wtdbg2(适合Pacbio和Nanopore)
wtdbg2是阮珏写的另外一个拼接软件,可以用于 PacBio 或Nanopore的数据拼接,该软件无需纠错直接进行拼接,然后生成一致性序列。wtdbg2运行速度比 canu 和 falcon 都要快很多。能够拼接人全基因组序列,甚至是32Gb的蝾螈基因组。
1
| wtdbg2.pl -t 12 -x ont -g 5.4m -o wtdbg2 ../data/clean.filtlong.fq.gz
|
三代测序流程
- 获取测序数据
- 质控(Nanopore使用nanoplot进行质控)
1
| NanoPlot --fastq nanopore.fastq.gz -o nanoplot
|
- 过滤数据
1
| filtlong --min_length 2000 --min_mean_q 90 nanopore.fastq.gz | gzip >clean.filtlong.fq.gz
|
- 再质控
1
| NanoPlot --fastq clean.filtlong.fq.gz -o nanoplot_clean
|
- 使用三代测序软件进行拼接(flye、canu、wtbdg2等)
- 纠错
拼接结果优化
拼接结果优化,也就是纠错(polishing)。
Medeka
Medaka是由 Oxford Nanopore 开发的开源软件。使用时最好创建虚拟环境,否则容易报错。
1 2 3 4 5
| conda activate medaka
READ=../data/nanopore.sra.fastq.gz medaka_consensus -i $READ -d assembly.fasta -o medaka_result -m r941_min_high_g360 -v medaka.vcf -t 24 >medaka.log
|
Pilon
Pilon 是由 broadinstitute 研究所开发的纠错工具,输入拼接结果(三代)以及原始测序数据(二代)比对到拼接结果(三代)的bam 文件即可。 输入的 bam 可以来自于二代测序数据的比对,也可以来自于三代测序数据比对得到的 bam,注意bam 文件需要排序并建立索引。并且Pilon在使用时要注意java使用的内存空间,修改Pilon.jar来增加上限,否则报错。
1 2 3 4 5 6 7 8 9 10 11
| bwa index medaka.fasta
READ1=/ifs1/TestDatas/nanopore7/data/MGH78578/illumina.sra_1.fastq.gz READ2=/ifs1/TestDatas/nanopore7/data/MGH78578/illumina.sra_2.fastq.gz bwa mem -t 4 -R '@RG\tID:foo\tSM:bar:\tPL:ILLUMINA' medaka.fasta $READ1 $READ2 >illumina.sam
samtools sort -@ 4 -O bam -o illumina.sorted.bam illumina.sam samtools index illumina.sorted.bam
java -Xmx32G -jar /ifs1/Software/biosoft/pilon/pilon-1.23.jar --genome medaka.fasta --fix all --changes --frags illumina.sorted.bam --output pilon --outdir pilon_result --threads 24 --vcf 2> pilon.log
|
Racon
Racon 是基于 minimap 和 miniasm 构建一致性序列(consensus)的一款软件,也可以用于纠错。既可以用于三代数据也可以用于二代数据。输入数据需要三个,首先是 contig,然后是测序的 reads,以及前面二者比对的结果,这个比对结果是 MHAP, PAF,SAM 三种格式当中的一种即可。数据结果为纠错后的 contig 序列。 Racon 纠错一般都会进行多轮。
1 2 3 4 5 6 7 8 9 10 11 12
| DRAFT=../pilon/pilon_result/pilon.fasta READ=/ifs1/TestDatas/nanopore7/data/MGH78578/clean.filtlong.fq.gz
minimap2 -t 4 ${DRAFT} ${READ} > round_1.paf
racon -t 4 ${READ} round_1.paf ${DRAFT} > racon_round1.fasta
minimap2 -t 4 racon_round1.fasta ${READ} > round_2.paf racon -t 4 ${READ} round_2.paf racon_round1.fasta> racon_round2.fasta
minimap2 -t 4 racon_round2.fasta ${READ} > round_3.paf racon -t 4 ${READ} round_3.paf racon_round2.fasta> racon_round3.fasta
|
特别注意
- 一定要注意软件使用的范围,比如unicycler就只能拼接比较小的基因组比如细菌完成图