生信小白组装学习系列:初识Canu与其组装实战训练(3)
随着技术的进步,还有各种流程工具的推出,三代测序PacBio和Nanopore在测序,还有基因组研究中越来越扮演着角色。掌握一些三代技术组装的知识,是未来作为生信工作者必不可少的技能。这次推文会给大家带来很多人都很熟悉的一款工具Canu,这里会简单探讨一下其使用的方法,给还没有接触过该工具的小伙伴,带来一些基础的认知。
Canu的介绍
简介
Canu是专门设计给组装PacBio或Oxford Nanopore长序列的一款工具。输入的序列可以是FASTA或FASTQ格式,未压缩或使用gzip(.gz),bzip2(.bz2)或xz(.xz)压缩的格式。但注意,Canu暂时并不支持zip文件(.zip)。
特点
Canu支持断点运行,允许从系统中断或其他它常终止中断点运行。每次重新启动Canu时,它都会检查程序集目录中的文件,以决定下一步该做什么。例如,如果除了两个组装任务之外的所有任务都已完成,那么当其重新启动之后,Canu仅会进行运行所缺失的两个任务。为获得最佳结果,请勿在重新启动,中途时候更改Canu的参数。Canu具有智能的检测功能。Canu能根据当前服务器所有可用的资源,自动检测计算资源并扩展调整自身参数的配置。当然你也可手动去调整,可以使用参数maxMemory和maxThreads明确限制内存和处理器的数目。
对数据的要求
对于真核基因组,理论上超过20倍的数据覆盖率,足以胜过当前的混合组装的方法。但Canu建议是,最小的数据深度范围为30倍至60倍。因为更深的覆盖度,将让Canu使用更长的读取进行装配,这将导致更好的组装结果。
运行流程
Canu分三个阶段进行组装运作:
- 修正 (Corret)
- 修剪 (Trim)
- 组装 (Assemble)
x修正阶段将会提高reads中碱基的准确性。修剪阶段将reads修剪到,看起来像高质量序列,并删除可疑的区域,例如剩余的SMRTbell的adpaters。组装阶段将reads排序为contigs,生成对应的共有序列(consensus suquences) 并创建可能的共有序列互相相连的路径。
Canu的安装
目前Canu的最新版本是1.8,大家可以直接到官网下载其安装包,然后解压编译:
gunzip -dc canu-v1.8.tar.gz | tar -xf -
cd canu-1.8/src
make -j 8
cd ..
又或者使用已经编译好的版本(最推荐):
wget https://github.com/marbl/canu/releases/download/v1.8/canu-1.8.Linux-amd64.tar.xz
tar -xJf canu-1.8.*.tar.xz
又或者使用conda进行下载安装:
conda install canu
基本运行参数
usage: canu [-version] [-citation] \
[-correct | -trim | -assemble | -trim-assemble] \
[-s <assembly-specifications-file>] \
-p <assembly-prefix> \
-d <assembly-directory> \
genomeSize=<number>[g|m|k] \
[other-options] \
[-pacbio-raw |
-pacbio-corrected |
-nanopore-raw |
-nanopore-corrected] file1 file2 ...
实战分析
这里使用一组细菌的数据来练练,并且熟悉使用Canu组装的整个流程。首先简单介绍一下我们使用到的数据。我们即将组装的细菌叫苏云金芽孢杆菌菌株,其strain是HS18-1,该细菌对双翅目的害虫具有一定的杀虫活性。该原始数据大小为1.5Gb,组装出来的基因大小为6.4Mb。
数据和运行
该数据存储于ENA中,然后这里我们只选取pacbio的数据进行下载:
wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR209/006/SRR2093876/SRR2093876_subreads.fastq.gz
然后就可以直接使用canu开始运行了:
canu -p Bt2 -d Bt2_assembly genomeSize=6.2m -pacbio-raw SRR2093876_subreads.fastq.gz
这个组装大概需要1个多小时去完成,生成的组装文件在Bt2_assembly/Bt2.contigs.fasta
,另外其他可能有用的文件Bt2.unassembled.fasta (没有被组装好的reads),Bt2.report This file (包含了每一步的运行信息)。
如果你想知道canu究竟执行了什么脚本,我们可以到canu-scripts目录去查看其运行的脚本:
ls Bt2_assembly/canu-scripts/
###屏幕显示
canu.01.out canu.02.out canu.03.out canu.04.out canu.05.out canu.06.out canu.07.out canu.08.out canu.09.out canu.10.out canu.11.out canu.12.out
canu.01.sh canu.02.sh canu.03.sh canu.04.sh canu.05.sh canu.06.sh canu.07.sh canu.08.sh canu.09.sh canu.10.sh canu.11.sh canu.12.sh
Canu的最基本最基本的介绍到这里就结束了,看起来还是蛮简单易懂的,入门的目的算是达成了,但是呢,这离真正掌握熟悉整个三代组装,还是有一段距离的(因为组装植物,动物等等的难度可是比细菌高很多,然后这里还没有设计太多polish的内容)。这里就先挖下一个坑,忙完这一段后日后还是要抽时间好好再实战学习三代组装的流程,毕竟未来是三代测序的时代呀。
如果你觉得你离组装还太遥远,不要紧,下期会给大家带来如何评估组装好的基因组质量的推文,会更加实用简单易懂,最后给大家附上Canu其他一些使用教程:
- Canu官方最完整的使用教程:https://canu.readthedocs.io/en/latest/tutorial.html
- Canu使用遇到的常见问题(你遇到的问题百分之九十会出现在这里):
https://canu.readthedocs.io/en/latest/faq.html