从零开始:使用PacBio HiFi和ONT超长读取组装基因组(保姆级教程)

📅 发布时间:2026/7/9 20:49:42 👁️ 浏览次数:
从零开始:使用PacBio HiFi和ONT超长读取组装基因组(保姆级教程)
从零构建融合PacBio HiFi与ONT超长读长数据的基因组组装实战指南如果你刚刚踏入基因组组装的世界面对PacBio HiFi和Oxford Nanopore Technologies超长读长数据可能会感到既兴奋又无从下手。这两种技术正在彻底改变我们获取完整生命蓝图的方式让曾经遥不可及的“端粒到端粒”完整组装如今在实验室中变得触手可及。这篇文章就是为你准备的——无论你是生物信息学新手还是需要快速上手新技术的科研人员我将带你走过从原始数据到高质量基因组组装的每一个关键步骤分享那些只有实际操作过才会知道的细节和技巧。1. 理解核心数据PacBio HiFi与ONT超长读长的本质差异在开始任何操作之前我们必须先弄清楚手里这两把“利器”究竟有何不同。很多人误以为它们只是“长”和“更长”的区别但实际上它们的底层原理、数据特性以及适用场景有着本质的差异。PacBio HiFi读长的核心优势在于准确性。它通过环形一致性测序技术对同一个DNA分子进行多次读取然后通过算法校正最终产生准确率超过99.9%的读长序列。这种高准确性对于区分基因组中高度相似的重复序列至关重要。想象一下你要区分两段99%相同的序列如果读长本身就有10%的错误那几乎是不可能完成的任务。HiFi读长通常长度在10-25 kb之间这个长度足以跨越大多数中等长度的重复区域。相比之下ONT超长读长的王牌是长度。最新的化学试剂和流动槽可以让读长轻松突破100 kb甚至达到兆碱基级别。这种超长跨度能力使其成为解决那些HiFi读长无法跨越的“鸿沟”——比如着丝粒区域长达数十kb的高度串联重复序列——的理想工具。然而它的单次读取原始准确率通常在95%-98%之间需要通过后续的生物信息学分析进行纠错。提示不要将这两种技术视为竞争对手而应视作互补的“黄金搭档”。HiFi提供精准的“拼图碎片”而ONT超长读长则提供了这些碎片之间如何连接的“全景地图”。为了更直观地对比我们来看一个具体的参数对照表特性维度PacBio HiFi 读长ONT 超长读长 (如R10.4.1化学)典型读长范围10 - 25 kb50 - 200 kb (N50)单读长原始准确率 99.9% (Q30)~ 98-99% (Q20-Q30)核心优势碱基级高精度区分细微变异超长跨度连接远距离片段主要挑战对高GC或复杂二级结构区域覆盖可能不均存在系统性测序错误如同聚物错误数据预处理重点过滤低质量读长评估覆盖均匀性纠错、过滤嵌合读长和接头序列在组装中的角色构建高准确度的核心组装骨架解决复杂重复区域连接骨架片段在实际项目中数据的选择和搭配策略取决于你的目标。如果你的物种基因组重复序列相对简单或者你主要关注基因编码区那么仅使用HiFi数据可能就足够了。但如果你挑战的是像人类、小麦这样具有复杂着丝粒和端粒重复结构的基因组或者你追求的是真正的染色体级别完整组装那么“HiFi ONT超长”的组合几乎是目前的标准答案。2. 实战第一步数据质控与预处理的艺术拿到测序公司返回的原始数据通常是.bam或.fastq格式千万别急着扔进组装软件。低质量的数据进去垃圾组装出来。这一步的细致程度直接决定了你后续所有工作的上限。首先让我们用最常用的工具之一NanoPlot来快速瞥一眼ONT超长读长数据的全貌。假设你的原始fastq文件名为ont_data.fastq。# 安装NanoPlot (如果尚未安装) # pip install NanoPlot # 运行基本质控生成报告和图表 NanoPlot --fastq ont_data.fastq --loglength -o ont_qc_report这个命令会生成一个包含多种图表的HTML报告。你需要重点关注以下几点读长长度分布图查看N50长度是否符合预期例如50 kb。如果分布严重左偏说明超长读长比例低可能需要检查文库制备或测序运行条件。平均质量分数分布ONT数据通常期望平均Q分数在10以上。如果大量读长质量低于7后续纠错会非常困难。读长数量与总碱基数计算预估的基因组覆盖深度。对于辅助组装ONT超长读长的目标覆盖度通常在20-30X即可过高的覆盖度对计算资源是巨大负担且收益递减。对于PacBio HiFi数据质控流程略有不同。HiFi数据本身已经是高度校正后的产物所以我们的重点是过滤掉残留的、长度过短或来自适配器/载体的读长。我们可以使用pbbam工具包中的bam2fastx提取序列并用seqkit进行快速过滤。# 从HiFi的bam文件中提取fastq bam2fastq -o hifi_reads original_hifi.bam # 使用seqkit过滤掉长度小于5kb的读长根据基因组复杂度和重复单元大小调整阈值 seqkit seq -m 5000 hifi_reads.fastq.gz hifi_filtered.fastq接下来是数据纠错这对ONT数据尤为关键。虽然HiFi数据已经过校正但ONT超长读长的原始错误率意味着我们必须借助其他信息来修正它。一个常见且有效的策略是使用高准确度的HiFi读长来校正ONT读长。这就像用一把精密的尺子HiFi去校准一把长长的卷尺ONT。我们可以使用NextDenovo工具的correct模块或Canu的纠错模式。# 使用NextDenovo进行基于HiFi的ONT读长纠错示例 # 首先需要准备一个配置文件 nextdenovo.cfg # 文件内容示例 [General] job_type local job_prefix correct task correct rewrite yes deltmp yes parallel_jobs 20 input_type raw read_type ont input_fofn ./input.fofn # 此文件列出ONT fastq文件路径 corrected_fofn ./corrected.fofn [correct_option] read_cutoff 1k seed_cutoff 30000 blocksize 1g pa_correction 20 seed_cutfiles 10 sort_options -m 20g -t 8 -k 50 minimap2_options_raw -t 8 correction_options -p 20 # 然后运行纠错 nextDenovo run nextdenovo.cfg这个纠错过程会消耗大量计算资源和时间但它能显著提升ONT数据的可用性将系统错误率降低到与HiFi数据相近的水平为后续的混合组装打下坚实基础。记住纠错后的ONT数据不应再用于评估原始测序质量所有后续分析都应基于纠错后的数据集。3. 组装策略选择从单一到混合的路径规划有了干净的数据接下来就是选择组装策略和工具。这里没有“一刀切”的最佳方案你的选择应该基于基因组特征、数据质量和最终目标。我们可以将策略分为三个层次仅HiFi组装适用于重复序列相对简单、杂合度不高的基因组或作为快速获取高质量基因区序列的首选。HiFi为主ONT超长读长为辅的混合组装当前复杂基因组组装的主流策略。用HiFi构建精确的“砖块”用ONT超长读长作为“钢筋”将它们连接成更大的结构。多数据类型整合组装在混合组装基础上进一步融入Hi-C、光学图谱或遗传图谱数据实现染色体级别的支架构建和单倍型分型。近年来几个优秀的组装器在社区中脱颖而出它们各有侧重。hifiasm和verkko是专门为利用HiFi和ONT超长读长数据而设计的现代组装器它们在处理二倍体、高杂合基因组方面表现出色。Flye则是一个更通用的长读长组装器对纯ONT数据或混合数据都有很好的支持。为了帮你做出选择我梳理了不同场景下的工具推荐目标场景推荐工具关键理由与注意事项快速获得高质量连续序列(仅HiFi)hifiasm速度较快内存效率高能直接输出分型的单倍体组装如果杂合度足够。追求最高连续性(HiFiONT)verkko专门为混合数据设计在解决超长重复区域方面算法先进但计算资源需求较高。处理高杂合或多倍体基因组hifiasm(配合-l选项)其重叠图算法能更好地保留单倍型间的变异避免等位基因被错误合并。资源有限内存/CPUFlye(仅用ONT或混合)相对更节省内存且对数据质量波动有一定鲁棒性。需要与现有流程整合Canu老牌工具生态丰富可与多种下游分析工具无缝衔接但运行较慢。假设我们决定采用最主流的hifiasm进行“HiFiONT”混合组装。一个典型的命令行如下所示。这里的关键是理解每个参数背后的意义而不是盲目复制。# 基础混合组装命令 hifiasm -o my_genome.asm \ -t 32 \ # 使用32个CPU线程 --primary \ # 尝试输出一个主要的单倍型组装适用于杂合度不高的样本 hifi_filtered.fastq \ # 输入HiFi数据 corrected_ont.fasta # 输入纠错后的ONT数据 # 如果你的样本杂合度很高如许多野生动物想获得两个单倍型组装使用 hifiasm -o my_genome_dip.asm \ -t 32 \ -l 3 \ # 设置重叠过滤的强度值越高对杂合位点越敏感 hifi_filtered.fastq \ corrected_ont.fasta运行结束后hifiasm会输出后缀为.p_ctg.gfa和.a_ctg.gfa的图文件以及对应的.fasta序列文件。.p_ctg.fasta通常是你需要的主要单倍型组装而.a_ctg.fasta是备选单倍型通常更碎片化。对于二倍体组装你可能会得到.hap1.p_ctg.fasta和.hap2.p_ctg.fasta分别代表两个单倍型。注意组装参数需要微调。-l--hom-cov、-s--min-hist-cnt等参数对结果影响巨大。最好的方法是先用基因组的一小部分例如通过seqtk sample抽取5-10X覆盖度的数据进行参数测试快速评估不同设置下的N50和BUSCO完整性然后再进行全基因组组装。4. 组装结果评估超越N50的全面质量检查组装完成了屏幕上打印出了诱人的N50数值。但请先别庆祝N50只是一个开始甚至可能是一个“骗子”。一个拥有超高N50的组装可能缺失了大量基因或者充满了大规模的错误连接。一个完整的质量评估体系应该包括以下几个层面基础统计Contig数量、总长度、N50/L50等。使用assembly-stats工具快速获取。assembly-stats my_genome.asm.p_ctg.fasta基因完整性评估这是最重要的指标之一。使用BUSCO基于保守的单拷贝直系同源基因集来评估。busco -i my_genome.asm.p_ctg.fasta -l eukaryota_odb10 -o busco_result -m genome -c 32一份优秀的组装其BUSCO完整性评分C值应该超过95%。如果S单拷贝值高而D重复值低说明组装将重复序列压缩得很好如果D值高可能意味着单倍型分型不彻底或存在冗余。k-mer谱分析将原始测序读长中的k-mer与组装序列中的k-mer进行比较可以评估组装的准确性和完整性。Merqury是完成此任务的利器。# 首先需要从HiFi数据中生成k-mer数据库 meryl count k21 output meryl_db hifi_filtered.fastq meryl union-sum output combined_db meryl_db # 运行Merqury评估 merqury.sh combined_db my_genome.asm.p_ctg.fasta merqury_outputMerqury会输出QV值质量值类似测序质量分数和完整性分数。QV 40 通常被认为是高质量组装。同时检查谱图理想情况下组装谱图应与读长谱图的主峰高度重合。基于比对的内部一致性检查将用于组装的HiFi读长回贴到组装结果上。我们期望看到均匀的覆盖度且几乎没有高覆盖度的区域提示错误重复或零覆盖度的区域提示缺失。使用minimap2和samtoolsminimap2 -ax map-hifi my_genome.asm.p_ctg.fasta hifi_filtered.fastq | samtools sort -o aligned.bam samtools coverage aligned.bam coverage_report.txt用IGV等可视化工具查看BAM文件能直观地发现局部问题比如在着丝粒区域可能因重复而出现的覆盖度尖峰。评估完成后你可能会发现组装并不完美。常见问题包括连续性不足N50偏低contig数量多。这可能是因为数据覆盖深度不够或复杂重复区域未得到解决。考虑增加ONT超长读长的覆盖度或尝试不同的组装器参数。存在大量重复BUSCO基因提示单倍型分型失败两个单倍型被合并了。尝试使用hifiasm的-l参数或启用--h1/--h2选项如果有亲本数据进行分型组装。QV值低组装中存在较多碱基错误。检查原始数据质量确保用于组装的HiFi数据是高质量的并且ONT纠错步骤运行正确。5. 从Contig到染色体利用Hi-C数据进行支架构建通过前面的步骤我们得到了一组高质量的contig连续序列但它们还只是“碎片”不知道彼此在染色体上的顺序和方向。这一步我们需要借助染色体构象捕获数据主要是Hi-C数据来将这些contig“脚手架”成染色体级别的片段。Hi-C数据的原理是捕获细胞核内空间上临近的DNA片段这些片段在线性基因组上可能相距很远但在三维空间中被拉近。因此同一条染色体内部的交互频率远高于不同染色体之间。我们可以利用这个信号来聚类、排序和定向contig。YaHS是当前处理HiFi组装结果进行Hi-C支架构建的首选工具它比之前的SALSA等工具速度更快、更准确。操作流程主要分为三步数据比对、矩阵生成和支架构建。# 步骤1: 将Hi-C双端测序读长比对到contig组装上 bwa index my_genome.asm.p_ctg.fasta bwa mem -t 32 -5SP my_genome.asm.p_ctg.fasta hic_R1.fastq.gz hic_R2.fastq.gz | \ samtools view -F 0x900 -b - | \ samtools sort -n -o hic_aligned.bam # 步骤2: 使用YaHS构建接触矩阵并生成脚手架 yahs my_genome.asm.p_ctg.fasta hic_aligned.bam # 运行后会生成 .scaffolds_final.agp 和 .scaffolds_final.fa 等文件YaHS运行后关键输出文件是.scaffolds_final.fa这就是你的染色体级别支架序列。但工作还没结束你需要仔细检查结果查看.scaffolds_final.agp文件它记录了每个contig在最终支架中的位置、方向和间隙gap信息。使用Juicebox或HiGlass等工具可视化生成的Hi-C接触矩阵热图。一个成功的支架构建会在矩阵对角线外出现清晰的棋盘格状模式表示染色体内部交互而对角线表示contig内部交互应该连续且整齐。如果看到明显的错位或交叉说明可能存在支架错误需要手动调整或检查数据质量。提示Hi-C文库质量至关重要。低质量的Hi-C数据有效交互对比例低、背景噪音高会导致支架构建完全失败。在分析前务必使用HiC-Pro或Juicer等工具对原始Hi-C数据进行质控确保有效数据量足够通常需要数亿级别的有效交互对才能可靠地支架化大型基因组。6. 填补最后空白端粒、着丝粒与间隙封闭即使得到了染色体级别的支架我们的基因组距离“完整”可能还差最后几步。这些区域通常是组装的“硬骨头”端粒染色体末端的重复序列传统测序难以捕获。着丝粒由长达数Mb的高度同源串联重复组成是组装中最具挑战性的区域。间隙支架中contig之间的未知序列通常用一串“N”表示。对于端粒我们可以通过搜索端粒特征序列如人类是TTAGGG重复来确认其是否存在。使用seqkit的grep功能seqkit grep -s -p -r -i TTAGGG{10,} my_scaffolds.fasta telomere_hits.fasta如果找不到并不意味着没有可能是序列变异或未组装出来。可以考虑使用专门富集端粒的测序数据如Telomere-to-Telomere consortium的方法来靶向获取。着丝粒的组装极度依赖ONT超长读长。在混合组装中verkko等工具已经能部分解决着丝粒区域。如果仍有缺口可以尝试专门提取比对到着丝粒周边区域的ONT超长读长。使用这些读长进行局部组装例如用Flye在--meta模式下。将局部组装结果作为“补丁”通过比对和一致性分析整合到主组装中。这个过程往往需要大量手动检查和验证。对于间隙如果它们较小 10 kb有时可以利用未使用的、恰好跨越间隙的ONT超长读长来填补。工具如GapFiller或PBJelly可以自动化这个过程。但对于大的间隙更现实的做法是接受它们的存在并在注释时将其标记为“gap”。未来的新技术如PacBio Revio更高的通量、更长的HiFi读长或ONT P2 Solo更准确的双链测序有望最终解决这些问题。走到这里你已经拥有了一个经过质控、组装、评估、支架化并初步查漏补缺的基因组。这不再是零散的读长而是一个有组织的、接近完整的生命序列草图。接下来的旅程将是基因注释、比较基因组学和功能探索的广阔天地。每个基因组都是独特的总会遇到意想不到的挑战——可能是某种特殊的重复也可能是数据中奇怪的偏差。我自己的经验是耐心和系统性排查是解决所有问题的钥匙。当你第一次在可视化工具中看到自己组装的染色体呈现出清晰的交互矩阵时那种成就感绝对是这个过程中最美好的回报。