☰
单倍型T2T基因组组装全攻略:从HiFi、ONT到端粒到端粒的完整技术路线
2026/10/2 11:56:57 网站建设 项目流程

接手高杂合物种的基因组项目后,我经常被问到一类问题:“我的HiFi数据已经拼出了染色体级草图,但好几条染色体还缺端粒,是不是继续做gap closing就行了?”我的回答通常是一句反问:你要的是“一个参考基因组”,还是“单倍型T2T基因组”?这个差别决定了后续所有的建库方案、组装策略和验证成本。如果目标是后者,那光盯着缺口补洞是不够的,你需要从数据源头开始重新设计整套流程。

这篇文章是单倍型T2T基因组系列的第一篇,重点讲清楚三件事:单倍型T2T基因组到底是什么、为什么在长读长测序普及之后它才成为可能、以及如果我现在要启动这样一个项目,我会怎么选择技术路线。面向的是已经做过常规基因组组装、但还没系统性接触端粒到端粒(Telomere-to-Telomere, T2T)项目的同学,内容会尽量贴近实际项目里会遇到的判断和取舍。

1. 单倍型T2T基因组到底在追求什么完成度

1.1 参考基因组与一个真实染色体之间的差距

绝大多数我们日常使用的参考基因组,哪怕已经做到染色体级别,内部依然存在大量“未知碱基”,也就是用N表示的gap。这些gap并不平均分布在基因组各处,而是高度集中在几个特定区域:核糖体RNA基因簇(rDNA)、着丝粒周围的高度重复卫星序列、端着丝粒染色体短臂、以及某些结构复杂的大片段重复区域。

在早期的Sanger测序和二代测序时代,读长只有几百bp到1kb左右,这些区域即便经过反复克隆和拼接,也极难跨过。原因非常直观:这些区域里充满了长度相同、序列相似度极高的重复单元,短读长无法判断一个read究竟来自重复阵列的哪一段,就像把一堆长得一模一样的积木放进一个盒子里,你没法知道每一块原本属于哪一层。于是组装算法只能在Repeat Array内部打转,最后留下无数缺口。

单倍型T2T基因组追求的目标,就是把一条染色体从一端端粒到另一端端粒的所有序列全部确定下来,不留下未知碱基。听起来很简单,实际做起来要解决一整条链上的重复区域、大片段结构变异和单倍型区分问题,和常规“染色体级别草图”完全不是一个难度等级。

1.2 “单倍型”三个字为什么这么关键

很多刚接触这个概念的人会把“T2T基因组”和“单倍型T2T基因组”混为一谈。实际上,对于二倍体生物来说,一个完整的基因组应当包含来自父本和母本的两套同源染色体。我们日常用的参考基因组,往往是把两套单倍型混在一起处理后得到的“共识序列”,它既不完全等同于父本,也不完全等同于母本,而是两者的某种拼合。

单倍型T2T基因组的核心点在于:我要明确区分出每一条染色体的两个副本,并且分别把它们从端粒到端粒组装完整。也就是说,一条1号染色体,理想状态下应该得到两条完整序列,一条来自父本来源的单倍型,一条来自母本来源的单倍型,而不是只有一条混合序列。

这个区分在实践中有两个层次。第一个层次是“有没有能力区分”,技术上依赖变异位点信息,比如Hi-C的染色质空间邻近信号可以辅助分型,父母本测序数据的亲子定相更可靠;第二个层次是“区分后能不能都组装成T2T”,这受限于重复区域的单倍型间差异大小,如果两个单倍型在着丝粒区域几乎完全相同,那么即便有分型信号,软件也很难把它们拆成两条独立的完整染色体。这也是为什么很多物种的第一版T2T基因组只提供了一个单倍型的完整序列,另一个单倍型还缺着丝粒片段。

2. 从BAC克隆到HiFi+超长ONT:T2T策略是怎么一路演进过来的

2.1 早期BAC克隆时代的“逐段攻克”

