前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个基因有两个id我能肿么办

一个基因有两个id我能肿么办

作者头像
生信技能树
发布2021-11-04 14:31:43
3K0
发布2021-11-04 14:31:43
举报
文章被收录于专栏:生信技能树

有学员提问, 为什么他看到了一个基因,如下所示,居然有两个id,看起来就非常的诡异,让他百思不得其解。

一个基因有两个id

其实这个基因首先是有一个基因名字,是 MATR3 ,是人类基因命名委员会给出来的。如果你不了解人类基因命名委员会(HUGO Gene Nomenclature Committee),可以看我六年前的博客介绍:http://www.bio-info-trainee.com/653.html

它这样的名字 https://www.genecards.org/cgi-bin/carddisp.pl?gene=MATR3 对应多个ensembl数据库的基因id很正常,因为它本来就研究并不多,出现数据库的冲突是在所难免的,毕竟不同数据库要同步5万多个基因啊!

如果去搜索它,你会发现 一个基因,搜索结果就这么一点, 简直是丢脸!

搜索这个基因

作为对比,你可以搜索咱们生信技能树看看:

搜索咱们生信技能树看

假如你的表达量矩阵就是ensembl数据库的id格式,然后需要转为基因的名字,这个时候两个id都转为了同样的名字,后续处理就很尴尬。

其实这个时候你可以随意选择,比如这个基因你可以直接删除,或者两个id随意选择一个,或者选择表达量最高的那个id。

下面给出了一个示范代码:

代码语言:javascript
复制

#将ENSEMBL ID转换为SYMBOL,这里用了org.Mm.eg.db包中的ID数据和clusterProfiler包中的bitr函数

library(clusterProfiler)
library(org.Mm.eg.db)
ids=bitr(rl$V1,'ENSEMBL','SYMBOL',org.Mm.eg.db)
ids=ids[!duplicated(ids$SYMBOL),] # 我这里直接粗暴的删除出现重复的id
head(ids)
pos=match(ids$ENSEMBL,rl$V1)#match函数获取括号中左边的在右边的中的位置信息
ct <- mtx[pos,] 
rownames(ct) <- ids$SYMBOL
ct[1:4,1:4]
colnames(ct)=cl$V1 

假如你原来的表达量矩阵是6万个ensembl的id组成的,经过了上面的代码的转换,变成了2万个基因的矩阵。

这个时候你不要害怕,是正常的!人类就只有2万个蛋白编码基因矩阵, 4万个id缺失了就缺失了,这就是人生。如果你问我为什么,我得给你开课,讲解背景知识至少十天半个月!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档