Verkko 简介
Verkko 是一款杂合基因组组装流程 ,专门用于利用精准长读长测序数据(PacBio HiFi、牛津纳米孔双链测序、HERRO 纠错或 Hifiasm 纠错的牛津纳米孔单链测序数据)结合牛津纳米孔超长读长 完成端粒到端粒的完整基因组组装。Verkko 一词源自芬兰语,本意是网、网状、图谱。
bash
https://github.com/marbl/verkko #官网
组装核心流程
- 调用 Canu 校正测序读长中残留错误;
- 借助 MBG 构建多重德布鲁因图;
- 通过 GraphAligner 将纳米孔长读长序列比对至组装图谱;
- 先利用 HiFi 精准读长逐步拆解图谱环结构与复杂缠绕区域,再依托已比对的纳米孔读长进一步优化;
- 最后调用 Canu 一致序列模块生成最终重叠群一致序列。
目录
安装教程 | 快速上手 | 输出文件 | 测试数据集
安装
推荐使用包管理器一键安装
bash
wget -c https://github.com/marbl/verkko/releases/download/v2.3.2/verkko-v2.3.2.tar.gz
bash
conda create -n verkko -c conda-forge -c bioconda -c defaults verkko
也可下载正式版源码手动编译安装。
源码编译安装
使用
Verkko 基于Snakemake 流程框架开发,通过封装脚本解析运行参数并自动生成verkko.yml配置文件。
基础运行命令:
bash
verkko -d 工作目录 --hifi HiFi测序数据 [--nano 纳米孔测序数据]
直接输入verkko不带任何参数,可查看全部运行参数及简要说明。 程序最低运行要求 :必须通过--hifi传入高精度长读长数据,该参数可单独传入 PacBio HiFi、纳米孔双链数据,也可二者组合使用。
强烈建议 :搭配--nano传入超长测序序列,同时加入分型定相数据(见下文)。 若使用 HERRO 纠错序列,纠错序列填至 --hifi,原始未纠错序列填至 --nano 。 Verkko 最终输出完成分型定相的支架序列,不会主动生成主序列或单倍体精简组装结果。
分型定相
Verkko 可借助Rukki工具,依托家系三联体数据或 Hi-C 互作数据实现拓展型序列分型。
-
三联体家系分型模式 需提前构建 Merqury 单倍型 k-mer 数据库并传入程序
verkko -d asm
--hifi hifi/.fastq.gz
--nano ont/.fastq.gz
--hap-kmers 父本kmer数据库 母本kmer数据库 trio -
Hi-C 染色质互作组装模式 通过
--hic1、--hic2分别传入双端测序数据verkko -d asm
--hifi hifi/.fastq.gz
--nano ont/.fastq.gz
--hic1 hic/R1fastq.gz
--hic2 hic/R2fastq.gz -
PoreC 测序组装模式 使用
--porec参数传入数据verkko -d asm
--hifi hifi/.fastq.gz
--nano ont/.fastq.gz
--porec porec/*fastq.gz
Hi-C 与 PoreC 组装方案目前主要在人类及灵长类基因组 中完成验证。 组装非人类物种、测序深度不均时,可调整--rdna-tangle、--uneven-depth、--haplo-divergence等参数;使用遇问题可提交项目 issue 反馈。
支架搭建
当传入 Hi-C/Pore-C 数据时,程序会启用独立支架构建模块(区别于仅靠三联体数据的简易定相连通)。 Verkko 依托组装图谱粗略估算序列间隙长度:
- 间隙预估长度<100 kb:写入实际预估数值
- 无法预估或间隙更大:统一填充 100 kb 长度的 N 碱基
支架组装模块会识别序列中端粒位置(依赖 seqtk 端粒检测工具);若研究物种端粒重复基序不同于脊椎动物 CCCTAA ,可通过--telomere-motif手动指定。
可通过--ref传入同种或近缘物种基因组作为组装参考指引 ,非参考序列依赖型组装 ,仅作辅助搭建支架使用。 该模块依赖二倍体基因组结构,不支持单倍体组装参数 --haploid ,单倍体组装推荐独立工具 YaHS。 目前暂不支持多倍体基因组分型与支架构建。
自定义图谱路径生成一致序列
若已有组装结果,想自主调整基因组图谱节点拼接方式,可使用--paths参数按GAF 路径格式 传入自定义拼接路径文件(每行一条拼接路径)。 使用该功能需指定原有组装目录--assembly与输出目录-d(二者不可相同),同时提供原始测序数据。
集群调度运行
默认本地单机运行全流程;添加--grid参数可启用调度队列,支持 SGE、Slurm、LSF 调度系统(PBS 未实测)。 仅调度计算任务上集群、流程调度仍本地执行;若需流程与计算全部提交集群,可将命令写入脚本批量提交。 Conda 环境用户可通过--python指定 conda 内置 Python 解释器。
集群资源精细化调控
流程各阶段 CPU、内存、运行时长均有默认配置,高级用户可通过--阶段名-run自定义资源; 也可通过--snakeopts直接透传 Snakemake 原生参数管控集群资源:
--snakeopts "--dry-run":试运行,预览所有待执行任务--snakeopts "--cores 1000":限制集群最大总核心数--snakeopts "--touch":刷新文件时间戳,跳过已完成步骤 修改组装中间文件、重启流程前,建议先试运行校验执行逻辑。
污染序列过滤
通过--screen参数可批量剔除组装结果中常见污染序列,格式: --screen 污染物种名 污染序列fasta文件
内置人类组装专属快捷过滤参数: --screen-human-contaminants 一键过滤核糖体 DNA、线粒体 DNA、EB 病毒等常见人类样本污染源。 程序会依据测序覆盖度筛选标准代表序列,对环状序列完成环化修正,消除首尾自相似冗余序列。
命令行参数
verkko -d 输出目录 --hifi HiFi测序数据 --nano 纳米孔测序数据
必选参数
-d <output-directory>:指定输出目录,存放中间文件与最终组装结果,不存在则自动创建--hifi <files ...>:传入 PacBio HiFi 测序文件 支持 fasta/fastq,原生 /.gz/.bz2/.xz 压缩格式,可批量通配*.gz--nano <files ...>:传入牛津纳米孔测序文件 支持 fasta/fastq/sam/bam 多种格式,压缩格式与批量传入规则同上
算法功能参数
--no-correction:跳过 Canu 对 HiFi 序列的纠错步骤--no-nano:仅用 HiFi 组装,不使用纳米孔数据--hap-kmers:依托 Rukki 结合亲本 k-mer 数据库完成序列分型,支持三联体 / Hi-C / 链特异性测序三种模式--hic1 / --hic2:分别传入 Hi-C 双端测序数据,左右端文件顺序必须一一对应--porec:传入 Pore-C 染色质互作测序数据--no-rdna-tangle:关闭核糖体 DNA 复杂缠绕区域优化组装功能--telomere-motif:自定义端粒重复序列,默认脊椎动物CCCTAA--ref:传入参考基因组仅作支架搭建辅助引导,非参考依赖组装--uneven-depth:关闭杂合区域测序深度校正算法--haplo-divergence:设置单倍型序列最大分化度,人源默认 0.05,远缘物种适当调高,范围 0~0.2--screen:指定序列批量过滤污染序列;--screen-human-contaminants一键过滤人源常见污染(rDNA、线粒体、EB 病毒)--paths:导入 GAF 格式自定义拼接路径,结合已有组装结果重新生成目标序列
运行环境与计算资源参数
--python / --perl:指定调用的 Python、Perl 解释器路径--mbg / --graphaligner等:手动指定各类依赖软件路径,默认调用环境内置版本--cleanup:组装完成自动删除中间文件--no-cleanup:保留全部中间文件(默认开启)--local:本地服务器运行(默认模式)--local-memory:设置本地运行最大占用内存(GB)--local-cpus:指定使用 CPU 核心数,默认全核调用--grid:提交任务至集群调度(支持 SGE/Slurm/PBS/LSF)--snakeopts:追加 Snakemake 原生运行参数,参数必须加引号各类--xxx-run:自定义组装各步骤 CPU、内存、运行时长资源限制
高级调参(专业用户)
可自定义 HiFi 纠错、德布鲁因图构建、纳米孔序列拆分、序列比对等流程的 k-mer 大小、比对阈值、序列长度过滤等精细化参数
本地运行指定 100G 内存 完整示例
verkko \
-d verkko_assembly \
--hifi hifi/*.fastq.gz \
--nano ont/*.fastq.gz \
--local-memory 100
纯 HiFi 组装(无纳米孔)+ 100G 内存
verkko \
-d verkko_hifi_asm \
--hifi hifi/*.fastq.gz \
--no-nano \
--local-memory 100
搭配指定 CPU 核心(例如 32 核 + 100G 内存)
verkko \
-d verkko_assembly \
--hifi hifi/*.fastq.gz \
--nano ont/*.fastq.gz \
--local-cpus 32 \
--local-memory 100
输出文件说明
- 最终组装序列:
asm/assembly.fasta - 同聚物压缩格式组装图谱:
asm/assembly.homopolymer-compressed.gfa+ 覆盖度统计 csv 文件 - 序列与图谱节点对应关系表:
asm/assembly.scfmap - 组装中间图谱与覆盖度文件:
asm/*/unitig-*系列文件 - 开启分型定相后新增:单倍型序列
assembly.haplotype[12].fasta、分型注释表assembly.colors.csv、拼接路径表assembly.paths.tsv - 开启污染过滤后新增:剔除污染序列文件与筛选后的标准代表序列文件
测试数据集(快速验证安装)
下载大肠杆菌 K12 测试数据并一键组装
curl -L https://obj.umiacs.umd.edu/sergek/shared/ecoli_hifi_subset24x.fastq.gz -o hifi.fastq.gz
curl -L https://obj.umiacs.umd.edu/sergek/shared/ecoli_ont_subset50x.fastq.gz -o ont.fastq.gz
verkko -d asm --hifi ./hifi.fastq.gz --nano ./ont.fastq.gz
引用
- Rautiainen M, Nurk S, Walenz BP, Logsdon GA, Porubsky D, Rhie A, Eichler EE, Phillippy AM, Koren S. Telomere-to-telomere assembly of diploid chromosomes with Verkko. Nat Biotech. (2023).
doi:10.1038/s41587-023-01662-6 - Antipov D, Rautiainen M, Nurk S, Walenz BP, Solar SJ, Phillippy AM, Koren S. Verkko2 integrates proximity ligation data with long-read De Bruijn graphs for efficient telomere-to-telomere genome assembly, phasing, and scaffolding. Genome Research (2025).
10.1101/gr.280383.124