Converting gene names from one public database format to another This is a question from /u/apivan19 on reddit. The original post can be found here.

I have some proteomics data that was given to me with the UniProt gene identifiers in column 1. I've been trying to convert these to normal gene symbols using various programs, but it is proving to be difficult.

The Uniprot website does it fairly decently, but it is not able to convert all of them and then adds some unknown genes into my list.

For example, I will give it 5439 genes in UniProt notation, and will say "5420 of 5439 UniProt identifiers have been converted to 5450 gene symbols"... which is ridiculous.

I tried using David to change the symbols, but it returns them to me in some ridiculous, random order and there's no way I can sort... actually there might be but it'll take a second.

What are some of the easiest ways to do this? It's already very time consuming and am looking for simpler solutions
I tend to use Ensembl Biomart for such queries since there are APIs for various programming languages, e.g. biomaRt, and, maybe more interestingly, via a REST API (although it’s a pretty terrible one).

To translate identifiers from different databases, proceed as follows:


Choose database “Ensembl genes”
Choose dataset your desired oganism
Go on “Filters” › “Gene:” › “Input external reference ID list”


Select the chosen source database
Provide a list of IDs, delimited by newline

Go to “Attributes” › “Gene:” › untick “Transcript stable ID”


If Ensembl IDs are desired, leave “Gene stable ID” ticked …
Otherwise untick it; go to “External:”, tick your desired identifier format

Click “Results” at the top left. This gives a preview that can be exported into various formats; alternatively the top centre buttons “XML” and “Perl” provide the query in XML (for SOAP/REST requests) and as a (horrendously formatted) executable Perl script.