GeneFuse相关文献解读

Introduction

细读 GeneFuse 相关文献,整理其检测融合事件的原理。自带序列比对算法,可从原始测序数据 *.fq.gz 文件中直接检测融合事件。

Getting Started

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6036752/

Chen, Shifu et al. “GeneFuse: detection and visualization of target gene fusions from DNA sequencing data.” International journal of biological sciences vol. 14,8 843-848. 22 May. 2018, doi:10.7150/ijbs.24626

文中提及 FacteraDELLY 两款融合检测软件均基于比对结果识别相关的融合事件,故两者的检测结果严重依赖于比对结果的准确性;而 GeneFuse 只关注已知临床意义的融合基因(cosmic收录),利用自身的比对算法,可直接从原始 Fastq 下机测序数据中检测融合。

Factera

  • 从比对结果中发现不匹配的reads,而后将不匹配的reads附近外显子聚类为不同的基因对组合,最后找到断点定位基因融合

DELLY:可以从 BAM 文件中发现基因融合

  • 从比对结果中实现双末端比对分析,找出方向异常或插入片段大小异常的reads对
  • 识别出的成对簇被解释为包含断点的基因组区间,这些区间被筛选为 split-read 支持,以在单核苷酸分辨率(single-nucleotide)下映射基因组重排
  • 合并支持的reads对,并根据参考基因组进行注释

GeneFuse

  • 寻找能够很好比对到左右两个不同基因的reads,但又不能完全映射到整个参考基因组的任何位置;主要分为以下 4 个部分:

    • Indexing --- 基于已知的融合基因,从参考基因组中提取相关序列,并生成长度为 k 的 k-mer
    • Matching --- 收集 k-mer 序列,为每条reads计算一组序列,最后一步计算的索引将子序列映射到基因组坐标,从而找到该reads的相关基因
    • Filtering --- 若一条reads能够比对到参考基因组上,则将其从候选融合列表中删除;若reads被映射到一个基因的两个片段,它将被视为一个缺失,太短则被删除
    • Reporting --- 最终输出融合对;并html格式输出可视化结果;也可输出纯文本形式的融合信息,其中包括:融合发生的断点位置、推断的蛋白质形式、融合的reads支持数

Introduction

融合基因是两个不同基因的嵌合体,来自基因组结构重排(genomic structural rearrangements)、转录通读(transcription read-through)或者异常的RNA剪接(RNA splicing)

基因融合事件在前列腺癌、淋巴癌、软组织癌、乳腺癌、胃癌和肺癌中较为常见;许多基因融合与癌症发生和肿瘤进展有关,有些甚至被认为是几种癌症类型中的驱动突变;所以融合基因是肿瘤诊断、预后和治疗指导的良好生物标志物。如:BCR-ABLTMPRSS2-ERGEML4-ALKKIFB-RET

基于比对的基因融合检测软件的优势:

  • 可以扫描所有可能的基因融合
  • 可以检测新的融合基因

需要注意的是,mapping-based 的融合检测算法严重依赖于比对结果的准确性,特别是比对算法对剪切(clips)和嵌合体(chimeras)的识别;对其产生影响的因素有:

1)包含融合的reads,可能会发生错位(可能造成假阴性);

2)对于不包含融合的正常reads,clipschimeras 可能也会经常发生(可能造成假阳性);

以上两个因素会影响融合检测软件的敏感性和特异性;==假阳性经常出现在重复的区域==;此外,Mapping-basedfusion callers 在处理低肿瘤DNA组成的样本,或者无细胞肿瘤DNA的数据时,经常会出现假阴性。

==对于临床应用而言,与其寻找大量临床意义不明、不确定性大的基因融合,不如寻找已知对临床治疗有帮助的基因融合==

GeneFuse 可以直接从原始 FASTQ 文件中检测基因融合,以消除比对结果的影响;满足高灵敏度和特异性检测临床重要基因融合的需求,明确的是 GeneFuse 只关注已知临床意义的融合基因,且这些基因可以在 COSMIC(the Catalogue of Somatic Mutations in Cancer) 数据库中找到

Implementation

