查看原文
其他

本科生写的新包:wikiprofiler

Y叔叔 YuLabSMU 2023-10-04

这个包简单说,就是能让你把数据(比如说基因的倍数变化)映射到wikipatwhays上进行展示。

我设计了一下类似于ggplot2一样的语法,用的不是+号,而是管道%>%|>来操作,每次就往上加点东西,当然当前能加的东西也比较有限。

然后我让一个大三的学生写具体的实现,也就是包的第二作者Chen Yihao同学,他在大四的时候,又跟着我写了另一个R包,今年已经是协和的研究生了。

这个包一直放在github上,我最近把它放到CRAN上了,所以大家可以很方便地安装它。

install.packages("wikiprofiler")

直接上实例

一般来说,我们会有一个富集分析的结果,拿着结果中的某些通路来展示嘛,WiKiPathways的富集分析,可以使用clusterProfiler包来完成。

library(clusterProfiler)
library(wikiprofiler)

data(geneList, package="DOSE")

de <- names(geneList)[1:100]
x <- enrichWP(de, organism='Homo sapiens')

这里分析的ID是Entrez,而我们在wikiprofiler中需要Symbol,所以需要转换一下。做起来也简单,用bitr函数即可。此处两行代码就可以,我注释掉的一行代码,如果映射ID的时候有一对多的情况,你只能保留一个(因为名字不可重复),这一行代码是简单粗暴地保留第一个ID,此处因为正好是一对一映射,所以不需要。实际情况中你可能会用到这一行。这里得到的value就是命名向量,名字是gene symbol,具体值是log2 Fold Change。

de2 <- bitr(de, "ENTREZID""SYMBOL", OrgDb='org.Hs.eg.db')
#### if needed
# de2 <- de2[!duplicated(de2[,1]), ]
value <- setNames(geneList[de2[,1]], de2[,2])

数据准备好之后,我们来上实例了。首先你有个通路ID,你用wpplot()就能出图。这个通路ID,可以随便给,当然此处是显著富集结果中的一个ID。

ID <- x$ID[1]

p1 <- wpplot(ID)
p1

这个包主打能映射数据在通路上,有了刚才准备的value,用wp_bgfill()就能填充在相应格子里做为背景了。

p2 <- p1 |> wp_bgfill(value, low='darkgreen', high='firebrick', legend_x = .9, legend_y = .95)
p2

有背景是不是字就不清晰了?这有何难,我们可以用wp_shadowtext()来把字给换了,带阴影效果。字就凸显出来了。

p3 <- p2 |> wp_shadowtext()
p3

这个包大概就这些功能,欢迎使用、拍砖、提要求。毕竟只是用了很短时间写出来的,还需要更多的功能加进去。

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

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