# Common gene naming conventions and how to convert between them

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.

• 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. Mar 18 at 23:15
• 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 Mar 19 at 2:42

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

library(AnnotationDbi)
library(org.Mm.eg.db)

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.

• pipe it to dplyr::filter or subset and use the criterion: ALIAS != SYMBOL Mar 20 at 3:09