本科生写的新包:wikiprofiler
这个包简单说,就是能让你把数据(比如说基因的倍数变化)映射到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
这个包大概就这些功能,欢迎使用、拍砖、提要求。毕竟只是用了很短时间写出来的,还需要更多的功能加进去。