肿瘤基因突变检测是NGS的一个重要应用,其分析难点主要在于低频变异的准确性。不同于遗传病检测,肿瘤样本类型多样,测序方法和参数复杂,且缺乏对应各种场景的公共标准真集。再加上常用开源软件经常遇到的准确性低,稳定性差,速度慢等问题。这使得广大诊断公司在评估肿瘤变异检测工具、搭建高效稳定的生信流程上,面临巨大的挑战。

作为NGS数据二级分析的产品专家,Sentieon推出了一系列肿瘤分析流程,适用于从组织样本到液态活检等不同场景。其中,TNscope模块采用Sentieon自主设计的算法,搭配机器学习模型,追求最高的灵敏度、准确度以及使用的灵活性,适合临检样本。TNhaplotyper2模块在结果上匹配GATK最新4.1版本的Mutect2,同时提速10倍以上,更加适用于科研样本。

本期分享近期发表的3篇文献,对TNscope和TNhaplotyper2的性能和准确性进行的详细和客观的评估。最后我们将展示BMS(百时美施贵宝)使用Sentieon TNscope检测MNV纠正TCGA数据库的案例。

TNscope

TNscope模块对于低频变异的检测灵敏度非常高,搭配丰富可调的过滤参数或者机器学习过滤器,可以在临检样本上达到很高的灵敏度和特异性。目前,TNscope流程已被业内多家诊断公司采用,在室间质评等质控场景下均有优异表现。

2020年7月由中山大学和安诺优达联合发表的一篇文章中,作者建立测试数据集,系统的比对了目前流行的包括TNscope在内的多款肿瘤变异检测软件,从准确度和速度两方面给出了评测数据。

文中作者使用细胞系真集合成不同肿瘤纯度的真集数据,来评估不同的肿瘤变异检测流程。在这里,作者将HG001和HG002 两个标准品原始reads按不同稀释比例(10%-60%)混合,合成了4套100x深度的模拟数据,经过比对,去重,重比对,BQSR等步骤后,用6款变异检测软件进行变异检测,包括TNscope (v201808.05),TNseq (v201808.05,匹配3.8版本MuTect2结果),Mutect2 (v4.0.7),NeuSomatic (v0.2.0),VarScan2 (v2.3.9),Strelka2 (v2.8.4)。输出结果经过RTG Tools和真集比对计算Precision和Recall。

在区分度较大的5%变异丰度数据集中,我们可以看到, TNscope和Mutect2 (和TNhaplotyper2结果一致) 在SNP和Indel检测上都大幅度领先其他软件,尤其是TNscope能够在基本杜绝假阳性的基础上达到较高的灵敏度。

除了准确度以外,生信流程的分析速度是临检环境的另一个关注点,尤其是随着样本量的增长,高深度大panel的普及,单个样本测序数据量也在飞速增长。提高分析速度,加快产品交付周期变得至关重要。本文比较了不同软件的计算时长:TNscope的速度遥遥领先,和Mutect2相比提速10倍左右。

综合本文中准确度和速度两方面的指标,Sentieon的TNscope性能超越了其他所有参评的软件模块。我们期待TNscope能够助力更多的临检用户,在提升分析准确性的同时大幅提升速度,压缩计算成本。

TNhaplotyper2

在科研领域,GATK的Mutect2以其优异的性能和Broad Institute的强力背书一直被业内作为金标准所接受。进入GATK4时代以来,Mutect2进入了技术尝试期,在子版本更新中,频繁更新算法,大量引入新参数,相邻子版本的变异检测结果差异有时会高达50%。这样的大幅变化,给用户带来了很大困惑,对Mutect2的稳定性也产生怀疑。因此,Sentieon在匹配了4.0.2版本之后也暂停了对不稳定Mutect2版本的匹配更新。进入4.1版本之后,Mutect2 完成beta更新测试,在完善功能模块的同时,版本更新也逐步稳定。所以,Sentieon应广大用户的要求,发布了匹配目前最新的4.1.9版本的TNhaplotyper2加速方案。

2020年7月份,在BMC Medical Genomics上发布了的一篇文章,对4.1版本的Mutect2进行了性能测试。作者选取了同一个组织样本的新鲜冷冻(Fresh Frozen)样本以及福尔马林固定切片(FFPE)样本进行了NGS测序,对结果数据进行肿瘤突变检测。随后以新鲜冷冻样本为金标准,考察不同检测软件流程在处理FFPE样本时的准确度表现。