T2T概念最早在人类基因组计划时期就已经提出。当时没有长读长测序,研究者采用BAC(Bacterial Artificial Chromosome)克隆策略,把基因组打碎成一个个100-200kb左右的片段,逐个克隆、逐个测序、逐个组装,最终按照物理图谱把这些克隆拼回染色体。人类参考基因组GRCh37/38里那些著名的gap,比如着丝粒区域,不是当时不想填,而是BAC克隆在这些区域极不稳定,很多重复序列在细菌里复制时会丢失或重排,导致物理图谱本身就断了。

那个时代给后来者留下了一条重要的经验:想完成T2T,不能只依赖一套测序技术,必须用多种技术叠加验证。BAC克隆、Fosmid文库、放射杂交图谱、遗传图谱,这些看似过时的工具,在解决特定复杂区域时反而比单纯加大测序量更有效。直到今天,我们在做T2T项目时依然会保留这个思路——当某个区域纯靠计算组装无法收敛时,就考虑是否需要额外建库或引入其他证据。

2.2 长读长时代:ONT超长read和PacBio HiFi如何改变游戏规则

真正让T2T从“理论目标”变成“可操作项目”的转折点,是纳米孔测序(ONT)和PacBio HiFi这两类长读长技术的成熟。

ONT Ultra-long测序可以产生几百kb甚至Mb级别的单条read,这意味着一个read本身就可能横跨整个着丝粒重复单元的数十个拷贝。对于重复阵列,长read的作用不是“减少缺口”,而是直接提供跨越重复单元间差异的连续证据。早期ONT单碱基准确率低,单独使用会引入大量碱基错误,所以通常需要跟高准确率的HiFi数据联合使用。

PacBio HiFi的代表性参数是单条read长度10-25kb,单碱基准确率超过99.9%。它解决的是“碱基调准”的问题,尤其在卫星DNA区域,能够准确区分不同拷贝间的SNP和微小插入缺失。正因为HiFi准确率足够高,我们才能判断一段着丝粒卫星序列里的每一个单元是变异型还是测序错误,这对最终输出“不含歧义碱基”的T2T序列至关重要。

在T2T-Chm13的人类基因组项目中,技术路线就是“HiFi+Ultra-long ONT+Hi-C”三件套。HiFi提供准确的单体序列,Ultra-long ONT负责跨越长距离重复,Hi-C用于辅助分型和搭建染色体的空间邻近关系。这套组合后来被广泛应用到动植物T2T项目里,虽然具体比例和建库细节需要针对物种调整,但基本逻辑没有变。

2.3 从“分型后组装”到“组装时分型”

早先提到单倍型,很多人会想到先用某一种软件把测序reads按亲本来源分开,再各自组装。这种方式在部分物种(如果蝇、小鼠)里有效,因为可以通过三代个体(父母本+子代)的测序信息,把子代每一条read标记为母源或父源。这个策略称为trio-binning或trio-phasing,优点是分型逻辑简单,缺点是需要额外测序父母本,并且要求子代与父母本之间有足够的多态性位点可以区分亲缘来源。

后来的组装软件发展出了直接利用Hi-C信号在组装图里进行单倍型分型的方法。最典型的就是hifiasm的Hi-C集成模式。hifiasm在构建完字符串图之后,会用Hi-C读段对的信号对contig进行定相,把属于同一亲本来源的contig分到同一组,最终输出两套单倍型序列。这种方法的优势是无需测父母本,灵活度更高;劣势是Hi-C的分型信号在低多态性区域、最近发生近交的样本里容易出错。

对于单倍型T2T项目,我认为“组装时分型”比“先分型后组装”更符合大多数物种的实际情况。因为目标不是随便拆出两套混乱的单倍型片段,而是要让每一套都尽量完整到端粒。如果先用trio读取分型,本身就会因为reads长度分布不均导致某些区域单倍型覆盖不足,后期还得重新补数据。而hifiasm这类工具直接在组装图阶段保留双单倍型的分支结构,再辅以Hi-C信号定相,能在流程上节省大量时间。

