今天上 GitHub 看到 Hadley Fork 了我的仓库,这是什么鬼?难道他对生信有了兴趣??
事实到底如何不得而知,但我正好借此机会简单介绍一下 Sigminer 这个包。
2013 年 Alexandrov 等人在 Nature 上发文为癌症基因组突变分析引入了一个新的概念 Mutational Signature,主要是将突变进行分类,然后利用非负矩阵分解找寻多个样本共有的突变 pattern。随后这个概念和分析方法被广泛应用,并(通过分析或实验)找到了很多 signature 对应的内外源病因,大体有紫外线、吸烟、APOBEC、错配修复缺陷和同源重组修复缺陷等等。
近期,还是 Alexandrov 等人(2020)在 Nature 上发文,使用 PCAWG 提供的全基因组学数据对 Mutational Signature 进行了分析,并对突变类型进行了拓展,包括 SBS、DBS、INDEL(简写为 ID),见文章 The repertoire of mutational signatures in human cancer[1]。
其实,这篇文章早已在 2018 年就发布在了生物预印本上,我在 19 年不知道什么时候阅读过。除了上面 3 种突变类型,还有研究人员对基因组重排也进行了 Signature 分析,不过因为需要 WGS 数据,所以目前比较难以作为常规的分析手段。另外还有人研究拷贝数变异,2018 年 Macintyre 等人基于浅 WGS 测序对 ovarian cancer 进行了研究,见 Copy number signatures and mutational processes in ovarian carcinoma[2]。我们在想是否可以将 copy number signatures 应用于 芯片这种目前更为常见和常用的数据。所以我以前列腺癌为对象,基于 Macintyre 的分析流程代码开始研究 copy number signatures 的分析方法和实现,并将其打包,于是有了 R 包 VSHunter[3],能够处理 ABSOLUTE 生成的绝对拷贝数数据。但在使用过程中我自己对构建的函数体系不满意,且立意太狭窄,当时我有意将 SBS signature 也整合进来,并在未来支持 DBS 和 ID signatures,所以对工具进行完全的重构,于是有了 sigminer[4]。
Sigminer 的开发也并非一帆风顺,当我将 Macintyre 等人的方法应用于实际的数据分析后,在19年7月份左右已经绘制好各种图准备写作投稿,但在写作汇总过程中发现无论是数据还是方法都可能存在问题。接着我们打破重来,将芯片数据转换为从 TCGA 下载的全外显子测序数据,并使用 Sequenza和Facets进行拷贝数的定量,然后用于后续分析。在方法上,我使用更为简单、与 SBS signature 分析更为一致的分类计数方法生成 NMF 所需要的矩阵。然后对 sigminer 进行了第二次重构,完成后直接将版本设定为 0.99,接着根据自己的分析需求不断地改进。在我们完成写作后,我将 sigminer 新的版本正式发布在了 CRAN 上。
为了辅助接下来的研究,我们实现了 4 种基本的突变模式分析类型,包括 SBS、DBS、INDEL 和 copy number。它们的可视化也能基于 ggplot2 轻松完成。
分析 Signatures 的工具很多,但这应该是第一个实现如此丰富类型的 R 包。基于 Python 的 SigProfiler 也有相似的功能,但它更像一个命令行工具,缺乏了 R 赋予的可交互性和灵活性。
另外我还采纳了非常多 Signature 分析包的特性,目前支持 2 种最核心的 Signature 分析流程:
使用方法我就不介绍了,有编写专门的文档 https://shixiangwang.github.io/sigminer-doc/[5],(点击原文)如果存在问题也可以通过 GitHub issue 交流。
回首发现时间可真快,这个工具浓缩了接近 2 年的时光。
最后非常感谢 sigminer 依赖的巨人们。
[1]
The repertoire of mutational signatures in human cancer: https://www.nature.com/articles/s41586-020-1943-3
[2]
Copy number signatures and mutational processes in ovarian carcinoma: https://www.nature.com/articles/s41588-018-0179-8
[3]
VSHunter: https://github.com/ShixiangWang/VSHunter
[4]
sigminer: https://github.com/ShixiangWang/sigminer
[5]
https://shixiangwang.github.io/sigminer-doc/: https://shixiangwang.github.io/sigminer-doc/