go 多分隔符拆分_【R】GO富集分析结果中基因注释

本文介绍了如何使用R语言和Excel处理GO富集分析结果,将基因名称与其功能注释对应。通过R进行数据处理,使用`split()`函数拆分多分隔符列,并结合`merge()`合并数据。而在Excel中,利用“数据”菜单的“分列”功能,以特定分隔符拆分后,通过VLOOKUP函数与基因注释总表匹配。总结来说,小规模数据适合用Excel,大规模数据推荐使用R。
摘要由CSDN通过智能技术生成

【分析目标】像下面这种GO分析,在Excel表格里面给出了一堆基因名称,我怎么快速把所有的基因跟它们的功能注释一一对应起来呢?

b1722c2247fae994e1cac518ed0a8f40.png

最终想要的结果类似下图:

2059838356e9265734e3d48d80de7237.png

最近收到朋友的求助,想要解决上面的问题,其实用R语言和excel都可以实现。

用R 实现

library(openxlsx)library(tidyverse)#读取GO注释的基因列表gl  read.xlsx("基因lists.xlsx")

7351c97cbdffe68828c141e6124ca726.png

朋友给我列表时只给出了要拆分的列,所以我就暂时用行号加了一列GO。

#给出行号gl$GO  c(1:nrow(gl))

83c7e9cc585b658d7b7cae330973e20f.png

#按分隔符“|”将genelist拆分成列表gl.sp  strsplit(gl$Hits,"[|]")

6104f8f197fd7cc1879e888b7c22e310.png

#将genlist中的GO分别和拆分后的列表的每个元素合并gl.spc  mapply(cbind, gl$GO, gl.sp)

6104f8f197fd7cc1879e888b7c22e310.png

#最后将列表gl.spc转换为数据框,按行合并,即可得到目标排列的数据gl.d  do.call(rbind.data.frame, gl.spc)colnames(gl.d)  c("GO","Hits")#把Hits复制一份给Gene.IDgl.d$Gene.ID  gl.d$Hits

02e7fbb2c511014f6c17d9a46bf333a7.png

#读取Araport注释anno  read.xlsx("Araport11_annotation.xlsx")

583851c6b640f688c07317acd9599904.png

接下来就是要合并两个数据gl.d和anno。

#inner_join: 合并数据,仅保留匹配的记录# a是按ID来合并数据, b是按symbol来合并数据a  inner_join(gl.d, anno, by=c("Gene.ID"="ID"))b  inner_join(gl.d, anno, by=c("Hits"="symbol"))colnames(a)[colnames(a)=="Gene.ID"]  "ID"a  a[,c("GO","Hits","ID","locus_type","symbol","full_name",          "Note","curator_summary","Alias","computational_description")]colnames(b)[colnames(b)=="Gene.ID"]  "symbol"b  b[,c("GO","Hits","ID","locus_type","symbol","full_name",                 "Note","curator_summary","Alias","computational_description")]#合并两部分gl.r  rbind(a,b)#按之前的行号排序gl.r  arrange(gl.r, as.numeric(GO))write.xlsx(gl.r, "基因lists_anno.xlsx")

ca8c9c94e17a10735528546fc59b2e95.png

用excel实现

选中所要拆分的列,然后利用“数据”中的“分列”功能:

2d1390bf533bb4d1e17fe9a70fe1156a.png

3c718e9dab71f31f3364161f41e25898.png

分隔符自己输入“|”,然后点完成,就变成了如下图所示:

68a93d2cc10d9038ffb0f95d517ef35d.png

然后进行复制,新建一个sheet, 粘贴时进行转置:

85fd4e32723456395be909ce6693297d.png

然后再合并成一列(这一步如果GO注释的行数多的话,那么用excel进行剪切再粘贴就会很繁琐),如下图所示:

9f368893e21cffd6ae600ca4bbf07d13.png

到这一步后,就需要用到基因注释的总表了,格式如下:

583851c6b640f688c07317acd9599904.png

接下来再利用VLOOKUP函数之前还需要做一些小的调整,首先需要把Hits这一列都变成ID的格式, 如"AT0G00000"。

9cd3b0b60bd24b1797802014c345d7c4.png

b731681a79433cb180640dbe97e478d1.png

总结: 如果数据比较少的话,excel就能实现;如果数据多的话,还是用R方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值