10
$\begingroup$

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

$\endgroup$
9
$\begingroup$

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:

  1. Choose database “Ensembl genes”
  2. Choose dataset your desired oganism
  3. Go on “Filters” › “Gene:” › “Input external reference ID list”
    1. Select the chosen source database
    2. Provide a list of IDs, delimited by newline
  4. Go to “Attributes” › “Gene:” › untick “Transcript stable ID”
    1. If Ensembl IDs are desired, leave “Gene stable ID” ticked …
    2. Otherwise untick it; go to “External:”, tick your desired identifier format
  5. 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.
$\endgroup$
  • 1
    $\begingroup$ The genenames biomart can be very useful for this - it's got a nice user interface for bulk translation, covers a wide variety of identifiers, can access synonyms or defunct names, etc. However, the service is sometimes up and down like a yoyo and some wrapper client libraries are difficult about versions of biomart. $\endgroup$ – agapow Jul 11 '17 at 11:13
  • 1
    $\begingroup$ @agapow Absolutely, agreed. :-( $\endgroup$ – Konrad Rudolph Jul 11 '17 at 13:01
8
$\begingroup$

If you're comfortable doing a little programming, check out mygene.info (web services for gene annotations of all sorts). ID translation is specifically one of the use cases addressed in the bioconductor client (see the vignette), and there is a python client as well available through pypi. The documentation for mygene can be found here.

$\endgroup$
4
$\begingroup$

You can do the same using AnnotationDbi Package from Bioconductor. Download the organism specific annotation file like org.Mm.eg.db for mouse and map current gene ids to the gene names/gene symbols.

$\endgroup$
3
$\begingroup$

My favourite gene database conversion site is db2db. You provide a list of IDs in one of a large number of different public formats, and can select one or more IDs as translation targets. It will then walk through various known paths to do the translation, picking what it determines to be the most reliable route to get the information you have asked for. Results appear in the browser as a table, but can also be exported as an Excel file, or as a tab-separated text file.

Note that the mapping of genes from one database to another is not a one-to-one mapping. It is likely the case that there will be some genes in the source database that map to multiple genes in the target database (and vice versa), and some genes that aren't present in the target database. These phenomena probably account for the "ridiculous" results that have been seen here.

$\endgroup$
3
$\begingroup$

I'm not a huge fan of the Ensembl BioMart system because I find it difficult to use. The Synergizer has a very straightforward interface and works pretty well for most lists. Note: it hasn't been updated in a while.

$\endgroup$
2
$\begingroup$

By far my preferred option for doing this manually is PICR: http://www.ebi.ac.uk/Tools/picr/

BTW it is not "ridiculous" to get different numbers of genes reported for a given set of proteins. For several reasons:

  1. Uniprot IDs can disappear, merge or be split
  2. not all uniprot and gene IDs have a 1-to-1 relationship
  3. depending on species some gene symbols can be ambiguous or synonymous.
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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