体细胞calling 算法综述 somatic single nucleotide variant calling algorithms
paper基本信息
paper name: A review of somatic single nucleotide variant calling algorithms for next-generation sequencing data doi :10.1016/j.csbj.2018.01.003
总结
call 变异的主要步骤为 mapping -> call 变异 mapping 的DNA工具主要为BWA RNA 工具为star 本文着重介绍了目前市面上的call变异的工具的原理 算法可以归纳为四类: 匹配肿瘤正常变异、单样本变异、基于 umi 的变异和 RNA-seq 变异
详细介绍一些算法
1.预处理
预处理的主要目的是防止低质量的读取进入不同的评价过程。读取质量通常是通过平均基础质量得分、mapping质量得分和参考基因组的错配次数等来衡量的
gatkindelrealigner 和 BQSR (基准质量得分重新校准)
-提高识别插入的准确性 samtools 与 picard
-去除PCR重复(但在基于 pcr 的扩增序列测序应用中,不推荐使用这种方法,因为不同的 DNA 片段可以共享相同的基因组坐标。此步骤中还包括降采样,在此期间随机选择读取的子集以继续进行下一步。如果在特定区域进行降采样,则可以节省计算时间并提高覆盖的一致性,但也会使结果不确定。)
2.call 变异
各种软件使用各自的算法call 变异
3.后期筛选处理
测序有些情况会欺骗统计模型将它们作为真正的变异传递。大多数变量调用方应用阈值来识别这些位置,从而提高特异性。例如,链偏置过滤,捕获只有或主要观察到一条链的读数,在 Illumina 公司的一个常见错误读,链偏好过滤器依赖于fisher,以确定不平衡的链分布。许多过滤器集中于重复区域,如homopolymer, microsatellite, or low complexity regions,这些区域已知会由于排列和排序错误而导致错误。硬过滤器用于大多数变异调用者,要么完全拒绝某些区域的变异,要么依赖于经验硬阈值。
4.匹配正常肿瘤来call 变异
下面介绍一下文章中介绍的各个软件的原理
其基本思想是利用肿瘤鉴定潜在的变异,并利用匹配的正常样本区分体细胞变异和germline变异丢失(LOH)。 VarScan2、 qSNP、 Shimmer、 RADIA、 SOAPsnv 和 VarDict 对于一个潜在的 SNV,VarScan2需要至少两个支持读操作和8% 的 VAF (可由用户调整)。其他call 变异软件在他们的算法中有类似的阈值,这些阈值通常设置在一般 NGS 数据的噪声水平之上,并且期望过滤掉低水平的人为影响。接下来,在匹配的正常情况下分析潜在的 SNV 位点,以过滤掉非体细胞变异。2,Shimmer,SOAPsnv,和 VarDict 应用 Fisher 的精确测试22列联表的读数(参考值、非参考值和肿瘤值、正常值)。一个小的 p 值表明非参考读数不成比例地分布在两个样本中,因此提示体细胞变异。qSNP 和 RADIA 应用一系列启发式规则来标记在肿瘤中被充分观察到但在正常情况下弱或未被观察到的体细胞变异体。如果同一患者的 RNA-seq 数据可用,RADIA 将在综合分析中包括基因表达数据,以进一步减少假阳性。
联合基因型分析,SomaticSniper,FaSD-somatic,SAMtools,JointSNVMix2,Virmid,SNVSniffer,Seurat,和 CaVEMan 采用这种方式,假设肿瘤和正常的二倍体,并评估关节的可能性。突变calling是基因推理的必然结果。这些算法的核心是联合基因型的后验概率,由贝叶斯规则计算,即,
其中GT、 GN 为肿瘤基因型,DT 为正常基因型,DN 为肿瘤和正常基因型。先验基因型概率 p (GT,GN)可能依赖于全基因组 SNP 率、体细胞突变率、 Ti-Tv 比值等。数据的联合似然 p (DT,DN | GT,GN)可以通过二项式概率计算,将覆盖一个站点的基地视为独立的伯努利试验,其成功概率取决于基因型和排序错误率。一旦连接基因型被推断出来,体细胞的变异就自然而然地发生了。突变和体细胞突变用“评分”概括了突变的证据,这实质上是肿瘤与正常人具有相同基因型的对数转化概率。其中 GT ∈{ AA,AC,AG,AT,CC,CG,CT,GG,GT,TT }。体细胞分数较高的部位在肿瘤和正常组织中更可能有不同的基因型,并被鉴定为可能的体细胞变异体。 SAMtools 采用了同样的策略,但没有使用后验概率,而是使用对数似然比作为变体评分。 JointSNVMix2,Virmid 和 SNVSniffer 将这10个外显基因型分解为 AA,AB 和 BB (a 为参考基因,b 为非参考基因) ,因此将联合基因型分解为33表。体细胞变异调用等价于计算 p (Somatic) = p (AA,AB) + p (AA,BB) ,肿瘤中正常和杂合或纯合非参照的纯合参照概率。具体来说,JointSNVMix2应用一个分层贝叶斯模型来估计联合基因型概率。 Virmid 将肿瘤视为正常组织和体细胞突变的混合物,提供了肿瘤中正常组织的联合基因型和比例的联合估计。 SNVsniffer 采用启发式和联合基因型分析的混合方法。启发式分析中的高可信体细胞变异被直接报道,低可信变异需要进一步的联合基因型概率估计检验。 CaVEMan 应用期望最大化算法估计基因型概率。
由于肿瘤样本中存在罕见的异质亚克隆,二倍体假设可能过于简单。为了发现复杂肿瘤基因组中的变异,尤其是罕见亚克隆中的变异体,一些人放弃了二倍体假设和模型联合等位基因频率(fT,fN) ,而代之以联合基因型(GT,GN)。等位基因频率分析方法由斯 MuTect、 LoFreq、 EBCall、 deepSNV、 lololopicker 和 MuSE 使用。
MuTect 将体细胞变异调用定义为两个模型选择问题。在肿瘤方面,对两种模型进行了评价和比较: 野生型模型 M0和突变型模型 Mf,前者假定所有非参考读数均来自技术伪造,后者假定变异等位基因以未知频率存在。通过计算对数似然比(LOD score)来选择更好的拟合模型。潜在突变位点(高 LOD 值) ,另一个模型选择正常进行比较广型模型 M0和杂合子模型 M0.5。如果 M0强烈优于 M0.5,则该变异被标记为躯体变异。LoFreq、 EBCall、 deepSNV 和 lolololopicker 将调用的变量表示为一个假设检验问题,其中零假设是野生型的,替代假设是变异的,检验统计量是观察到的非参考读数 nT。
LoFreq 将每个基地视为一个独立的 Bernoulli 试验,具有不同的“成功”概率,其中成功被定义为非参考,而成功的概率由质量得分决定。在这种情况下,nT 服从泊松-二项分布,p 值可以作为观察到比 nT 更多的非参考读数的概率来计算。
由于已知体细胞变异在某些热点、序列上下文和非编码区域富集,所以 EBCall、 deepSNV 和 LoLoPicker 可以估计特定位点的错误率,因此可以在每个位点设置明确和更准确的检测限。尤其是,deepSNV 和 lololopicker 被设计用于调用具有目标测序数据的低频变异。和 deepSNV 并不依赖于质量分数来推断出错误率,而是假设在每个目标位置,错误率是一个随机变量,遵循一个 Β分布。在无效假设下,nT 遵循一个 β-二项式分布,并相应地计算 p 值。在 EBCall 中,Β分布参数是从其他独立控制样本的序列中获得的。在 deepSNV 中,利用肿瘤样本和正常样本进行参数估计。
LoLoPicker 也采用了类似的策略,但对站点特定的错误率假定为固定值进行了重要修改。对于福尔马林固定和石蜡包埋(FFPE)等低质量样品的变异调用,特定地点的错误率特别有用,因为与新鲜样品相比,这些地点之间的错误率更高,更不平衡。然而,估计特定地点的错误率需要对大量样本进行排序,这并不总是可行的。
MuSE 将体细胞 SNVs 视为 DNA 的结果,并用状态空间为 a,t,g,c 的连续时间马尔可夫过程建模。非参考等位基因的平衡频率比较样本特定的阈值从独立的公共数据集。
基于单体类型的策略(相对于主流的基于位置的策略)被结构变异calling软件广泛采用,这些calling 软件需要将读取的内容组合起来以重建长变异。这也是Platypus、 HapMuC、 LocHap、 FreeBayes 和 mutett2使用的检测 SNV 的强大策略。这些算法在局部集合读取一个区域并生成候选单体类型,这些候选单体类型可以用 de Bruijn-like 图表示。每个单体类型的可能性是通过将每个读到的单体类型对齐并计算读支持度来估计的。基于单倍型的变异调用方在变异密集区域具有优势,因为它们不依赖于局部对齐,而局部对齐在困难区域是容易出错的。基于单倍型的调用方还提供了关于变体共存的额外信息。对于基于单体类型的调用方,indel 重新对齐不再有效,因为原始的本地对齐信息被丢弃,读操作被组装和重新对齐。
机器学习方法在分类方面发展迅速,而变异调用本质上是一个分类问题。变异 seq,SomaticSeq,snoop 和 BAYSIC 是应用机器学习方法的典型变异调用方。变异 seq 提取每个站点的相关特征,并基于这些特征和一组“基本事实”的体细胞变体训练4个分类器(随机森林、贝叶斯自适应回归树、支持向量机和 Logit模型)。然后在测试数据集上测试训练后的分类器。
SNooPer 训练一个随机森林分类器,用于处理低覆盖率数据。
SomaticSeq 遵循相同的有监督的训练测试过程,但在两个方面不同于 MutationSeq 或 snoop。首先,采用自适应 boosting 算法进行分类。其次,它是一个集成变量调用程序,需要将来自其他软件(MuTect、 SomaticSniper、 VarScan2、 JointSNVMix2和 VarDict)的变量调用联合起来作为起点,然后应用自己的分类器去除假阳性。
BAYSIC 也是一个集合变量调用程序,它使用一个无监督的潜在类模型来组合多个调用。