生信基础 | 人-小鼠基因之间的比较

先看看MSigDB中的基因ENTREZID是否可以全部转化为SYMBOL。

library(biomaRt)library(clusterProfiler)library(org.Hs.eg.db)library(org.Mm.eg.db)library(AnnotationDbi)load("F:/BioInfoStudy/data/genesets/mouse_H_v5p2.rdata")load("F:/BioInfoStudy/data/genesets/human_H_v5p2.rdata")hsa_ent <- c()for(x in names(Hs.H)){ hsa_ent <- c(hsa_ent,Hs.H[[x]])}hsa_ent <- unique(hsa_ent)length(hsa_ent)
hsa_ent2symb <- bitr(hsa_ent, fromType = "ENTREZID", toType = "SYMBOL", OrgDb = org.Hs.eg.db)dim(hsa_ent2symb)
diff_ent <- setdiff(hsa_ent,hsa_ent2symb$ENTREZID)
ent2symb <- toTable(org.Hs.egSYMBOL)ent2symb[match(diff_ent,ent2symb$gene_id),]
AnnotationDbi::select(org.Hs.eg.db, keys=diff_ent,columns=c("SYMBOL"), keytype="ENTREZID" )mget(diff_ent, org.Hs.egSYMBOL,     ifnotfound=NA

通过多种转换方式,发现人的ENTREZID有3个无法找到对应的SYMBOL,NCBI上检索了一下,也没找到这3个基因。

> diff_ent[1] "285464" "11217" "80761"

再看看小鼠的。

###--------------------------------------小鼠mus_ent <- c()for(x in names(Mm.H)){ mus_ent <- c(mus_ent,Mm.H[[x]])}mus_ent <- unique(mus_ent)length(mus_ent)
mus_ent2symb <- bitr(mus_ent, fromType = "ENTREZID", toType = "SYMBOL", OrgDb = org.Mm.eg.db)dim(mus_ent2symb)
diff_ent <- setdiff(mus_ent,mus_ent2symb$ENTREZID)
ent2symb <- toTable(org.Hs.egSYMBOL)ent2symb[match(diff_ent,ent2symb$gene_id),]
AnnotationDbi::select(org.Hs.eg.db, keys=diff_ent,columns=c("SYMBOL"), keytype="ENTREZID" )
#org.Mm.egMAPCOUNTSmget(diff_ent, org.Mm.egSYMBOL, ifnotfound=NA)

居然有15个没有找到对应的symbol。

> diff_ent [1] "675165" "100038993" "100861969" "100043385" "100504735" "105245585" "546061" [8] "625758" "668131" "665343" "667941" "11641" "100039053" "100043918"[15] "100043921"

写一个函数,用于人-小鼠同源基因的转换;

####------------------------------conversion_BtHsaAndMusGenes <- function(genes,species){ human <- biomaRt::useMart(biomart = "ENSEMBL_MART_ENSEMBL", dataset = "hsapiens_gene_ensembl") mouse <- biomaRt::useMart(biomart = "ENSEMBL_MART_ENSEMBL", dataset = "mmusculus_gene_ensembl") if(species == "human"){ gt <- biomaRt::getLDS(attributes = c("hgnc_symbol"), filters = "hgnc_symbol", values = genes, mart = human, attributesL = c("mgi_symbol"), martL = mouse,uniqueRows = T) }else if(species == "mouse"){ gt <- biomaRt::getLDS(attributes = c("mgi_symbol"), filters = "mgi_symbol", values = genes , mart = mouse, attributesL = c("hgnc_symbol"), martL = human, uniqueRows=T)  }else{stop("Wrong species information")} return(gt)}

加载我自己从gtf文件读入的所有基因信息进行转换。

load(file = "K:/BioInfoFiles/human/gencode.v35_human_hsaGeneInfo.Rdata")head(hsaGeneInfo)[1:3,]# > head(hsaGeneInfo)# ensembl symbol gene_type geneLength# 1 ENSG00000000003 TSPAN6 protein_coding 4536# 2 ENSG00000000005 TNMD protein_coding 1476# 3 ENSG00000000419 DPM1 protein_coding 1207
load(file = "K:/BioInfoFiles//mouse/gencode.vM27_mouse_musGeneInfo.Rdata")head(musGeneInfo)# > head(musGeneInfo)[1:4,]# ensembl symbol gene_type geneLength# 1 ENSMUSG00000000001 Gnai3 protein_coding 3262# 2 ENSMUSG00000000003 Pbsn protein_coding 902# 3 ENSMUSG00000000028 Cdc45 protein_coding 3506# 4 ENSMUSG00000000031 H19 lncRNA 2460
###把小鼠基因转换为人的同源基因m2h <- conversion_BtHsaAndMusGenes(genes = musGeneInfo$symbol,species = "mouse")
head(m2h)# > head( m2h)[1:2,]# MGI.symbol HGNC.symbol# 1 mt-Atp6 MT-ATP6# 2 mt-Co2 MT-CO2dim(m2h)# > dim(m2h)# [1] 23075 2###把人基因转换为小鼠的同源基因h2m <- conversion_BtHsaAndMusGenes(genes = hsaGeneInfo$symbol,species = "human")h2m[1:2,]# > h2m[1:2,]# HGNC.symbol MGI.symbol# 1 MT-CO2 mt-Co2# 2 MT-CO1 mt-Co1dim(h2m)# > dim(h2m)# [1] 22714 2
##有重复的length(unique(m2h$HGNC.symbol))length(unique(m2h$MGI.symbol))# > length(unique(m2h$HGNC.symbol))# [1] 18411# > length(unique(m2h$MGI.symbol))# [1] 19308

这里比较MSigDB数据集中小鼠与人基因之间的差异并统计。

statgeneinfo <- data.frame()identical(names(Hs.H),names(Mm.H))#gs <- names(Mm.H)[1]for(gs in names(Mm.H)){ total_pre_hsa <- length(Hs.H[[gs]]) total_pre_mus <- length(Mm.H[[gs]]) hsa_symbol <- bitr(Hs.H[[gs]], fromType = "ENTREZID", toType = "SYMBOL", OrgDb = org.Hs.eg.db)[,2] %>% na.omit() total_after_hsa <- length(hsa_symbol) mus_symbol <- bitr(Mm.H[[gs]], fromType = "ENTREZID", toType = "SYMBOL", OrgDb = org.Mm.eg.db)[,2] %>% na.omit() total_after_mus <- length(mus_symbol)
hsa_mus_con_g <- intersect(hsa_symbol,m2h[match(mus_symbol,mus_ent2symb$SYMBOL),2]) hsa_mus_con_len <- length(hsa_mus_con_g)  hsa_uniq <- total_pre_hsa - hsa_mus_con_len mus_uniq <- total_pre_mus - hsa_mus_con_len hsa_na <- total_pre_hsa - total_after_hsa mus_na <- total_pre_mus - total_after_mus
info <- data.frame(dataset = gs,                     total_pre_hsa = total_pre_hsa, total_pre_mus = total_pre_mus, total_after_hsa = total_after_hsa, total_after_mus = total_after_mus, hsa_mus_con_len = hsa_mus_con_len, hsa_uniq = hsa_uniq, mus_uniq = mus_uniq, hsa_na = hsa_na, mus_na = mus_na) statgeneinfo <- rbind(statgeneinfo,info)}