3. 启动单倍型T2T项目前的数据准备与质量底线

3.1 三类测序数据各自承担什么角色

准备一个单倍型T2T项目,最核心的数据组合是HiFi、Ultra-long ONT和Hi-C。三者的角色可以类比成建筑工地上的三拨队伍:

HiFi负责“砌砖”,它提供的序列精度高、长度中等,能准确勾勒出每一个重复单元的具体序列变异,是所有后续组装的基础。ONT Ultra-long负责“搭梁”,超长的读长能把相距很远的重复区域连接起来,尤其是着丝粒和rDNA这类由大量重复单元组成的结构,long read起着跨越“深渊”的脚手架作用。Hi-C负责“画户型图”,它提供的染色质空间邻近信息帮助软件判断哪些contig在空间上属于同一条染色体臂,以及哪些序列片段来自同一个单倍型。

如果你做的是某个没有近缘参考基因组的新物种,还可能需要加入遗传图谱或光学图谱(如Bionano)来辅助染色体挂载,但对于真正的T2T目标,光学图谱只能作为辅助验证,因为它无法区分近完全相同的重复单元。

3.2 测序深度应该怎么安排

现阶段比较保守的项目设计参数参考下表。具体深度可以略调,但不建议随意压缩,尤其是ONT Ultra-long,深度太低会让着丝粒区域无法跨越。

数据类型建议深度核心指标主要用途
PacBio HiFi30X-40Xread N50 > 15kb高精度单碱基序列
ONT Ultra-long30X-50X(至少20X建议)read N50 > 50kb,最好超过100kb跨越重复区域、连接contig
Hi-C50X-100X有效读段比例高、GC无明显偏向单倍型分型、染色体聚集验证
可选:父母本二代测序子代各30X 或先做低深度用于trio辅助分型亲子定相

这里要特别说明一下ONT Ultra-long的“深度”计算方式。很多人测完纳米孔之后发现读长N50只有20kb,就认为已经达标,其实对于T2T项目这远远不够。更合理的指标应该是看超过100kb的read在总数据量中的占比,我一般希望这个比例能到30%以上,否则着丝粒区域很难干净地跨越。可以通过BluePippin或凝胶电泳进行长片段筛选,也可以在文库制备时提高大分子DNA的回收效率,后者对实验操作要求较高。

3.3 数据质控里最容易忽视的三个问题

正式开始组装前,需要对原始数据进行几项检查,其中三个问题我每次都会重点盯:

第一,线粒体和叶绿体序列污染。动植物基因组DNA提取时无法完全避免细胞器DNA混入,且这些序列通常测序深度极高,会在组装结果中形成高覆盖度的环状contig。如果不提前过滤,它们会干扰基因组大小估计和Hi-C分型信号。可以用MitoZ或NOVOPlasty类工具组装细胞器基因组,然后用minimap2把这些reads比对到细胞器序列并剔除。更好的做法是组装完成后过滤掉与细胞器参考序列高度匹配的contig,两种方式结合更稳。

第二,基因组大小评估不能只看flow cytometry。流式细胞术测得的1C值可以大致给出基因组大小,但如果目标物种包含大片段重复序列或存在B染色体,流式结果与真实复杂度可能有偏差。我会额外用k-mer分析估算,可以用Jellyfish或meryl统计k-mer频率分布,再基于单峰或双峰特征估算基因组大小和杂合度。k-mer分布里的双峰形状能直接提示样本杂合度高低,这个信息对后续参数设置很重要。

第三,Hi-C数据的有效读段比例。如果Hi-C文库质量差,大量读段都是无效的self-circle或dangling ends,分型效果会大打折扣。质控时可以用HiC-Pro或HiCExplorer生成基本统计,关注有效interaction比例和顺式/反式interaction比值。一个常见情况是:所有Hi-C reads都集中比对到少数大型contig上,其他小contig几乎没有信号,这时往往不是组装问题,而是文库本身偏向严重,需要重做文库。

4. hifiasm的Hi-C集成模式与主参数选择