文章选用了四个常用的软件,包括了Mutect2 (v4.1.2),VarScan2 (v2.2.3),Shimmer (v0.2),以及Strelka2 (版本未汇报)。作者首先使用每个软件检测新鲜冷冻样本FF的变异,作为比较的基准,然后检测FFPE样本的变异,并和FF的结果进行比较。比较的方法是通过调整每个软件最有代表性的肿瘤概率annotation,例如Mutect2用TLOD,Strelka2使用EVS等,这样在生成ROC curve上找到F1最大值,作为每个软件的优化结果。

从上图中可以看出,Mutect2和Strelka2给出的FFPE结果比较接近,说明能更好的区分FFPE的artifact,远远优于VarScan2和Shimmer的结果。作者在讨论中也着重指出了,不同检测软件的选取对于突变结果的影响甚至超过了样本类型的影响,这也再次证明了软件的性能对于最终结果准确性的巨大影响。

值得注意的是,文中使用的4.1.2并不是当前的最新版本,Sentieon TNhaplotyper2所匹配的版本4.1.9的准确性会比文中所显示的更加优异。同时,TNhaplotyper2运行时间仅为Mutect2的1/10,大大缩短了项目周期,节约了计算成本,是科研用户的最佳选择。

MNV肿瘤合并

本篇文献来自于药企BMS(百时美施贵宝),BMS与Sentieon团队合作,利用Sentieon的肿瘤MNV合并模块对TCGA等公共数据库里的结果进行检查,发现了大量VCF结果中的MNV被错误标记为了SNV,导致氨基酸翻译错误,继而影响了后续的医学诊断。

要想准确的鉴定MNV复杂变异,Haplotype的识别是第一步,这就要求变异检测软件必须进行局部组装(local denovo assembly),利用reads的信息拼接出不同的haplotype,从而确定不同位置突变之间的连锁关系。Sentieon的TNscope以及TNhaplotyper2模块都会输出haplotype信息。如果两个相近的变异位于同一个haplotype上,那么Sentieon的MNV合并模块将会把它们在VCF中合并成一个MNV。

在TCGA数据集的重新验证中,文章发现12,141个MNV被错误注释了,另外有7个常见突变基因的MNV在20个数据集中都没有被正确合并。最常见的一个例子就是BRAF V600K变异,在若干公共数据集中都是错误的作为BFAF V600E和BRAF V600M的SNV汇报。类似的例子在TCGA数据集中频繁出现,下图是一个数目的汇总。

文末总结道,虽然自2017年以后的大型项目中的MNV都已经被正确的合并了,但是很多中小型学术项目或者商业公司的数据集里,MNV合并还是经常被遗漏,有待修复。只有正确判断出MNV才能判断出正确的蛋白氨基酸变异,作者在此推荐在任何肿瘤流程中都使用类似于Sentieon MNV这样的合并工具。

Sentieon实战:NGS肿瘤变异检测流程的更多相关文章

  1. SSIS从理论到实战,再到应用(4)----流程控制之For循环

    原文:SSIS从理论到实战,再到应用(4)----流程控制之For循环 上期回顾: SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器 在SSIS体系中,控制流可能经常会遇到 ...

  2. SSIS从理论到实战,再到应用(5)----流程控制之Foreach循环

    原文:SSIS从理论到实战,再到应用(5)----流程控制之Foreach循环 上期回顾: SSIS从理论到实战,再到应用(4)----流程控制之For循环 上一期讲了For循环,Foreach循环相 ...

  3. Android内存泄漏的检测流程、捕捉以及分析

    https://blog.csdn.net/qq_20280683/article/details/77964208 Android内存泄漏的检测流程.捕捉以及分析 简述: 一个APP的性能,重度关乎 ...

  4. OpenCV实战:人脸关键点检测(FaceMark)

    Summary:利用OpenCV中的LBF算法进行人脸关键点检测(Facial Landmark Detection) Author:    Amusi Date:       2018-03-20 ...

  5. TF项目实战(SSD目标检测)-VOC2007

    TF项目实战(SSD目标检测)-VOC2007 训练好的模型和代码会公布在网上: 步骤: 1.代码地址:https://github.com/balancap/SSD-Tensorflow 2.解压s ...

  6. Kafka实战-实时日志统计流程

    1.概述 在<Kafka实战-简单示例>一文中给大家介绍来Kafka的简单示例,演示了如何编写Kafka的代码去生产数据和消费数据,今天给大家介绍如何去整合一个完整的项目,本篇博客我打算为 ...

  7. yolov5实战之皮卡丘检测

    前言 从接触深度学习开始一直都做的是人脸识别,基本上也一直都在用mxnet. 记得之前在刚接触的时候看到博客中写到,深度学习分三个层次,第一个层次是分类,第二个层次是检测,第三个层次是分割.人脸识别算 ...

  8. Loadrunner VuGen实战---基本组成、录制流程、协议、脚本优化、参数化(三)

    一.3大基本组件:VuGen.Controller.Analysis 1.VuGen:录制.编写脚本. 2.Controller:性能测试场景设计以及监控的地方. 3.Analysis:生成图表报告的 ...

  9. TensorFlow + Keras 实战 YOLO v3 目标检测图文并茂教程

    运行步骤 1.从 YOLO 官网下载 YOLOv3 权重 wget https://pjreddie.com/media/files/yolov3.weights 下载过程如图: 2.转换 Darkn ...

  10. yolo源码解析(3):视频检测流程

    代码在自己电脑中!!!!不在服务器 根据前文所说yolo代码逻辑: ├── examples │ ├── darknet.c(主程序) │ │── xxx1.c │ └── xxx2.c │ ├── ...

