Mouse genes not mapping to Human orthologs
1
1
Entering edit mode
komal.rathi ▴ 120
@komalrathi-9163
Last seen 14 months ago
United States

Hi,

I am using biomaRt to convert mouse gene symbols to human and vice versa.

Here is the code:

library(biomaRt)
human = useMart("ensembl", dataset = "hsapiens_gene_ensembl")
mouse = useMart("ensembl", dataset = "mmusculus_gene_ensembl")

convertMouseGeneList <- function(x, y){

  # convert mouse to human
  genesV1 = getLDS(attributes = c("mgi_symbol"), filters = "mgi_symbol", values = x , 
                   mart = mouse, attributesL = c("hgnc_symbol"), martL = human, uniqueRows=T)
  print(genesV1)

  # convert human to mouse
  genesV2 = getLDS(attributes = c("hgnc_symbol"), filters = "hgnc_symbol", values = y , 
                   mart = human, attributesL = c("mgi_symbol"), martL = mouse, uniqueRows=T)      
  print(genesV2)
}

x <- 'Rpl18' # mouse gene
y <- 'RPL18' # human gene

convertMouseGeneList(x, y)

This returns a NULL dataframe. However, on MGI, they have mentioned that the human ortholog to Rpl18 is RPL18. How can I fix this? I have also submitted an issue on github regarding this, but I wasn't sure about the response rate there.

Thanks!

biomaRt • 4.2k views
ADD COMMENT
2
Entering edit mode
@james-w-macdonald-5106
Last seen 3 hours ago
United States

I don't think it's an issue of fixing anything. Except do note that you can't return two sets of results like that. Your function by definition will only ever return the genesV1 results, and will never return the genesV2 results. As an example:

> z <- function(x,y) {return(x); return(y)}
> z("x","y")
[1] "x"

Also

> human <- useMart("ensembl", "hsapiens_gene_ensembl")
> mouse <- useMart("ensembl", "mmusculus_gene_ensembl")
> getLDS("mgi_symbol","mgi_symbol", "Rpl18", mouse, "hgnc_symbol", martL = human) 
[1] MGI.symbol  HGNC.symbol
<0 rows> (or 0-length row.names)
> getLDS("hgnc_symbol","hgnc_symbol","RPL18", human, "mgi_symbol", martL = mouse)
[1] HGNC.symbol MGI.symbol 
<0 rows> (or 0-length row.names)
## now for something that does map at the Biomart
> getLDS("hgnc_symbol","hgnc_symbol","TP53", human, "mgi_symbol", martL = mouse)
  HGNC.symbol MGI.symbol
1        TP53      Trp53
> getLDS("mgi_symbol","mgi_symbol", "Trp53", mouse, "hgnc_symbol", martL = human) 
  MGI.symbol HGNC.symbol
1      Trp53        TP53
ADD COMMENT
0
Entering edit mode

Oh yeah, that return statement was a typo. I know two returns are not possible. I'll fix that. The question is still what I have asked: why Rpl18 is not getting mapped to RPL18.

ADD REPLY
0
Entering edit mode

Just to emphasis what James has demonstrated, take a look at the ortholog sections on the Ensembl pages for RPL18 and TP53. Ensembl doesn't list an ortholog for RPL18 in rat, so your biomaRt query wont find anything - it only looks at the data that are in Ensembl. TP53 does has an ortholog listed, and the query returns that.

If you want to know why the data are differnet between MGI and Ensembl you'll need to contact the two institutions directly as there are many possible reasons.

ADD REPLY
1
Entering edit mode

Yeah I was confused because MGI reports the human ortholog but Ensembl does not. Anyway, I will report this to the respective institutions and would like to keep this open here until I get an answer from them.

ADD REPLY

Login before adding your answer.

Traffic: 803 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6