在 3 月 4 号的“Nature”子刊中,展示了利用深度 CNN 来检测体细胞突变的新工具“NeuSomatic”,该工具使用 PyTorch 写成,支持 GPU,对于同等数量的数据(30X),训练时间相比之前谷歌提出的 Deep Variant 所需的 1000 CPU 时,仅需 156 CPU 时。
网络结构
体细胞突变(Somatic Mutation),常见于癌症相关的研究。癌症的成因是细胞中有害突变的累积导致的细胞无限增殖,通过测序技术,可以检测出癌细胞中特有的突变,如果癌细胞正好有靶向药针对的靶点突变,那使用靶向药治疗就能显著提高患者的生存时间,这就是常说的针对癌症的精准个性化医疗。
但癌细胞的突变,其结构更加复杂,多样性更高,检测的难度也更大。传统的方法,不管是准确性还是查全率,都有显著提升的空间。
为了确认哪些是癌细胞特有突变,会对肿瘤组织和正常细胞分别采样测序,之后比较其中的差距。由于癌细胞的突变往往会形成较为复杂的内部结构,因此更难以检出。
之前的利用深度学习做变异检测工具,例如 Deep Variant,只能用来检测来自父母遗传得出的非体细胞突变。NeuSomatic 作为一个新的工具,效果好于目前该领域常用的方法,通过 ensemble 的方法,可以加入检测流程中,用于提升检测出变异的准确性和完整性。
上图展示了该问题的输入数据,Ref(参考序列)代表大部分人的基因序列,正常细胞和癌症细胞测序得出的读(read)是将 DNA 长序列打断测序后得出的片段。中间的图展示的是将测序得出的读比对后的结果,其中的黄色代表可能的体细胞单碱基突变(Single Nucleotide Vantiantion)。
例如此处的 T 在正常细胞中都是没有突变的,但在癌细胞中却又部分变成了 C。而上图中间的是可能的插入类突变,在癌症的样本中,相比正常的样本中的读,标出的部分在部分读上显示有多出的碱基,而这些在正常组织的读中都不存在。
NeuSomatic 按照碱基类型,以及该碱基上支持的读的数目多少,将比对的结果做了转换,得出右图,其中的“-”代表这个位置出现了一个空缺(gap)。
上图展示了模型的处理流程其中的 reference channel,tumor coverage channel,和 normal coverage channel 分别是上图展示的矩阵,同时还会将该位置上人群中的突变概率,癌细胞中之前记录的突变频率以及比对中的质量值等信息以矩阵的形式输入。
这里的 position 指的是矩阵对应的读在测序得出的读中处在什么位置,例如对于测序产生的读长为 200bp(base pair)的读,每个矩阵处理的只是其中的 64bp,因此需要标注其位置信息。
NeuSomatic 同时还支持将其他检测体细胞突变的方法的输出,按照矩阵的形式当成输入,从而实现在一个框架下对多个模型进行整合。
之后的数据处理 CNN 标准的三明治结构(卷积,批量正则化,池化),引入了短路来解决网络过深的问题,之后通过变异类型的分类器来判断变异属于插入,删除,与单碱基突变中的一种,以及变异的长度(0,1,2,或大于等于 3),并通过回归的方式,确定变异所在的位置。
针对网络结构的选择,在训练前,尝试了 ResNet-18 中的多种结构,将训练数据一分为二,一半用来训练当前认为最好的网络结构,一半用来训练新尝试的网络结构。
在训练了一段时间后,下表展示了不同网络结构的对比。根据对不同网络结构的对比,选择了图 g 的结构作为 NeuSomatic 的网络结构,从而保证在 SNV 及 INDEL 上都能有较好的表现。
介绍了网络结构,那该怎么将问题转化为监督学习了?答案是用模拟数据,根据真实突变发生的频率,模拟 DNA 序列某位置已发生突变,这样在知道了答案的前提下,去将为训练数据加上标签。遇到真实数据时,就用在模拟数据中训练好的模型进行分类。
实验
最后看一看该方法在真实数据上的准确性,这里采用了公开的数据集,使用了通过实验验证的肿瘤细胞细胞系中的体细胞突变作为真集。可以看出 NeuSomatic 的表现好于 NeuSomatic-S,这是由于前者在输入中结合了上述的所有常规方法的结果,对其进行了整合,而 NeuSomatic-S 则只是用了原始的测序数据当做输入。在运行时间上,前者是后者的 3.5 倍。
在论文中,作者还验证了该方法对于不同测序平台(二代与三代)的数据,都具有适用性。并且在不同的测序深度下,都表现明显好于已有的方法。
总结
NeuSomatic 是第一种使用深度学习进行体细胞突变的工具,其表现显著优于之前的方法。使用 NeuSomatic,可以提高准确检查出靶点变异的几率,避免漏检,从而更高效的指导他人精准用药。达到之前方法相同的准确度,需要的测序数据也会有显著的降低,从而可以降低检测的成本。在方法学上,该方法的创新点在于将其他检测方法的输出和中间结果等作为输入,从而做到了再一个框架下整合多种方法。