重点介绍 GeneFuse 的比对算法和融合检测算法

GeneFuse 的基本思想是寻找能够很好低映射到左右两个不同基因的 reads,但不能完全映射到整个参考基因组的任何位置

基本概念:

  • 支持read(supporting read):与融合的两个基因在其融合位置(fusion point)相匹配的read;每次融合的重复支持read被分组为一个唯一的支持read

GeneFuse 判定检测的融合是否可靠依赖于统计得到的独特支持reads数(unique supporting reads)

fig.1

GeneFuse 的具体实现主要有如下 4 个步骤:

Indexing

重点在于计算获取映射到融合基因的哈希图

首先,准备一个包含目标融合基因及其外显子的基因组区域信息的 CSV 文件,以便于从参考基因组中提取基因序列;GeneFuse 提供了两个 CSV 文件,分别给出 COSMIC 数据库中 hg19/GRCh37hg38/GRCh38 的基因融合列表;此外,GeneFuse 还提供了一个基因列表生成工具来定制目标融合基因

接着,GeneFuse 将从融合基因区域内的参考基因组中提取序列,并计算这些序列所有的 k=16k-mer,并且 k-mer 的每个元素都与它匹配的基因组坐标列表相关联【怎么关联???】

最终,利用 哈希图(hashmap) 来存储 k-mer 和基因组坐标(genome coordinate)之间的关联(用于将 reads 映射到目标基因);并且,它将被用于 read 与目标基因(target genes)之间的 mapping

  • read=ATGCTGA --- k=4

此外,随着 k 值的增加,四种碱基(A, T, G, C)组合成的 k-mer 数量会成指数增长。即: k=16 时,可能的 k-mer 将有 4,294,967,296,超过十亿种可能存在的 k-mer

若长度为 100 的一段序列得到的 k=16k-mer 个数为 ; 于是共 100-16+1=85k-mer

为什么用 k-mer 进行比对???

尽管现有的NGS测序准确度高达99.9%;但原始测序数据总是存在一定的错误率,且测序错误具有随机性;于是若将长read打断成一定长度k的k-mer时,带有测序错误的k-mer在真实情况下一般是不存在的,即测序数据中带有错误碱基的k-mer出现的次数仅为1/2次或者出现的次数很低,去除这种k-mer就可以很大程度上出去测序错误

Matching

目的在于利用前面计算的哈希图将 reads 映射到参考基因组上,并将映射到两个基因的数据保存到融合匹配中

在匹配过程中,为每一条 read 收集长度为 k 的所有 k-mer;并通过 Indexing 步骤得到的 hashmap 将从reads中收集的k-mers映射到基因组坐标,这样就可以找到该read的相关基因了。

若一条 read 的左右部分可以映射到两个不同的基因,则该 read 将被分割成两个区域;若read的左区域和右区域都足够长(),且同时满足两个区域之外的碱基数少于一定阈值的条件(),也就是未比对上的碱基数需要小于设定的阈值,则该 read 被视为候选匹配(match candidate);所有融合匹配候选记录将被存储在一个列表中,并将在下一步中进行筛选。

需要注意的是,测序的read长度也是影响突变检测的重要因素;所以 GeneFuse 为了获得更长的序列,尝试合并双端测序数据的每对reads;

双端reads合并算法:

