Science相关 杂生信

《一个R包搞定基因(human)ID转换》—跟着Jimmy学生信

2020-04-13  本文已影响0人  喂鸡组的阿翔

内容不是教程,均为个人学习笔记,以备后日查询
学习资源均来自生信技能树论坛生信技能树B站视频,微信公众号:生信技能树


需要用到的R包为:org.Hs.eg.db

library(org.Hs.eg.db)  #加载R包
ls("package:org.Hs.eg.db")

包内每一个object都包含不同基因ID的对应关系,例如对象org.Hs.egSYMBOL中是gene_idsymbol之间的对应关系

1.提取包中的基因注释信息

g2s<-toTable(org.Hs.egSYMBOL)
g2e<-toTable(org.Hs.egENSEMBL)
object:a

2.通过ensembl_id关联a与g2e

b<-merge(a,g2e,by='ensembl_id',all.x=T)
#这里注意!all.x=T参数必须添加,意为即使在g2e中没有找到a中某一个元素的对应条目
#也保留a中的这一条目
  1. 通过gene_id关联b与g2s
d<-merge(b,g2s,by='gene_id',all.x=T)
#至此我们完成了ID的转换
object:d

4.我需要按照矩阵中的原始顺序将GeneID返回,就得将我们转换完的ID按照原始数据排列一个ensembl_id有可能对应两个gene_id,出现两个genesymbol这导致在转换完成的d里面的行数是多于原始ensembl_id数据的,因此我们要删除重复的条目.

d<-d[!duplicated(d$V1),]
#通过match()函数将a中V1的顺序放到d的V1中去
d<-d[match(a$V1,d$V1),]
#将转换结果输出
write.table(d,'geneID2symbol.csv')

这个包中所包含的内容几乎可以完成人基因的所有ID转换。比如有做中药网络药理学的会遇到从DrugBank数据库中得到的基因为全称,例如:[Gamma-aminobutyric acid receptor subunit alpha-1]
在做后续生信分析的时候需要批量将基因全称转换为gene_symbol,使用这个R包也是可以完成的。

上一篇下一篇

猜你喜欢

热点阅读