「r<-包」sigminer 包简史
今天上 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。
其实,这篇文章早已在 2018 年就发布在了生物预印本上,我在 19 年不知道什么时候阅读过。除了上面 3 种突变类型,还有研究人员对基因组重排也进行了 Signature 分析,不过因为需要 WGS 数据,所以目前比较难以作为常规的分析手段。另外还有人研究拷贝数变异,2018 年 Macintyre 等人基于浅 WGS 测序对 ovarian cancer 进行了研究,见 Copy number signatures and mutational processes in ovarian carcinoma。我们在想是否可以将 copy number signatures 应用于 芯片这种目前更为常见和常用的数据。所以我以前列腺癌为对象,基于 Macintyre 的分析流程代码开始研究 copy number signatures 的分析方法和实现,并将其打包,于是有了 R 包 VSHunter,能够处理 ABSOLUTE 生成的绝对拷贝数数据。但在使用过程中我自己对构建的函数体系不满意,且立意太狭窄,当时我有意将 SBS signature 也整合进来,并在未来支持 DBS 和 ID signatures,所以对工具进行完全的重构,于是有了 sigminer。
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 分析流程:
- de novo signature discovery with NMF or bayesian NMF
- exposure quantification based on reference signatures like COSMIC signatures
使用方法我就不介绍了,有编写专门的文档 https://shixiangwang.github.io/sigminer-doc/,如果存在问题也可以通过 GitHub issue 交流。
最后非常感谢 sigminer 脚下的巨人们。