4.1 从hifiasm的几种输出理解“单倍型”体现在哪里

hifiasm是目前最常用的HiFi组装工具之一。在没有提供Hi-C数据时,它输出的是primary contigs和alternate contigs,primary可以理解为从组装图里选出的具有更高覆盖度或更长路径的序列,alternate是另一条可选路径但往往不完整。但primary/alternate并不等同于两条单倍型,alternate通常只有少量杂合片段,无法覆盖完整染色体。

在提供Hi-C数据后,hifiasm会进入dual assembly模式,输出两组单倍型序列,分别标记为hap1和hap2。这才是真正意义上的单倍型水平组装。每组单倍型理论上都来自同一套亲本染色体的连续序列,两组之间能够通过杂合位点区分。

如果目标就是单倍型T2T,我建议从一开始就用Hi-C模式启动hifiasm,而不是先做一套primary再后续分型。原因很简单:hifiasm在组装图阶段就能利用Hi-C信号决定每个二分叉节点应该保留哪条路径,后续输出的hap1/hap2连续性会更好。相反,如果先做常规组装再单独切分单倍型,费时费力且容易在重复区域丢失正确的单倍型连续性。

4.2 核心命令与参数设置

假设我们有一个约500Mb的二倍体基因组样本,HiFi数据文件为sample.hifi.fastq.gz,Hi-C数据为sample.hic_R1.fastq.gz和sample.hic_R2.fastq.gz。基础命令如下:

hifiasm -o sample -t 64 \ --h1 sample.hic_R1.fastq.gz --h2 sample.hic_R2.fastq.gz \ sample.hifi.fastq.gz 2> hifiasm.log

运行结束后会在当前目录生成sample.hap1.p_ctg.gfa和sample.hap2.p_ctg.gfa两个文件。这两个就是两组单倍型的contig序列,后续可以用gfatools或seqkit转换为FASTA格式。

需要留意的一个参数是-s,用于设定随机种子。hifiasm在部分复杂位点会用到随机策略,不同seed可能产生略有差别的结果。对于T2T项目,我会跑至少两次不同seed,比较两个版本的连续性、BUSCO完整率和merqury QV,选择更优的那个。多数情况下结果差异不大,但偶尔会遇到某一次运气明显好的情况。

另一个常用选项是--n-hap,用于指定期望的单倍型数量。二倍体物种默认2即可,但如果你做的是多倍体或样本本身存在染色体数目异常,需要按实际情况调高。需要注意的是,并不是把--n-hap调得越高越容易获得完整单倍型,Hi-C信号在多倍体中的定相本就困难,盲目调高会带来更多错误分型。

4.3 从GFA到染色体级别:还需要做哪些连接

hifiasm输出的hap1/hap2 contig通常已经很长,但不一定都达到染色体级别,尤其在高重复区域可能存在未连接的末端。下一步通常用Hi-C把contig挂载到染色体级别。常用工具包括YaHS、3D-DNA和SALSA2。

但做单倍型T2T项目时,我一般会谨慎使用3D-DNA的自动破开和重新挂载流程,因为它有可能把真正的单倍型连续序列在低信号区域错误断开。更推荐先用YaHS或手动检查GFA图,确认哪些contig应该连接,再决定是否自动挂载。毕竟T2T目标是完整染色体,如果自动工具在端粒附近“多切一刀”,后面需要花大量时间手工修复。

# YaHS基本用法:先比对Hi-C数据到hap1/hap2 bwa index sample.hap1.p_ctg.fa bwa mem -5SP -t 32 sample.hap1.p_ctg.fa \ sample.hic_R1.fastq.gz sample.hic_R2.fastq.gz \ | samtools view -b - > sample.hap1.hic.bam yahs sample.hap1.p_ctg.fa sample.hap1.hic.bam \ -o sample.hap1.yahs

生成的结果再用JuiceBox或PretextView人工检查热图,确认有没有明显的染色体内错位。

5. 从contig到真正T2T:缺口闭合、verkko与手工收尾

