I have a list of gene name in a file


How can I map them to uniprot ID ?
P.S I tried Uniprot "ID mapping" (from-"GENEID" to-"UNIPROTKB AC"), but it couldn't map.
Please suggest me what to do.

  • $\begingroup$ I guess these are human genes? $\endgroup$
    – Chris
    Jul 3, 2014 at 9:03
  • $\begingroup$ yea your are right. $\endgroup$
    – dhvlnyk
    Jul 3, 2014 at 9:08
  • $\begingroup$ try biomart.. .. $\endgroup$
    Jul 3, 2014 at 9:08
  • $\begingroup$ Thats my recommendation, too. Biomart is the swiss army tool for this kind of convertion. $\endgroup$
    – Chris
    Jul 3, 2014 at 9:13
  • $\begingroup$ biomart did help...thnx a lot $\endgroup$
    – dhvlnyk
    Jul 3, 2014 at 9:24

2 Answers 2


ID mapping

This is called ID mapping. It used to be a headache as programmatic access was the only real way, but it is pretty trivial these days.

As mentioned in the comments, by far the most popular and easy method is to use Uniprot's list uploader for mapping. The corresponding publication can be found here. You must convert from Gene name to Uniprot KB ID

Programmatic access

The Uniprot web user interface will work for thousands of IDs, but is like to result in errors for queries exceeding 10,000 IDs. In that case, programmatic queries are probably better. I've slightly modified this from the Uniprot docs so that the IDs are queried 1 at a time to avoid any errors in exceeding query size. The python code would be:

import urllib,urllib2

list_to_convert = ["CHRNB2", "EGR2", "GCK", "KRT14", "LMNA", "FGF3", "TK2", "ABCC8"]
url = 'http://www.uniprot.org/mapping/'

print "From To"
for i in list_to_convert:
    params = {

    data = urllib.urlencode(params)
    request = urllib2.Request(url, data)
    contact = "" # Please set your email address here.
    request.add_header('User-Agent', 'Python %s' % contact)
    response = urllib2.urlopen(request)
    page = response.read(200000)
    print page.splitlines()[1] #Ignores the header line returned by uniprot

The output from this looks like:

From    To
EGR2    A0A096P554
GCK     A0A021WXA1
KRT14   A0A024R1X6
LMNA    A0A096MQV4
FGF3    A0A096NXI3
TK2     A0A096NJ58
ABCC8   A0A088S7J5

for biomart goto below link

Also there is one more converter which i found pretty useful

  • $\begingroup$ Can you explain what these links do? Just posting links as an answer is bad practice: meta.stackexchange.com/questions/8231/… $\endgroup$ Jul 6, 2014 at 15:26
  • $\begingroup$ its quite self explanatory...its basically for mapping of two identifiers.Please refer question for more details. $\endgroup$
    – dhvlnyk
    Jul 7, 2014 at 12:00
  • $\begingroup$ The biomart link is broken. Why would you choose biodb.net over Uniprot? (I'm not slamming it, I've just never heard of it and am curious if it has a major advantage) $\endgroup$
    – James
    Jun 28, 2016 at 9:57

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .