thank you for the detailed answer. Reactome has chick database and I run itthere at the end but thereactomePA package don't have gallus gallus as organism.
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:
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
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
2 answers
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
This should be doable via Entrezdirect. Will leave this stub here.
$ esearch -db homologene -query "416811" | esummary | grep -w "Homo" -A 4
<TaxName>Homo sapiens</TaxName>
<TaxId>9606</TaxId>
<Symbol>AACS</Symbol>
<Title>acetoacetyl-CoA synthetase</Title>
<GeneID>65985</GeneID>
Log in to answer this question.
Can you post a couple of example ID?