HISAT软件比对算法及性能简介
HISAT(hierarchical indexing for spliced alignment of transcripts,利用分层索引对转录本进行剪切比对)使用两种索引方式进行比对:
- 全基因组索引,用于将 reads 锚定到基因组上;
- 大量局部索引(每个索引覆盖基因组 64 Kbp 区间),用于快速延伸及比对错配序列;
HISAT 将 RNA-seq 的 reads 分为 5 类:
- 完整的比对在单个外显子区内(M);
- 比对到两个外显子区,且每个外显子区的比对长度 > 15 bp(2M_gt_15);
- 比对到两个外显子区,且一个外显子区的比对长度为 8-15 bp(2M_8_15);
- 比对到两个外显子区,且一个外显子区的比对长度为 1-7 bp(2M_1_7);
- 比对到三个外显子区(gt_2M);
第 1、2、3 类 reads 的比对
HISAT 首先使用全局索引根据 read 的部分序列信息,将其定位到基因组上,一般会定位到一个或少数几个候选位置。然后,HISAT 使用局部索引对 read 的比对结果进行延伸,直至 read 全部比对到参考基因组上。除了第 1 类 reads 外(图 2a),其余 4 类 reads 在延伸过程中会出现大量的错配,算法需要将错配的短序列比对到基因组其他区间(图 2b)。第 3、4 类 reads 因为在一个外显子区域内的序列长度较短,在基因组上存在大量的候选位点。例如,8 bp 序列有 48 = 65536 种可能性,3 Gbp 长度的基因组按照 8 bp 长度切割,产生 375,000,000 个片段,如果基因组由碱基随机排列而成,约 5722 个(375,000,000 / 65,536 = 5,722)片段的序列完全一致。传统的剪切比对算法使用全局索引查找错配短序列的候选位置(图 2,Global Search),然后算法在大量候选中筛选出最佳的比对位置。这类算法在比对过程中需要反复读取庞大的全局索引(如人类基因组全局索引约为 913 MB),较为耗时。为了快速且准确的比对,HISAT 将错配的序列仅在局部索引(覆盖 64 Kbp 范围,索引大小 24 KB)内进行比对(图 2c,Local Search)。以人类基因组为例,64 Kbp 的局部索引将包含 90.4% 的内含子。当错配序列无法在局部索引内被合理比对时,HISAT 则认为遇到了长内含子,会将两个或多个连续的局部索引合并后再进行比对,直至预设的上限(500 Kbp)。达到局部索引长度的上限但仍未比对上时,HISAT 则判定该 read 无法比对到参考基因组上。此外,HISAT 还优化了 reads 比对的延伸步骤,当 reads 的前 28 bp 精确比对到基因组唯一位置时,HISAT 停止全局搜索,直接比较剩余序列和相应的基因组序列来延伸比对结果,直到不匹配为止(图 2,Extension)。如果错配序列较长,HISAT 局部搜索 8 bp 后将再次调用延伸算法(图 2d)。
第 4 类 reads 的比对
如果错配序列非常短(1-7 bp),序列在局部索引内也可能与多个位置匹配,正确比对较为困难。HISAT 选择利用剪切位点信息移除内含子,然后进行比对。具体而言,HISAT 第一遍运行完成对第 1、2、3 类 reads 的比对,第 4 类 reads 因为候选位点较多而无法被正确比对(图 3a)。接着,HISAT 根据第一遍的比对结果识别并收集剪接位点位置。然后,第二遍运行 HISAT,完成对第 4 类 reads 的比对(图 3b,Junction extension)。
涉及假基因 reads 的比对
加工后的假基因是原始基因转录、去除内含子并重新插入到基因组不同位置的非功能性副本。假基因与原始基因非常相似,reads 可能同时比对到假基因及原始基因上。图 4 展示了 1 号染色体上两个外显子在 17 号染色体上有几乎完全相同的副本(仅存在一个碱基差异)。因此,原本跨越染色体 1 上两个外显子的 reads 可能被错误地比对到 17 号染色体。由于 reads 比对到 17 号染色体会产生一个错配,得分低于比对到 1 号染色体,HISAT 将仅输出 1 号染色体的比对位置。如果假基因与原始基因序列完全一致,比对结果得分相同,HISAT 将输出所有位置信息。
HISAT 比对的速度、精度及内存占用情况
HISAT 的作者从人类基因组 GRCh37 中随机选择 17,647 个转录本,模拟生成 2000 万个长度为 100 bp 的 reads。不同软件的计算速度和准确度如图 5、6 所示。HISAT 速度最快,约是 STAR 的 1.5 倍,约是 TopHat2 的 62 倍。HISAT 精度最高,略高于 TopHat2,高于 STAR 等软件。另外,HISAT 作者还比较了不同软件比对 109 million reads 的肺成纤维细胞 RNA-seq 数据。结果显示,HISAT 的内存消耗远小于 STAR(图 7)。值得注意的是,第三方的检测结果中 HISAT 的表现并没有这么优秀,参见 https://www.nature.com/articles/s41467-017-00050-4。