Hi,

I want to performe reactome analysis with `reactomePA` package but I have a chick dataset and *Gallus gallus* organism is not supported by the package. I want to compare the results obtained with those previously found in my human dataset. so I was wondering:

1. it's reasonable to convert the chick entrezID into human entrezID and then performed the analysis? I have noticed that reactome website before running the analysis convert non-human identifiers into human ones

2. if so, which package can I use to convert chick entrezID into human entrezID?

Some example IDs:

     A tibble: 16 x 3
       SYMBOL       ENSEMBL.x          ENTREZID.x
       <chr>        <chr>              <chr>     
    5_8S_rRNA    NA                 NA        
    5S_rRNA      NA                 NA        
    7SK          NA                 NA        
    A0FK60 NA                 NA        
    A0MPA7 NA                 NA        
    A1CF         ENSGALG00000003765 423680    
    A2LD1        ENSGALG00000022758 418773    
    A2M          NA                 418251    
    A2ML1        NA                 418254    
    A4GALT       ENSGALG00000014128 418223    
    A4GNT        ENSGALG00000006600 429136    
    AAAS         ENSGALG00000032843 100859661 
    AACS         ENSGALG00000002899 416811 

Thank you

Camilla

Reactome seems to support *Gallus gallus* already? - https://reactome.org/PathwayBrowser/#/SPECIES=49591
I am not sure of the validity of converting the genes to human and then running this on human-curated pathways.

For the conversion, you will likely find a programmatic way via Ensembl REST: https://rest.ensembl.org/

Otherwise, from a previous answer that I gave on Bioc ( https://support.bioconductor.org/p/132551/#132568 ), this is achievable; however, my experience tells me that overlap between *Gallus gallus* and *Homo sapiens* is not extensive.

1, load packages
----------------

    require(biomaRt)

2, search for the chicken mart
---------

    datasets <- listDatasets(useMart('ensembl'))
    datasets[grep('Chicken', datasets[,2]),]
                    dataset            description version
    71 ggallus_gene_ensembl Chicken genes (GRCg6a)  GRCg6a

3, 'connect to' the chicken and human marts
----------------

    chicken <- useMart('ensembl', dataset = 'ggallus_gene_ensembl')
    human <- useMart('ensembl', dataset = 'hsapiens_gene_ensembl')

4, create a lookup table for all chicken genes
-----------------

    table <- getBM(
      attributes = c('ensembl_gene_id','external_gene_name','entrezgene_id'),
      mart = chicken)

    head(table[table$external_gene_name != '',], 10)

          ensembl_gene_id external_gene_name entrezgene_id
    6  ENSGALG00000042750                ND1      39116926
    10 ENSGALG00000043768             MT-ND2            NA
    16 ENSGALG00000032142             MT-CO1            NA
    19 ENSGALG00000032456               COII            NA
    21 ENSGALG00000032465               ATP8      39116937
    22 ENSGALG00000041091               ATP6      39116912
    23 ENSGALG00000035334               COX3      39116913
    25 ENSGALG00000030436                ND3      39116938
    27 ENSGALG00000042478               ND4L      39116939
    28 ENSGALG00000036229                ND4      39116916




5, map some chicken Entrez gene IDs to human
----------------

    chicken_ids <- table$entrezgene_id[1:20]
    
    getLDS(
      filters = 'entrezgene_id',
      values = chicken_ids,
      mart = chicken,
      attributes = c('ensembl_gene_id','external_gene_name','entrezgene_id'),
      martL = human,
      attributesL = c('hgnc_symbol','ensembl_gene_id','entrezgene_id','gene_biotype'))

          Gene.stable.ID Gene.name NCBI.gene..formerly.Entrezgene..ID HGNC.symbol
    1 ENSGALG00000042750       ND1                           39116926      MT-ND1
      Gene.stable.ID.1 NCBI.gene..formerly.Entrezgene..ID.1      Gene.type
    1  ENSG00000198888                                 4535 protein_coding

---------------
--------

Edit: One can even create a 'master' lookup of all Chicken genes to human:

    master <- getLDS(
      filters = 'entrezgene_id',
      values = table$entrezgene_id, 
      mart = chicken, 
      attributes = c('ensembl_gene_id','external_gene_name','entrezgene_id'),
      martL = human, 
      attributesL = c('hgnc_symbol','ensembl_gene_id','entrezgene_id','gene_biotype'))
    
    head(master)
          Gene.stable.ID Gene.name NCBI.gene..formerly.Entrezgene..ID HGNC.symbol
    1 ENSGALG00000001714     PUSL1                             419419       PUSL1
    2 ENSGALG00000032413      NADK                             419403        NADK
    3 ENSGALG00000001835    SCNN1D                             428184      SCNN1D
    4 ENSGALG00000037713    FNDC10                          107054923      FNDC10
    5 ENSGALG00000001551     CCNL2                             395124       CCNL2
    6 ENSGALG00000039193      AGRN                             396538        AGRN
      Gene.stable.ID.1 NCBI.gene..formerly.Entrezgene..ID.1      Gene.type
    1  ENSG00000169972                               126789 protein_coding
    2  ENSG00000008130                                65220 protein_coding
    3  ENSG00000162572                                 6339 protein_coding
    4  ENSG00000228594                               643988 protein_coding
    5  ENSG00000221978                                81669 protein_coding
    6  ENSG00000188157                               375790 protein_coding
    
    dim(master)
    [1] 14591     7

Kevin

