Take the 2-minute tour ×
Biology Stack Exchange is a question and answer site for biology researchers, academics, and students. It's 100% free, no registration required.

I want to download a comprehensive table of protein names from uniprot.org.

More precisely, I want to generate a tab-delimited table consisting of the id (accession), entry name, and protein names "columns" from the UniProtKB database.

I want to get these three columns/fields for all 80M records in UniProtKB, and I don't want to specify all those Uniprot IDs through, e.g., a bazillion URL-encoded queries. Also, I need to do this from a host that I can access only through a text interface, which basically rules out browser-based solutions.

I just spent a couple of hours going back-and-forth over the Uniprot site's docs, and I can find nothing useful. The Perl example given there1 shows how to download full records, but downloading every full record from UniProtKB would be too slow and onerous to be considered2.

Does anyone know how to modify the Perl example (or any other way) to download only the three desired columns from UniProtKB?

1 You need to click on the phrase "Perl example" to see the code.
2 I downloaded a small test sample of 1000 full records, I found that the size of the information I actually want from those records is only 0.2% of the total. IOW, downloading the full records would take up ~500x as long as downloading only the desired information.

share|improve this question
I have never worked with perl and I'm unsure of its commands but by the sound of it you need to specify the columns using regular expressions in the download command lines (e.g. in the R language you use commands such as grep or regexpr). Hope this hint helps! –  Bez Aug 4 at 2:25
did Biomart work ? –  WYSIWYG Aug 13 at 11:01
@WYSIWYG: Thanks for the suggestion, but I had used Biomart before and found it difficult to work with, so I basically ruled it out as an option for this. I was looking for answers based directly on an API published by Uniprot.org. –  kjo Aug 13 at 14:51
BioMart is connected to UniProt (it is basically an ENSEMBL resource to connect with all EBI/EMBL databases).. If you install biomart then you can easily pass commands to download specific data. It is quite convenient; they have improvised it as well; so you can have a look at it again. –  WYSIWYG Aug 14 at 5:32

1 Answer 1

Use BioMart. It retrieves UniProt information and you can select the features that you want. These files wont be that huge. So you can download it in your PC and SFTP to wherever you are doing your analysis. A better way is to install BioMart in your workstation. See the BioMart documentation.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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