前言
很开心,因为是我第一次编写了一个函数。 对同一类型的数据进行注释真是件耗费时间的事情,事实上R语言里面存在着函数这个节省代码的操作,所以这里编写第一个正式的函数方便调用。
正文
目的是注释斑马鱼基因的GO term,用到dplyr包的select()函数以及org.Dr.eg.db注释包和GO.db注释包。
思路为输入文件为data.frame文件,根据GeneSymbol(ENSEMBL))一栏得到GO id,根据GO id得到GO description。
待解决问题
由于目前单基因可以注释到多个GO通路,所以会拉伸数据长度,下一步想要把单个基因的所有注释合并到一栏内。
代码实现
go_desc <- function(x){
library(dplyr)
library(GO.db)
a <- select(org.Dr.eg.db, keys=as.character(x$GeneSymbol), columns = c("GO"), keytype = "ENSEMBL")
b <- select(GO.db, keys = a$GO, columns = c("TERM"), keytype = "GOID")
c <- data.frame(a[,1],b)
colnames(c)[1] <- "GeneSymbol"
d <- dplyr::left_join(x, c, by="GeneSymbol")
return(d)
}
result <- go_desc(your_data.frame)
更新:
2018-05-20
目前已经编写了三个函数,用以处理RNA-seq analysis的后续衔接。
2019-01-10
目前三个函数进行了改进,加入了message()函数进行步骤输出。