My First Function

You know you can while tried

Posted by Chevy on March 28, 2018

前言

很开心,因为是我第一次编写了一个函数。 对同一类型的数据进行注释真是件耗费时间的事情,事实上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()函数进行步骤输出。