5.1 verkko和“双单倍型”模式

hifiasm能很好地利用HiFi和Hi-C,但面对特别长的、结构复杂的重复区域,比如人类着丝粒或植物rDNA簇,有时会留下一些无法连接的末端。这两年,Verkko这类专门面向T2T的组装工具逐渐成为标配。Verkko的设计思路是先用HiFi数据构建高精度单元图(unitig graph),再用ONT Ultra-long数据做多层次聚合,最终尝试跨越所有gap,直接输出端粒到端粒的contig。

Verkko的优势在于它会主动利用“同源染色体上两个单倍型之间存在差异”这一信息来分隔重复区域,而不是简单把重复单元压缩成一个共识。它也有专门面向二倍体样本的Haplotype-aware流程。如果数据质量好,Verkko输出的unitig在染色体长臂和复杂区域往往比hifiasm更连续。

我的推荐组合是:先用hifiasm快速获得基础单倍型序列,作为评估样本复杂度的参照;再用Verkko在高深度HiFi+ONT数据上跑一遍,对比两者的连续性、完整率、端粒封闭情况。如果Verkko表现足够好,后续手工修补的压力会小很多。

5.2 判断一条contig是否真的“端粒到端粒”

很多初学者看到contig两端有端粒motif就以为达到了T2T水平,这是最常踩的坑。判断标准至少要包含以下几条:

  • 两端都能检测到端粒重复序列,且方向正确。例如动物中是(TTAGGG)n,植物大多是(TTTAGGG)n。
  • 该contig的总长度不显著超过该染色体的预期物理长度。如果比预期长出10%以上,很可能在组装中把两个相近序列错误拼接在一起,或混入了线粒体序列。
  • 在该contig内部,覆盖率相对均匀,不存在一个明显的深度悬崖。深度突然下降的位置往往是错误连接的信号。
  • 用参考基因组或遗传图谱标记做共线性检查时,该contig覆盖了整条染色体的标记顺序且没有明显的倒位或易位。

最后一类检查,就是用同一个体的HiFi reads和ONT reads分别重新比对到候选contig,比对覆盖率在末端没有突然下降。如果末端区域完全没有任何reads覆盖,那这个末端很可能仅仅是计算形成的“死路”,并非真实端粒,需要重新检查GFA图。

5.3 手工收尾:Bandage、IGV和gfastats的用法

一旦自动组装还差几个缺口,就必须进入手工阶段。Bandage是最常用的可视化工具,它能把GFA图里的unitig连接关系画成节点和边,你可以直观看到某个缺口两侧的contig能否通过已有reads连接。建议把hifiasm和verkko的结果分别导入Bandage,检查那些节点度很高的区域,这些往往是重复阵列所在的位置。

# gfastats用于快速统计GFA和FASTA的状态 gfastats sample.hap1.bp.p_ctg.gfa -s

输出里会包含每条序列的长度、端粒motif计数、未闭合路径数等信息,可以作为每次修改前后的客观对照。IGV则用于检查单个碱基级别的支撑证据,比如在闭合一个缺口前,把ONT reads比对到候选序列上,人工确认reads的比对边界确实延伸并覆盖到缺口另一端。

手工闭合的过程很难完全自动化,因为每一次闭合都需要针对具体的序列结构找证据。但对于不想从头写代码的研究团队,我建议至少熟悉Bandage的节点搜索、blast序列定位、以及把外部序列作为“bait”拖入图中查看连接这些基础操作。

6. 质量评估:你得证明你的单倍型T2T是真的

6.1 四种评估维度

T2T组装的质量评估比常规组装更严格,因为常规组装的连续性靠N50,但T2T项目里N50已经接近整条染色体长度,这时候更重要的是看准确性和完整性。我习惯从四个维度去汇报:

  • 碱基准确性(QV):用k-mer方法评估组装碱基错误率,代表工具是Merqury。
  • 单倍型连续性:看两组单倍型各自的N50、完整染色体数、端粒封闭数。
  • 功能完整性:BUSCO单拷贝基因完整率,这个指标能快速发现大型组装错误。
  • 结构正确性:与遗传图谱或参考基因组的共线性、Hi-C热图的一致性、着丝粒区域覆盖率。

