查看原文
其他

ggplot2版本的oncoplot来了

Y叔叔 YuLabSMU 2023-08-13

事情的缘由总要先说一下,正如上图所示(图可点,有链接)。

然后上一次,我们干成了一个事情,就是富集分析的结果,你可以画PPI相互作用网络图了。

今天的主角是用aplot来画oncoplot,这个你可以理解成用ggplot2来画子图,然后用aplot来拼。这个事情本来就可以做,但我觉得我不搞个现成的,大家可能不太会。

为什么要oncoplot,因为它是用base R写的,就是一键出图,然后你啥也干不了了。所以我想给你自由!

再者这个图比较简单,先拿来试水,意思就是我还想搞更多,所以欢迎大家来提需求,我们能行!

这个需求由github用户@lishensuo提供了解决方案,在此代表大家感谢他。一看就是花了时间的,而且条理非常清晰。

然后我就基于他/她的代码进行了魔改,基本上就是能重用的代码尽量写了小函数重用了,能够分解的功能尽量分解了。逻辑更简单清晰了。

我魔改后就AT了@lishensuo,我相信他/她肯定会花时间去看我的代码,这就算是我给到的指导了,因为他/她写的已经很不错了,所以没有来来回回的互动。

然后这些代码就打包进了aplotExtra包了,大家就可以用了。没错,我们有新包aplotExtra,没有Extra附加包的包不是好包。主要是考虑到让aplot保持干净(便于维护,依赖也简单),而且后续我们能搞的复杂图形还会持续增加,于是新包上线。

laml.maf <- system.file("extdata""tcga_laml.maf.gz", package = "maftools")
laml.clin <- system.file('extdata''tcga_laml_annot.tsv', package = 'maftools')
laml <- maftools::read.maf(maf = laml.maf, clinicalData = laml.clin)
aplotExtra::oncoplot(maf = laml, genes = 20)

用上面的代码,就可以画出来下面的图:

好处有多少呢?

aplotExtra::oncoplot()出的图,你能用[[下标取子图,每张子图都是ggplot对象,有必要的话你可以继续更改呀,然后再塞回去,出图就更新了。

然而这远远不止这些,组图嘛,原来maftools::oncoplot()组的是死图,aplot组图嘛,活的!你还能继续加点东西,你看这个oncoplot()是个啥,无非是个基因和样本两个维度的东西。你可以继续加些样本的信息,基因的信息,围绕着主图,再加一圈。

也就是说,原来的oncoplot()只针对基因组/外显子一种组学的数据,你现在多组学了,别的组学的信息,你也能加了。当然还有meta data你也能加了。

胖友们,这意味着什么?意味着我们打开了更多的可能性!你的图可以传达更多的信息,可以更有逼格,以及通过多组学一起呈现,你更有可能会发现一些下游的线索。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存