搜索
查看: 2098|回复: 0

ID转换

[复制链接]

7

主题

26

帖子

740

积分

版主

Rank: 7Rank: 7Rank: 7

积分
740
发表于 2017-3-16 21:15:11 | 显示全部楼层 |阅读模式
本帖最后由 qians 于 2017-3-23 19:52 编辑

ID转换---R
    解题思路:

1、我的数据来源
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5264468/  Table 1.
      只需要第一列的gene list,一个个复制就很麻烦啦,最简单就是在linux里面一个命令就好啦,直接vim new_file,复制粘贴上去,复制到新的文件后导入RStudio就获得了gene list;或者把上图的数据放在EXCEL中,利用EXCEL分列提取(http://mp.weixin.qq.com/s/dEtuPDF-wMEldeWlT2X8Ug
http://mp.weixin.qq.com/s/ZPH8TS2zELQNmnq_0rvAHg),如图:




2、找到gene list对应的数据库类型,这个论坛里面也有http://www.biotrainee.com/thread-411-1-1.html很显然上面获得的gene list是Gene symbol ID

3、获得相应的R package
   论坛里面查找对应的R package的描述:http://www.bio-info-trainee.com/788.html,下载org.Hs.eg.db
箭头指向的就是我们接下来要用到的包
[AppleScript] [color=rgb(51, 102, 153) !important]纯文本查看 [color=rgb(51, 102, 153) !important]复制代码
[color=white !important]
[color=white !important]?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

vim new_file  #linux命令中使用
awk '{print $1}' new_file  #linux命令使用
-------------------------------
rm(list=ls())  #清楚环境变量,这是一个好习惯,掉过坑里
source("[color=blue !important]https://bioconductor.org/biocLite.R")
biocLite("org.Hs.eg.db") #下载包
library("org.Hs.eg.db")  #调用
ls('packagerg.Hs.eg.db')  #查看包的内容
genename=read.table("/home/qians/gene_list.xls")
gene_id_symbol=toTable(org.Hs.egSYMBOL)
gene_id_ensembl=toTable(org.Hs.egENSEMBL)
gene_id_genename=toTable(org.Hs.egGENENAME)
con1=gene_id_symbol[match(genename$V1,gene_id_symbol$symbol),]
con2=gene_id_genename[match(con1$gene_id,gene_id_genename$gene_id),]
con3=gene_id_ensembl[match(con1$gene_id,gene_id_ensembl$gene_id),]
con2$ensembl_id=con3[match(con2$gene_id,con3$gene_id),2]
con2$symbol_id=con1[match(con2$gene_id,con1$gene_id),2]
write.table(con2,file = "/home/qians/gene_conversion.xls",quote=FALSE,sep = "\t",col.names = NA)





下面是最后的结果:
数据第16/17列gene symbol可能出现了一点错误,在其他地方也没有找到,可以先不看


编程心得:由于R学的有点乱,整体框架还没有把握好,导入的数据有第一列带上了序号,看起来比较乱。我觉得代码里面最大的亮点是进行了相互的转换,由于下载的数据是gene symbol,可以用org.Hs.egSYMBOL先转换成gene_id后再用org.Hs.egENSEMBL,org.Hs.egGENENAME两个包分别进行转换,实现了以gene_id为桥梁的gene symbol、ensembl、genename之间相互转换,就不用下载三种数据逐个进行测试啦。里面还有需要学习又没有用到的一些基本函数:reshape、merge,链接先放着http://www.bio-info-trainee.com/1071.html,弄完了接着学习。以及群主做的all_gene_bioconductor文件,感觉很有用呀,先当个工具可以进行快速查找。



上一篇:17-shiny里面显示中文
下一篇:cancer按照primary site来分类并不准确
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-8-23 07:25 , Processed in 0.074992 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.