read pair 分别是 R1R2,其中对 R2 计算其反向互补链为 rcR2;这时,合并算法将搜索 R1rcR2 的最大重叠(overlap)区域,而它们重叠的子序列完全相同;如果重叠区域长于阈值(),我们认为他们是重叠的(overlapped),并将它们合并为一条 read(需要注意的是:其中不接受高质量的碱基差异,只允许 3 碱基的低质量mismatch);于是在合并 read pair 之后获得更长的序列,甚至可以在融合断点位于 reads 边缘的情况下,继续进行匹配过程(Matching

1
2
3
4
read1: GGAG...TC
read2: AGA...CTC
rcread2: GAG...TCT
mergedSeq: GGAG...TCT

如果reads对不能发生合并,GeneFuse将处理它们;尽管具有较大插入片段的测序文库(sequencing library)将禁止读对的重叠,但这不会对性能造成重大影响,因为 GeneFuse 可以将一个读对单独处理为两个reads(single-end)

举例说明:

Fig.2

Filtering

主要根据其reads的复杂度、匹配质量和其他因素进行过滤

一旦准备好融合匹配候选list,支持融合的reads所有的子序列就形成了新的 k-mer;而后对整个参考基因组进行扫描,搜索相同的 k-mer 元素,并把匹配的基因组坐标存储为全局索引 G。对于融合匹配候选列表中的每一条read,都将其映射到 G,以检查其是否能很好的与参考基因组对齐;

若一条read可以映射到一个参考基因组上,则将其从融合匹配候选列表中删除。

若一条read被映射到一个基因的两个片段,这将被视为一个缺失,如果缺失长度太短,将被删除。

此外,还采用低复杂度过滤器(low complexity filter)和匹配质量过滤器(match quality filter)来消除错误检出;

低复杂度的定义是与其下一个碱基不同的碱基比例(base[i] != base[i+1]).

"low complexity"指的是一种由重复或者相似的碱基序列组成的 reads 或者参考基因组的区域。这种序列在比对的过程中容易产生误匹配,导致比对质量降低。

Reporting

验证检测到的融合,并对每个融合进行reads支持数统计,并以HTML的形式对融合进行可视化

经过过滤的融合匹配结果将首先由融合位置(fusion points)聚类成融合结果(fusion results);对于每个融合结果进行定位其融合位置,并调整断点位置以找到更好的分离融合的reads支持;然后对每个融合结果的支持reads进行过排序,并将重复的reads分组为单个唯一的read(也就是说多个重复的read支持统一计算成一条read计数);最终计算得到的唯一支持reads数大于设定阈值()的融合结果被视为合格的融合,并将其定位融合断点的外显子或内含子。

GeneFuse 给出的融合结果表现形式有两种:纯文本(FASTA/json/txt)和网页报告(HTML)

与其他融合软件的比较(FACTERA and DELLY)

GeneFuse 检测 10 个 cfDNA 样本中 EML4-ALK 融合事件的结果与 FATERADELLY 两者相比,GeneFuse 的敏感性最高;

运行速度上,GeneFuse比(BWA + Picard + FACTERA)或(BWA + Picard + DELLY)用时短得多;但是实际生产中,GeneFuse的运行速度并没有想象中的快。

GeneFuse 无法检测发生在基因间区的融合事件

影响 GeneFuse 检测融合准确性的可能因素:

  • 测序数据的准确性:是否对fastq下机数据进行 rmdup;存在重复的融合reads在很大程度上是假的
  • 扫描genelist的 fusion files 文件:GeneFuse 只能对给定的 fusion files 文件中的基因及对应的exon区域进行扫描;Factera 检出,但 GeneFuse 漏检,可能的原因是融合断点不在 fusion files 文件中存在的区间。
  • fusion files 文件中gene对应的转录本可以改成我们最终报出的经典转录本或可能最短的转录本
  • GeneFuse 最大的缺陷是只能检索给定文件区间内的融合事件;超出范围的融合可能造成漏检
  • 解决方案:给定genelist检测融合+能够发现新融合的软件;两者相比较,可以在一定程度上避免重要融合事件的漏检,同时也能对可能存在的新融合进行一定的检测(并且这种融合可以通过前者对其验证性检测,若 GeneFuse 能够在修改对应 fusion files,将新发融合的位置信息添加至其中,其能检测出来,那这个融合有很大的概率是真的)
  • 注意GeneFuse 好像无法检测融合对中其中一个基因无reads支持的融合事件;只能检索两端均有reads支持的融合事件;
  • genefuse v0.8.0v0.6.1 去除了重复区域的融合检测,更加精准但可能存在隐患
  • genefuse 受测序读长太短的限制,可能造成融合的漏检

References

[1] Chen, Shifu et al. “GeneFuse: detection and visualization of target gene fusions from DNA sequencing data.” International journal of biological sciences vol. 14,8 843-848. 22 May. 2018, doi:10.7150/ijbs.24626