如何快速查找物种间对应的同源基因

Homologous Gene ID Conversion.png

有时候,大家做实验以小鼠为模型,但希望查看与之对应的人同源基因。像这种情况,我们可以不需要进行序列比对来查找,因为比较麻烦。使用公共数据可能更高效。

1.基于NCBI HomoloGene数据库查找物种间对应的同源基因
NCBI HomoloGene数据库收集了部分已经完成基因组测序物种的同源基因数据。
数据库现包含21个物种,共44233组同源基因;

HomoloGene的数据是开放的:FTP
homologene.data存放着同源基因的对应关系

HID(HomoloGene group id) Taxonomy ID Gene ID Gene Symbol Protein gi Protein accession
3 9606 34 ACADM 160961497 NP_001104286.1
3 9598 469356 ACADM 109008502 XP_001101274.1
3 10090 11364 Acadm 6680618 NP_031408.1

每个物种都有一个对应的Taxonomy ID:

10090   Mus musculus
10116   Rattus norvegicus
28985   Kluyveromyces lactis
318829  Magnaporthe oryzae
33169   Eremothecium gossypii
3702    Arabidopsis thaliana
4530    Oryza sativa
4896    Schizosaccharomyces pombe
4932    Saccharomyces cerevisiae
5141    Neurospora crassa
6239    Caenorhabditis elegans
7165    Anopheles gambiae
7227    Drosophila melanogaster
7955    Danio rerio
8364    Xenopus (Silurana) tropicalis
9031    Gallus gallus
9544    Macaca mulatta
9598    Pan troglodytes
9606    Homo sapiens
9615    Canis lupus familiaris
9913    Bos taurus   

单个基因直接检索,如Acadm:


批量注释某个物种的基因对应另一个物种的同源基因,可以使用R包homologene,它调用的是c中build68的数据;

homologene(genes, inTax, outTax)

genes:需要查找同源基因的基因列表
inTax:输入基因所属物种
outTax:查找的同源基因属于那个物种

例子:

genelist<-c("Acadm","Eno2","Acadvl")
homologene(genelist, inTax = 10090, outTax = 9606)
  10090 9606 10090_ID 9606_ID
1  Eno2 ENO2    13807    2026
2   Mog  MOG    17441    4340

查看homologene使用的数据版本

homologeneVersion
[1] 68
  1. 基于InParanoid 8数据库查找物种间对应的同源基因
    InParanoid 8提供的下载数据是Protein ID;构建g InParanoid 8 用到的InParanoid 4.1可以获取的,InParanoid 4.1 standalone download

    这儿我们利用InParanoid 8提供的同源基因信息进行一个快速检索。

根据自己研究的物种,从Downloads中下载数据;8.0_current;需要值得注意的是,人类与老鼠的同源基因文件InParanoid.H.sapiens-M.musculus.tgz 存放于H.sapiens/ ;在M.musculus/ 不会存在InParanoid.M.musculus-H.sapiens.tgz;其它类似,所以要根据物种名首字母排序去排名靠前的物种文件夹下去找同源基因集文件。

InParanoid.H.sapiens-M.musculus.tgz 下载后解压:

这儿使用文件,格式如下:sqltable.H.sapiens-M.musculus


数据格式和前面的NCBI HomoloGene中的homologene.data差不多;使用R处理数据时,模仿了homologene包代码;

homologene.R的代码

homologene = function(genes, inTax, outTax){
    genes <- unique(genes) #remove duplicates
    out = homologene::homologeneData %>% 
        dplyr::filter(Taxonomy %in% inTax & (Gene.Symbol %in% genes | Gene.ID %in% genes)) %>%
        dplyr::select(HID,Gene.Symbol,Gene.ID)
    names(out)[2] = inTax
    names(out)[3] = paste0(inTax,'_ID')
    
    out2 = homologene::homologeneData %>%  dplyr::filter(Taxonomy %in% outTax & HID %in% out$HID) %>%
      dplyr::select(HID,Gene.Symbol,Gene.ID)
    names(out2)[2] = outTax
    names(out2)[3] = paste0(outTax,'_ID')
    
    output = merge(out,out2) %>% dplyr::select(2,4,3,5)

    # preserve order with temporary column
    output$sortBy <- factor(output[,1], levels = genes)
    output <- dplyr::arrange(output, sortBy)
    output$sortBy <- NULL
    
    return(output)
}

仿写的函数InParanoid_homo():

Hs.Mm<-read.table("sqltable.H.sapiens-M.musculus",sep = "\t",fill = T)
genes<-c("Q8WZ42","A2ASS6")
trans<-InParanoid_homo(genes,Hs.Mm)

InParanoid_homo = function(genes,database){
  colnames(database)<-c("Group","score","spieces","num","gene","Bootstrap")
  genes <- unique(genes)
  Spieces_name1<-database[1,]$spieces
  Spieces_name2<-database[2,]$spieces
  Spieces_1<-database %>% dplyr::filter(spieces %in% Spieces_name1)
  Spieces_2<-database %>% dplyr::filter(spieces %in% Spieces_name2)
  if(ANSWER <- readline(paste("Transfer",Spieces_name1,"to",Spieces_name2,"?","True/False: "))){
    genes_query<-Spieces_1 %>% dplyr::filter(gene %in% genes);head(genes_query)
    output = merge(genes_query,Spieces_2,by="Group")[,]
  }else if(ANSWER <- readline(paste("Transfer",Spieces_name2,"to",Spieces_name1,"?","True/False: "))){
    genes_query<-Spieces_2 %>% dplyr::filter(gene %in% genes);head(genes_query)
    output = merge(genes_query,Spieces_1,by="Group")[,]
  }else{
    cat("Nothing for you.")
  }
  return(output)
}

参考:
InParanoid 8: orthology analysis between 273 proteomes, mostly eukaryotic
homologene reference manual

Homologous Gene ID Conversion.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容