随机推荐

  1. spring事务里面开启线程插入,报错了是否会回滚?

    1.前言 一道非常有意思的面试题目.大概是这样子的,如果在一个事务中,开启线程进行插入更新等操作,如果报错了,事务是否会进行回滚 2.代码 示例1 @RequestMapping("/tes ...

  2. Uber SRE 实践:运维大型分布式系统的一些心得

    本文是 Uber 的工程师 Gergely Orosz 的文章,原文地址在:https://blog.pragmaticengineer.com/operating-a-high-scale-dist ...

  3. 会使用ChatGPT写作业找工作会不会加分啊!!!代码问题直接问ChatGPT不比CSDN好多了吗

    1.使用reactnative写一个数字游戏 2.MySQL问题

  4. Docker Compose 部署GitLab

    先决条件 Docker Engine和Docker Compose是必需的.请参阅在CentOS上安装Docker Engine. 建议使用4核的服务器,同时至少分配4G的内存,理论上4核4G可最多支 ...

  5. JS执行机制--同步与异步

    单线程JavaScript语言具有单线程的特点,同一个时间只能做一件事情.这是因为JavaScript脚本语言是为了处理页面中用户的交互,以及操作DOM而诞生的.如果对某个DOM元素进行添加和删除,不 ...

  6. P1350 车的放置 题解

    一.题目描述: 给你一个网格棋盘,a,b,c,d 表示了对应边长度,也就是对应格子数. 例如,当 a=b=c=d=2 时,对应了下面这样一个棋盘: 想要在这个棋盘上放 k 棋子,也就是这 k 个棋子没 ...

  7. List嵌套排序并取第一个对象

    using Newtonsoft.Json;using 嵌套List排序; //示例listvar exampleString = "{\"code\":1,\" ...

  8. 数据结构与算法大作业:走迷宫程序(C语言,DFS)(代码以及思路)

    好家伙,写大作业,本篇为代码的思路讲解   1.大作业要求 走迷宫程序 问题描述: 以一个 m * n 的长方阵表示迷宫, 0和1分别表示迷宫的通路和障碍. 设计一个程序, 对任意设定的迷宫, 求出一 ...

  9. 2023-01-12:一个n*n的二维数组中,只有0和1两种值, 当你决定在某个位置操作一次, 那么该位置的行和列整体都会变成1,不管之前是什么状态。 返回让所有值全变成1,最少的操作次数。 1 <

    2023-01-12:一个n*n的二维数组中,只有0和1两种值, 当你决定在某个位置操作一次, 那么该位置的行和列整体都会变成1,不管之前是什么状态. 返回让所有值全变成1,最少的操作次数. 1 &l ...

  10. 2022-09-20:以下go语言代码输出什么?A:8 8;B:8 16;C:16 16;D:16 8。 package main import ( “unsafe“ “fmt“ )

    2022-09-20:以下go语言代码输出什么?A:8 8:B:8 16:C:16 16:D:16 8. package main import ( "unsafe" " ...