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

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

你可能感兴趣的:(如何快速查找物种间对应的同源基因)