6.2 Merqury评估的具体流程

Merqury的核心思路是先对原始测序reads建k-mer库,再检查组装序列里有多少k-mer可以被reads支持。如果组装序列中存在错误碱基,那些位置会显示为低覆盖的“dead k-mer”。

# 建k-mer库 meryl count k=21 output sample.meryl sample.hifi.fastq.gz # 评估组装 merqury.sh sample.meryl sample.hap1.p_ctg.fa sample.hap1

输出里最关键的两个值是QV和k-mer completeness。QV通常希望大于Q40,也就是平均每100kb少于1个错误;completeness希望大于95%。如果某一组单倍型的completeness明显低于另一组,说明该单倍型的某个区域缺少read支持,常见原因是数据偏向或分型错误。

需要注意的是,Merqury用的k-mer库如果用HiFi reads构建,它们对杂合位点比较敏感。对于高杂合物种,一个真实的杂合SNP会形成两个不同的k-mer,而组装序列只能保留其中一个,这会让merqury报告一定的“缺失”,实际并不影响质量。因此对高杂合样本,QV结果我会结合BUSCO和read比对覆盖率一起解读,不只看单一数字。

6.3 BUSCO和基因组内嵌合检查

BUSCO是必检项,但选用的数据库要根据物种来。植物类推荐使用embryophyta_odb10或viridiplantae_odb10,动物类推荐使用vertebrata_odb10或arthropoda_odb10,选择标准是跟目标物种亲缘关系越近越好。

busco -i sample.hap1.p_ctg.fa \ -l embryophyta_odb10 \ -m genome -c 32 \ -o sample.hap1.busco

单倍型T2T的结果里,我希望看到C值(complete)接近95%以上,且D值(duplicated)不要过高。D值高说明两组单倍型之间存在大量区域没有正确分型,很多序列在两个单倍型里同时出现,需要回溯到分型步骤检查。

内嵌合检查可以通过自比对实现。把组装序列自身用minimap2比对一遍,如果出现一条长序列的A段和B段分别比对到另一条序列的不同位置,且方向不一致,很可能存在错误连接。也可以用SyRI这类工具与一个近缘参考基因组进行全基因组比对,直接识别易位、倒位、重复扩张等结构差异,这一步对确认染色体水平结构非常有用。

7. 我在植物和动物T2T项目里实际踩过的坑

7.1 Hi-C分型结果和线粒体冲突时怎么办

我有一个植物样本,k-mer分析显示1C约400Mb,杂合度大约1.5%,不算特别高。hifiasm Hi-C模式跑完后,hap1里有几条较长的contig在BUSCO和merqury上都很好,但hap2里有一条contig的线粒体基因完整率高达98%。当时我的第一反应是“这条contig是线粒体污染”,准备直接删掉。后来仔细看才发现,这条contig除了包含线粒体序列,末端还拼接了一段核基因组序列。原因是该样本线粒体基因组与核基因组之间存在一段约8kb的高度相似的“nuclear mitochondrial segment”(NUMT),Hi-C数据在那里产生了错误连接信号。

正确做法不是直接删除,而是要把这条contig用minimap2分别比对到线粒体参考序列和核基因组序列,找出确切断点,再在断点处手动切开,把纯线粒体部分和纯核部分分别归位。这种问题的隐蔽性在于:常规质控只看BUSCO和merqury时,线粒体部分不会带来明显的BUSCO损失,它依然会显示很高的完整率,导致你以为这条contig没问题。所以我一再强调,T2T项目里必须额外检查细胞器contig的完整分配,不能想当然地过滤。

7.2 高杂合物种里“两个T2T”常常只能成一个