total_pre_hsa和total_pre_mus:原始数据集中的基因个数

total_after_hsa和total_after_mus:进行基因转换后的基因个数

hsa_mus_con_len:人和小鼠共有的基因个数

hsa_uniq和mus_uniq:人和小鼠中各特有的基因个数。

hsa_na和mus_na:未能将ENTREZID转化为SYMBOL的个数


参考:

生信基础 | 人-小鼠同源基因之间的转换

biomaRt包实现不同物种之间同源基因转换

生信中各种ID转换

基于小鼠的基因集数据库资源

(0)

相关推荐

  • 数据类型与typeof

    个人学习笔记,如有错误请指出 数据类型 基本数据类型(原始值类型) number NaN/Infinity特殊 string 单引号/双引号/反引号`` boolean true/false null ...

  • 生信编程8.ID转换

    有一些五六年前的学生们都成长为了各个生物信息学相关公司的小领导,而且他们都有了自己的公众号,知乎号,也算是一番人物.最近他们跟我反馈面试找不到或者说很难直接考核筛选到认真干活的生信工程师,挺有意思的. ...

  • 上下调基因各自独立进行GO数据库的3分类富集(求美图代码)

    火山图大家应该是也基本上都没有问题,下面的MA图其实跟火山图非常的类似,两者都是log2FC信息,不同的是火山图展现P值,而MA图展现的是表达量情况! 火山图是为了说明log2FC比较大的一般来说具有 ...

  • 三阴性乳腺癌表达矩阵探索笔记之差异基因富集分析

    学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了! 下面是学徒写的<GEO数据挖掘课程>的配套笔记(第3篇) B站课程<三阴性乳腺癌表达矩阵探索>笔记之文献解读 三阴 ...

  • clusterProfiler|GSEA富集分析及可视化

    GSEA(Gene Set EnrichmentAnalysis),即基因集富集分析,无需设定阈值来区分上调下调基因,使用所有的基因进行分析. GO 和 KEGG 可参考:R|clusterProfi ...

  • 没有什么基因芯片的探针是不能注释的

    最近收到读者求助,说他感兴趣的表达量芯片数据集用到的的芯片是:[HT_HG-U133_Plus_PM] Affymetrix HT HG-U133+ PM Array Plate ,看起来跟我们授课的 ...

  • 模式生物:小鼠 Mus musculus

    由于个体小.温顺.容易饲养,具有和人类相似的发育过程和组织解剖结构等特点,最早从 17 世纪小鼠就开始被用于解剖学和动物实验.经长期人工饲养选择培育,现已育成千余个独立的远交群和近交系,小鼠已成为解析 ...

  • 单细胞功能注释和富集分析(GO、KEGG、GSEA)(2021公开课配套笔记)

    新课发布在B站了,马上有热心的粉丝看完后写了配套笔记: 下面是粉丝linbo的笔记投稿 多个亚群各自merker基因联合进行GO以及KEGG分析 在前面几节我们已经知道各个细胞亚群的maerker基因 ...

  • R语言的繁荣背后何尝没有隐患

    R语言的繁荣是毋庸置疑的,至少在科研界的地位蒸蒸日上,极大的占领了原来属于各种商业绘图软件的市场.不仅仅是在于其免费的属性,更重要的是随心所欲地自由定制. 但是参与的玩家多了之后,也会出现一些冲突.最 ...

  • 既然可以看感兴趣基因的生存情况,当然就可以批量做完全部基因的生存分析

    前言 年前我提出了一个问题:为什么不用TCGA数据库来看感兴趣基因的生存情况 就是一篇文章并没有使用TCGA数据库的指定癌症的生存信息去看自己感兴趣的基因的生存效应,反而舍近求远去下载BMC Canc ...