今天我们介绍一款用于三代长度长测序数据(如PacBio和纳米孔测序)的基因组de novo拼接工具 -- Canu,既适用于小基因组又适用于大基因组的组装,最早是为了应对低碱基质量(high-noise)的数据(如来自PacBio RSII/Sequel, ONT-MinION)。2017年3月15日,Canu发表于《Genome Biology》期刊上,题目为Canu: scalable and accurate long-read assembly via adaptive k-mer weighting and repeat separation,第一作者为美国国家人类基因组研究所(NHGRI)基因组信息学部门的Sergey Koren博士(图1)。他在基因组组装和单分子测序算法领域具有深厚的研究背景,开发了 Canu和 HiCanu等基因组组装软件,广泛应用于从微生物到人类的各种基因组组装项目。此外,他们还在 Telomere-to-Telomere(T2T)项目中担任领导角色(共1第2位),完成了首个完整(T2T)的人类基因组序列。
长读长的单分子测序技术彻底革新了从头基因组组装(de novo assembly)的方法,并使得构建参考级别质量(reference-quality)的基因组成为可能。然而,由于这类技术的错误率相对较高,高效而准确地组装大型重复序列和高度相似的单倍型(haplotypes)依然面临挑战。
在此,提出 Canu来应对这些问题。Canu是 Celera Assembler的继任者,专门为高噪声(high-noise)的单分子测序数据设计。Canu引入了对 纳米孔测序(nanopore sequencing)的支持,将所需测序深度减半,并在提高组装连续性的同时,相比 Celera Assembler 8.2 将大型基因组的运行时间缩短了一个数量级。
这些进步得益于一系列新的重叠与组装算法的引入,包括:
Canu 可以稳定地组装完整的微生物基因组,并使用 Pacific Biosciences(PacBio)或 Oxford Nanopore 技术近乎完整地组装真核染色体。在人的和果蝇(Drosophila melanogaster)的 PacBio 数据集中,Canu实现了 contig NG50 超过 21 Mbp 的优异性能。对于无法用线性序列表示的组装结构,Canu提供了基于图的组装结果输出,采用图形碎片组装格式(graphical fragment assembly,GFA),便于进一步分析或与其他分型(phasing)和搭架(scaffolding)技术整合使用(图2)。
Canu能利用测序错误率较高的三代测序数据(早期PacBio CLR或ONT)进行基因组de novo组装。从Canu (v1.9)开始,也支持PacBio HiFi数据的组装。Canu的组装准确度高、参数完备,能得到较好的基因组组装结果。相应地,资源消耗较多,较其它组装工具而言运行会稍慢(如Flye)。
Canu对原始数据的组装分为三个阶段和四个步骤 (图3):
1. 矫正 (Correction)
2. 修剪 (Trim)
3.组装 (Assembly)
相关知识:
目前,广泛使用的基因组组装算法有两种:OLC算法 (Overlap-Layout-Consensus) 和DBG算法 (De-Bruijn-Graph)。通俗地说,OLC适用于reads读长较长的数据 (三代测序),是在测序reads之间找overlap和连接路径;DBG适用于reads读长较短的数据 (二代数据),是对测序reads取kmer,在kmer之间找overlap和连接路径。
Canu: https://github.com/marbl/canu
版本:v2.3(2024.12.18)
#conda一键安装部署
$ conda install -c bioconda canu
# v2.3
#安装完毕后,调用主程序查看帮助
$ canu -h
输入序列支持FASTA或FASTQ格式,既可以是未压缩的,也可以是使用 .gz
、.bz2
或 .xz
压缩的。注意,不支持 .zip
格式。
Canu可以恢复未完成的组装任务,支持在系统中断或其他异常终止后继续运行。每次重新启动 Canu时,它会检查组装目录中的文件,以决定接下来的操作。例如,如果除了两个重叠计算任务之外其他都已完成,Canu只会计算这两个尚未完成的任务。为了获得最佳效果,请不要在重启之间更改Canu的参数设置。
Canu会自动检测可用的计算资源,并根据组装规模进行自我调整,尽可能充分并合理地利用所有可用资源。也可以用maxMemory
和maxThreads
参数来设置。
$ canu -p ecoli -d test genomeSize=4.8m -pacbio pacbio.fastq
Continuous Long Reads (CLR)测序模式是最早PacBio RS II/Sequel 主要的测序模式,错误率相对较高。
$ canu -p ecoli -d test genomeSize=4.8m maxInputCoverage=100 -nanopore nanopore.fastq
$ canu -p asm -d ecoli_hifi genomeSize=4.8m -pacbio-hifi ecoli.fastq
Canu运行后生成的全部结果在输出目录里,内容如下(图4):
Correction,Trimming,Unitigging文件夹里存放了纠错、修剪和组装的过程文件,主要结果文件包括:
🧬 ecoli.contigs.fasta:最终的组装contigs.
📋 ecoli.report:记录整个Canu运行过程及结果.
🔁 ecoli.correctedReads.fasta.gz:纠错后的reads.
📑 ecoli.trimmedReads.fasta.gz:修剪后的reads.
canu [-version] [-citation] \
[-haplotype | -correct | -trim | -assemble | -trim-assemble] \
[-s <组装参数文件>] \
-p <组装前缀> \
-d <组装目录> \
genomeSize=<数值>[g|m|k] \
[其他选项] \
[-haplotype{名称} illumina.fastq.gz] \
[-corrected] \
[-trimmed] \
[-pacbio |
-nanopore |
-pacbio-hifi] 文件1 文件2 ...
-haplotype 生成单倍型特异的reads
-correct 生成纠错后的reads
-trim 生成修剪后的reads
-assemble 进行组装
-trim-assemble 先修剪后组装
genomeSize 应为目标样本的单倍体基因组大小的最佳估计。主要用于评估 reads 的覆盖度,而不是作为期望的组装大小,支持小数。
useGrid=string 指定是否使用集群:true 表示使用集群,false 表示本地运行,remote 表示配置集群但不提交任务。
rawErrorRate=fraction-error 原始未纠错 reads 的允许差异比。低质量 reads 可设为较大值。默认值为:PacBio:0.300 Nanopore:0.500
correctedErrorRate=fraction-error 纠错后 reads 的允许差异比。对于覆盖度较低或具有生物差异的数据,稍微提高此值有益。默认值为:PacBio:0.045 Nanopore:0.144
gridOptions=string 提交任务时传给集群的命令字符串,例如设置最长运行时间。不建议用于设置内存限制,Canu 会自动处理内存分配。
minReadLength=number 忽略长度小于该值的 reads。默认:1000
minOverlapLength=number 忽略长度小于该值的 reads 重叠。默认:500
使用 -haplotype{名称} 指定单倍型,并在其后跟任意数量的 Illumina 单倍型特异性 reads 文件。{名称} 为自定义名称,仅限字母和数字。
测序平台:
-pacbio PacBio 数据
-nanopore Nanopore 数据
-pacbio-hifi 高保真 PacBio 数据
1.Koren S, Walenz BP, Berlin K, Miller JR, Phillippy AM. Canu: scalable and accurate long-read assembly via adaptive k-mer weighting and repeat separation. Genome Research. (2017)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。