NextDenovo
NextDenovo 是一款基于字符串图(string graph)的长读长序列从头组装软件,适用于 CLR、HiFi 和 ONT 等长读长测序数据。该软件采用与 canu 相似的 “先校正后组装” 策略(PacBio HiFi 读长无需校正步骤),但所需的计算资源和存储空间显著更少。组装完成后,序列的单碱基准确率约为 98%-99.8%;若需进一步提升单碱基准确性,可尝试使用 NextPolish 软件。
我们以人类和黑腹果蝇的 Oxford Nanopore 长读长数据、拟南芥的 PacBio 连续长读长(CLR)数据为基准,将 NextDenovo 与其他组装软件进行了对比测试。结果表明,与其他工具相比,NextDenovo 组装得到的序列连续性更好,重叠群(contig)数量更少;且在组装一致性和单碱基准确性方面,NextDenovo 也表现出较高的组装精度。
https://github.com/Nextomics/NextDenovo #官网安装
环境要求
Python(支持 python 2 和 python 3):需安装 Paralleltask 模块,执行命令:pip install paralleltask
安装方法
点击此处下载,或执行以下命令:
wget https://github.com/Nextomics/NextDenovo/releases/latest/download/NextDenovo.tgz tar -vxzf NextDenovo.tgz && cd NextDenovo若需从源码编译安装,执行:
git clone git@github.com:Nextomics/NextDenovo.git cd NextDenovo && make测试
执行以下命令进行测试:
nextDenovo test_data/run.cfg常用命令及参数
NextDenovo 至少需要一个读长文件(参数:input_fofn)作为输入,支持 gzip 压缩的 FASTA 和 FASTQ 格式,所有运行参数均通过配置文件传递。
输入项
input_fofn(一行一个文件)
可通过以下命令生成该文件:
ls reads1.fasta reads2.fastq reads3.fasta.gz reads4.fastq.gz ... > input.fofn配置文件
配置文件为文本文件,包含一组键值对(key=value)形式的参数,用于设置 NextDenovo 的运行参数。以下是典型的配置文件示例(该文件也位于 doc/run.cfg 路径下):
[General] job_type = local job_prefix = nextDenovo task = all rewrite = yes deltmp = yes parallel_jobs = 20 input_type = raw read_type = clr # 可选值:clr, ont, hifi input_fofn = input.fofn workdir = 01_rundir [correct_option] read_cutoff = 1k genome_size = 1g # 预估基因组大小 sort_options = -m 20g -t 15 minimap2_options_raw = -t 8 pa_correction = 3 correction_options = -p 15 [assemble_option] minimap2_options_cns = -t 8 nextgraph_options = -a 1输出项
workdir/03.ctg_graph/nd.asm.fasta
FASTA 格式的重叠群(contig)文件。FASTA 标题行包含序列 ID、类型、长度、节点数等信息;序列中连续的小写字母区域表示弱连接区域,单个小写字母标记低质量碱基。
workdir/03.ctg_graph/nd.asm.fasta.stat
组装结果的基础统计信息文件,包含 N10-N90、总长度等指标。
参数说明
全局参数
job_type = sge
任务运行的调度类型,可选值:local(本地)、sge、pbs、lsf、slurm 等(默认值:sge)。
job_prefix = nextDenovo
任务的前缀标签(默认值:nextDenovo)。
task = <all, correct, assemble>
需要执行的任务类型:
- correct:仅执行校正步骤;
- assemble:仅执行组装步骤(仅当 input_type = corrected 或 read_type = hifi 时生效);
- all:执行校正 + 组装全流程(默认值:all)。
rewrite = no
是否覆盖已存在的输出目录,可选值:yes、no(默认值:no)。
deltmp = yes
是否删除中间结果文件(默认值:yes)。
rerun = 3
未完成任务的重试次数,直至任务完成或达到设定次数;设为 0 表示不重试(默认值:3)。
parallel_jobs = 10
并行运行的任务数量(默认值:10)。
input_type = raw
输入读长的类型,可选值:raw(原始数据)、corrected(已校正数据)(默认值:raw)。
input_fofn = input.fofn
输入文件列表路径,要求一行一个文件(必填参数)。
read_type = {clr, hifi, ont}
读长类型(必填参数):
- clr:PacBio 连续长读长(Continuous Long Reads);
- hifi:PacBio 高准确度长读长(Highly Accurate Long Reads);
- ont:纳米孔 1D 读长(NanoPore 1D reads)。
workdir = 01.workdir
工作目录(默认值:当前目录 ./)。
usetempdir = /tmp/test
计算节点上的临时目录,用于避免高 IO 等待(默认值:无)。
nodelist = avanode.list.fofn
可用节点的主机名列表,一行一个节点;非 sge 调度类型下需配合 usetempdir 使用。
submit = auto
提交任务的命令,auto 表示由 Paralleltask 自动设置。
kill = auto
终止任务的命令,auto 表示由 Paralleltask 自动设置。
check_alive = auto
检查任务状态的命令,auto 表示由 Paralleltask 自动设置。
job_id_regex = auto
用于从提交命令输出中解析任务 ID 的正则表达式,auto 表示由 Paralleltask 自动设置。
use_drmaa = no
是否使用 drmaa 接口提交和控制任务。
校正参数
read_cutoff = 1k
过滤长度小于该值的读长(默认值:1k)。
genome_size = 1g
预估的基因组大小,支持 K/M/G 单位后缀;用于计算 seed_cutoff/seed_cutfiles/blocksize 及平均测序深度;若手动设置 seed_cutoff,该参数可省略。
seed_depth = 45
预期的种子序列测序深度,用于计算 seed_cutoff,需与 genome_size 配合使用;建议设置为 30-45 以获得更优组装结果(默认值:45)。
seed_cutoff = 0
种子序列的最小长度;≤0 表示通过 bin/seq_stat 工具自动计算。
seed_cutfiles = 5
将种子序列拆分为指定数量的子文件(默认值:与 pa_correction 取值一致)。
blocksize = 10g
并行运行的块大小,将非种子序列拆分为多个小文件,每个文件的最大大小为 blocksize(默认值:10g)。
pa_correction = 3
并行执行的校正任务数量;每个校正任务约占用 总输入碱基数 / 4 字节的内存,该参数仅覆盖此步骤的 parallel_jobs 取值(默认值:3)。
minimap2_options_raw = -t 10
minimap2 运行参数,用于寻找原始读长间的重叠区域;详见 minimap2-nd 说明文档。
sort_options = -m 40g -t 10
排序参数;详见 ovl_sort 说明文档。
correction_options = -p 10
校正参数,具体说明如下:
- -p/--process:设置校正使用的进程数(默认值:10);
- -b/--blacklist:关闭过滤步骤,保留更多校正后数据;
- -s/--split:将包含未校正区域的种子序列拆分(默认值:False);
- -fast:加速模式(速度提升 0.5-1 倍,准确性略有下降)(默认值:False);
- -dbuf:禁用 2bit 文件缓存,减少约 总输入碱基数 / 4 字节的内存占用(默认值:False);
- -max_lq_length:校正后种子序列中连续低质量区域的最大长度;值越大,校正数据量越多但准确性越低(默认值:自动适配 [pb/1k, ont/10k])。
组装参数
minimap2_options_cns = -t 8 -k17 -w17
minimap2 运行参数,用于寻找校正后读长间的重叠区域。
minimap2_options_map = -t 10
minimap2 运行参数,用于将读长比对回组装序列。
nextgraph_options = -a 1
nextgraph 运行参数。