打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用Canu对三代测序进行基因组组装

三代组装真的考验计算资源,我用20线程在correct这一步跑了整整3天,而一个小伙伴用超算,26node x 28 cpu, 6个小时搞定。

Canu简介

Canu是Celera的继任者,能用于组装PacBio和Nanopore两家公司得到的测序结果。

Canu分为三个步骤,纠错,修整和组装,每一步都差不多是如下几个步骤:

  • 加载read到read数据库,gkpStore

  • 对k-mer进行技术,用于计算序列间的overlap

  • 计算overlap

  • 加载overlap到overlap数据库,OvlStore

  • 根据read和overlap完成特定分析目标

    • read纠错时会从overlap中挑选一致性序列替换原始的噪声read

    • read修整时会使用overlap确定read哪些区域是高质量区域,哪些区域质量较低需要修整。最后保留单个最高质量的序列块

    • 序列组装时根据一致的overlap对序列进行编排(layout), 最后得到contig。

这三步可以分开运行,既可以用Canu纠错后结果作为其他组装软件的输入,也可以将其他软件的纠错结果作为Canu的输入,因此下面分别运行这三步,并介绍重要的参数。

几个全局参数:genomeSize设置预估的基因组大小,这用于让Canu估计测序深度; maxThreads设置运行的最大线程数;rawErrorRate用来设置两个未纠错read之间最大期望差异碱基数;correctedErrorRate则是设置纠错后read之间最大期望差异碱基数,这个参数需要在 组装 时多次调整;minReadLength表示只使用大于阈值的序列,minOverlapLength表示Overlap的最小长度。提高minReadLength可以提高运行速度,增加minOverlapLength可以降低假阳性的overlap。

组装实战

软件安装

Canu的软件安装不难,这里就不赘述了。

如果你的软件安装还没有过关,你可能还不适合学习这篇文章,我建议你先去腾讯课堂学习我录制的 生信必修课之软件安装 

数据下载

数据来自于发表在 Nature Communication 的一篇文章 “High contiguity Arabidopsis thaliana genome assembly with a single nanopore flow cell”。 这篇文章提供了 Arabidopsis thaliana KBS-Mac-74 的30X短片段文库二代测序、PacBio和Nanopore的三代测序以及Bionano测序数据, 由于拟南芥的基因组被认为是植物中的金标准,因此文章提供的数据适合非常适合用于练习。根据文章提供的项目编号”PRJEB21270”, 在European Nucleotide Archive上找到下载地址。

## PacBio Sequal
wget -c -q ftp://ftp.sra.ebi.ac.uk/vol1/ERA111/ERA1116568/bam/pb.bam
## MinION
wget -c -q ftp://ftp.sra.ebi.ac.uk/vol1/ERA111/ERA1116595/fastq/ont.fq.gz
# Illuminia MiSeq
wget -c -q ftp://ftp.sra.ebi.ac.uk/vol1/ERA111/ERA1116569/fastq/il_1.fq.gzwget -c -q ftp://ftp.sra.ebi.ac.uk/vol1/ERA111/ERA1116569/fastq/il_2.fq.gz

下载的PacBio数据以BAM格式存储,可以通过安装PacBio的smrtlink工具套装,使用其中的bam2fasta工具进行转换

# build index for convert
~/opt/biosoft/smrtlink/smrtcmds/bin/pbindex pb.bam &
# convert bam to fasta
~/opt/biosoft/smrtlink/smrtcmds/bin/bam2fasta -o pb pb.bam &

PacBio的smrtlink工具套装大小为1.4G,不但下载速度慢,安装也要手动确认各种我不清楚的选项, 唯一好处就是工具很全。

运行Canu

第一步:纠错。三代测序本身错误率高,使得原始数据充满了噪音。这一步就是通过序列之间的相互比较纠错得到高可信度的碱基。主要调整两个参数

  • corOutCoverage: 用于控制多少数据用于纠错。比如说拟南芥是120M基因组,100X测序后得到了12G数据,如果只打算使用最长的6G数据进行纠错,那么参数就要设置为50(120m x 50)。设置一个大于测序深度的数值,例如120,表示使用所有数据。

canu -correct \    -p ath -d pb_ath \    Threads=10 gnuplotTested=true\    genomeSize=120m minReadLength=2000 minOverlapLength=500\    corOutCoverage=120 corMinCoverage=2 \    -pacbio-raw pb.fasta.gz

可以将上述命令保存到shell脚本中进行运行, nohup bash run_canu.sh 2> correct.log &.

注: 有些服务器没有安装gnuplot, gnuplotTested=true 可以跳过检查。

第二步:修整。这一步的目的是为了获取更高质量的序列,移除可疑区域(如残留的SMRTbell接头).

canu -trim \        -p ath -d pb_ath        maxThreads=20 gnuplotTested=true\        genomeSize=120m minReadLength=2000 minOverlapLength=500\        -pacbio-corrected ath/pb_ath.correctedReads.fasta.gz

第三步: 组装。在前两步获得高质量的序列后,就可以正式进行组装. 这一步主要调整的就是纠错后的序列的错误率, correctedErrorRate,它会影响utgOvlErrorRate。这一步可以尝试多个参数,因为速度比较块。

# error rate 0.035
canu -assemble \    -p ath -d ath-erate-0.035 \    maxThreads=20 gnuplotTested=true \    genomeSize=120m\    correctedErrorRate=0.035 \    -pacbio-corrected atg/pb_ath.trimmedReads.fasta.gz
# error rate 0.050
canu -assemble \    -p ath -d ath-erate-0.050 \    maxThreads=20 gnuplotTested=true \    genomeSize=120m\    correctedErrorRate=0.050 \    -pacbio-corrected atg/pb_ath.trimmedReads.fasta.gz

最后输出文件下的ath.contigs.fasta就是结果文件。

参考资料

  • 官方文档: https://canu.readthedocs.io/en/latest/index.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Nanopore测序的基因组组装策略
三代测序专题一:纯PacBio组装策略的适用性
MPB:深大李猛组-基于PacBio SMRT三代测序的红树林沉积物真菌群落的研究
使用igblast进行免疫组库分析
一作解读 | Phasebook: 专注二倍体基因组,长 reads 从头组装单倍型
测序技术的前世今生—Nature纪念DNA测序40周年
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服