不少课题组期待从高杂合样本里同时获得两套完整的T2T单倍型,但实际操作中很难。高杂合物种的杂合SNP多,hifiasm在重复区域的分型权重容易出错。更麻烦的是,当两个亲本单倍型在某段序列非常相似(比如F1个体中父母本来自同一个群体),Hi-C信号在短距离重复区域缺乏区分度,软件会把两条单倍型序列错误合并成一条,导致hap1覆盖度高、hap2覆盖度低,最终只有一组接近T2T,另一组存在多个内部缺口。

遇到这种情况,我通常建议调整期待值:先以一套高质量单倍型T2T为首要目标,另一套单倍型尽量组装到长contig级别,后续如果需要完整的另一套单倍型,再考虑增加trio数据或调整Hi-C建库。不要在一开始就把目标定成“必须双T2T”,那样容易在中间环节反复调参,浪费大量计算资源。

另外,杂交样本如果亲本差异悬殊,两组单倍型在染色体臂上的连续性可能差异很大。父本来源的单倍型往往具有更多缺失或结构变异,在reads覆盖上略低,导致组装难一些。这并不说明组装软件有问题,而是生物学上天然的亲本差异。

7.3 计算资源调度与文件管理经验

T2T组装对计算资源的要求远高于普通组装。以500Mb基因组、60X HiFi + 40X ONT数据为例,hifiasm跑一轮通常需要64线程、256GB内存、耗时10到20小时,具体取决于读长结构和杂合度。Verkko因为需要在unitig图层面处理超长read,内存峰值往往更高,建议512GB起步,耗时也更长。

文件管理上,我强烈建议从一开始就给每个版本的组装结果建立清晰目录,并且保留所有预处理日志。我的习惯是:

project/ 01_rawdata/ 02_cleandata/ 03_hifiasm/ 04_verkko/ 05_curation/ 06_qc/

每个目录下放一个README,记录软件版本、命令、参数和运行日期。原因很简单:T2T项目往往要反复迭代几个月,两周后你大概率会忘记当初某个结果是用哪个seed、哪个版本的hifiasm跑出来的。没有运行日志,所有调参积累都会白费。

还有一点是要做好空文件检查。ONT数据量大、文件多,部分样本在测序过程中可能产生一些只有几千条read的小文件或空文件。直接用通配符作为输入,软件不会报错,但会白白浪费计算时间,甚至影响超长read的识别。我会在开始前先统计每个fastq.gz的read条数和总碱基数,把明显偏小的文件单独归到“待检查”目录。

8. 我的一点实际体会

做了几个物种的T2T项目后,我最大的体会是:单倍型T2T基因组不是“用最新工具把命令跑通”那么简单,它更像是一个持续验证的工程过程。你需要在每一步都对“为什么要这样选”保持清醒。比如选择hifiasm还是verkko,不是看哪个软件发表的年份更近,而是看你手里数据的特点:如果ONT超长read的产出比例很高,verkko的优势会更明显;如果HiFi为主、ONT为辅,hifiasm流程更稳。又比如Hi-C深度,并不是越高越好,过高的深度会放大建库偏好,反而造成错误的定相信号。

另一个深有体会的点是,单倍型T2T的“完成”应该用证据链来定义,而不是软件输出的路径名。真正的端粒到端粒,要求你不仅填上了缺口,还能解释每一个封闭位置的支撑证据是从哪条read来的。我在做手工收尾时,经常对着Bandage图反复放大看一个多分支节点,不确定该选哪条路径时,就去翻比对信号的soft-clip末端,用最笨的办法验证。这个“笨办法”比很多自动化工具都靠谱。

这个系列我计划分几篇来写,这篇先解决“理解层级”的问题,把技术路线和判断框架讲清楚。后续如果大家感兴趣,我会把具体的hifiasm和verkko实操命令、手工闭合一个缺口的全过程、以及质量评估报告的完整解读方法都展开写。毕竟单倍型T2T基因组这个方向,真正值钱的不是一句“跑通了”,而是当所有自动工具都给出不同答案时,你仍然知道自己手上的数据在说什么。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询