I have two questions, one is a direct question about some RNA expression data. The other is more broad, but motivated by the first. I have downloaded an expression set for a class project and I am unfamiliar with the naming convention, I recognize entrez ID but not this one.

    > rownames(Rao)[1:10]
 [1] "0610007P14Rik" "0610009B22Rik" "0610009D07Rik" "0610009L18Rik" "0610009O20Rik" "0610010B08Rik" "0610010F05Rik"
 [8] "0610010K14Rik" "0610011F06Rik" "0610012G03Rik"

So my first question is what is this gene naming convention. The second is what are many other conventions I should recognize and what tools can I use for converting between them? Lastly what kind of errors may crop up when I do that and how can I check for mismappings or non-unique mappings?

I am primarily interested in R but methods in python would also be appreciated! Its always good to have more tools.

  • 1
    $\begingroup$ These look like Mouse Gene identifiiers. You might be able to use org.Mm.eg.db to map them to aliases. There should be a way to use biomaRt as well, but I don't know the speciifics - maybe a mus musculus gene symbol mart is available. $\endgroup$
    – Ram RS
    Mar 18, 2021 at 23:15
  • $\begingroup$ Thanks for reminding me to check biomaRt. I think it has what I need, just reading a blog post about it now. yiweiniu.github.io/blog/2018/09/Biological-ID-Conversion $\endgroup$ Mar 19, 2021 at 2:42

1 Answer 1


Biologists are familiar with SYMBOL (for good reasons).

Bioinformaticians like ENTREZID ENSEMBL REFSEQ GENBANK etc, I'm definitely missing some here.

You don't need to know these by heart, just know that databases don't map 1:1.

I've worked with mouse RNAseq data before, so I agree with user::RamRS comment that it looks like a mouse gene. What type of identifier is it? I had no idea.

You can find this out at NCBI::GENE, by querying for, let's say Rao[1] "0610007P14Rik". (https://www.ncbi.nlm.nih.gov/gene/?term=0610007P14Rik)

NCBI::GENE tells you the SYMBOL::Erg28, ENTREZID::8520, and in the far right a column called ALIAS::0610007P14Rik.

Now that you know your identifier type (ALIAS), you can map between databases in R. There are many packages to do this. Someone mentioned biomart in the comment.

I use AnnotationDbi


Rao <- c("0610007P14Rik", "0610009B22Rik", "0610009D07Rik", "0610009L18Rik", "0610009O20Rik", "0610010B08Rik", "0610010F05Rik", "0610010K14Rik", "0610011F06Rik", "0610012G03Rik")

#use the function select to retrieve the column type "SYMBOL" with keys "RAO".
#"RAO" is a keytype of "ALIAS". And I want to search in the mice database "org.Mm.eg.db"

AnnotationDbi::select(x = org.Mm.eg.db,
+                       keys = Rao,
+                       keytype = "ALIAS",
+                       columns = "SYMBOL")
'select()' returned 1:1 mapping between keys and columns
           ALIAS        SYMBOL
1  0610007P14Rik         Erg28
2  0610009B22Rik 0610009B22Rik
3  0610009D07Rik         Sf3b6
4  0610009L18Rik 0610009L18Rik
5  0610009O20Rik         Dele1
6  0610010B08Rik        Gm2026
7  0610010F05Rik 0610010F05Rik
8  0610010K14Rik 0610010K14Rik
9  0610011F06Rik       Mettl26
10 0610012G03Rik 0610012G03Rik

In the cases when they don't map 1:1, the function will throw a warning, and you can access it by warnings(). It is rarely important though.

Hope this answers the question.

  • $\begingroup$ Thanks that does help quite a bit. Is there a way to auto remove all the mismatches? $\endgroup$ Mar 19, 2021 at 2:40
  • $\begingroup$ Like with some kind of binary vector so i can filter out the mismatches? $\endgroup$ Mar 19, 2021 at 2:40
  • $\begingroup$ pipe it to dplyr::filter or subset and use the criterion: ALIAS != SYMBOL $\endgroup$
    – Ram RS
    Mar 20, 2021 at 3:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.