EMBL-EBI, UniProt and Structures

EMBL-EBI, UniProt and Structures · Subtopic 3 of 5 · 12 min

UniProt: Swiss-Prot vs TrEMBL

By the end of this lesson you will be able to read a UniProt entry the way a curator does — knowing at a glance whether a claim about a protein was checked by a human or generated by a machine, and why that one fact should change how much you trust every field on the page.

Two sections, one knowledgebase

UniProt (the Universal Protein Resource) is the world's central knowledgebase for protein sequence and function. In Primary vs Derived Databases you met the split between an archive that stores what was submitted and a knowledgebase that is rewritten as understanding improves. UniProt is the definitive example of the second kind. Its core, UniProtKB (the UniProt Knowledgebase), is where our thread protein BRCA1 lives under the accession P38398, entry name BRCA1_HUMAN.

The single most important thing to understand about UniProtKB is that it is not one uniform pile of entries. It is split into two sections that differ enormously in quality, and every entry belongs to exactly one of them.

Swiss-Prot is the manually reviewed section. A human curator has read the primary literature, resolved contradictions between papers, and written the entry by hand. Every functional claim traces to a citation. TrEMBL (Translated EMBL) is the automatically annotated, unreviewed section. When a new coding sequence is deposited in the nucleotide archives, it is translated and enters TrEMBL automatically — no human has looked at it. Annotations there come from computational rules, not curators.

Swiss-ProtTrEMBL
Curationmanual, by an expertautomatic, by rules
Literatureread and citednot read
Approx. size~570,000 entries~250 million entries
Trust for annotationhighprovisional
BRCA1 humanP38398 (here)

Notice the asymmetry: TrEMBL is roughly four hundred times larger, because machines translate faster than curators can review. P38398 is a Swiss-Prot entry — its function statements have been vouched for by a person.

Try it yourself: open uniprot.org and search BRCA1 human. The top hit P38398 shows a gold "reviewed" star; that is Swiss-Prot. Then filter the same search to unreviewed entries — you will see many TrEMBL fragments for BRCA1 from other primates and cell lines. Same protein family, wildly different confidence. Never quote a function from a TrEMBL entry without checking whether a Swiss-Prot equivalent exists.

Anatomy of an entry

A UniProtKB entry is organised into sections that answer different questions. Reading P38398 top to bottom:

  • Function — plain-language prose on what the protein does. For BRCA1: maintenance of genome stability through DNA double-strand break repair. Each sentence carries an evidence tag pointing at its source.
  • Names & Taxonomy — the gene name BRCA1, the organism Homo sapiens, and the HGNC identifier HGNC:1100 you met earlier in the course.
  • Features — positional annotations mapped onto the sequence: domains, active sites, modified residues, and known variants. BRCA1's C-terminal BRCT domains and its N-terminal RING domain appear here as feature ranges.
  • Cross-references (db_xref) — links out to RefSeq (NP_009225), Ensembl (ENSP00000350283), PDB, InterPro, and dozens more. Each entry is a pointer, not a copy: UniProt does not restate what those other databases already curate, it just tells you where to look.
  • Sequence — the canonical amino-acid sequence, plus described isoforms.

The features and cross-references are what make UniProt a router, not a dead end. From P38398 you can reach BRCA1's 3D structures — its BRCT region was solved as PDB 1JNX, and its RING-domain heterodimer with BARD1 as 1JM7.

The accession is stable; the sequence can move

P38398 is a stable accession — a permanent ID for this record that will not change. But the entry is a living knowledgebase page, re-curated as new papers land. UniProt handles this with two version counters, echoing the versioning idea from Versioning: accession.version and Why Records Change: an entry version that ticks up when any annotation changes, and a separate sequence version that ticks only when the amino-acid sequence itself is revised. Cite the accession for identity; note the version when reproducibility matters.

The formats it serves

UniProt does not lock its data inside a web page. Every entry can be retrieved in several machine-readable formats, and knowing which to ask for saves you a lot of parsing.

FormatGood for
FASTAthe raw sequence, for BLAST or alignment
TSVtabular columns for a spreadsheet or dataframe
GFFfeature ranges (domains, sites) as coordinates
XML / JSONthe complete entry, every field, for scripting

You can pull any of these directly by accession. A quick FASTA fetch (using the requests library alongside the Biopython toolkit from our Biopython install guide):

python
import requests
r = requests.get("https://rest.uniprot.org/uniprotkb/P38398.fasta")
print(r.text[:70])   # >sp|P38398|BRCA1_HUMAN ...

The sp in that header is the tell: it marks a Swiss-Prot record. A TrEMBL record would begin >tr instead — the reviewed-versus-unreviewed distinction, encoded right in the first two characters. Scripted access like this respects a fair-use rate limit on the REST API — batch your accessions instead of hammering the endpoint one request at a time — and it is what makes the knowledgebase usable at pipeline scale, not just for one-off browser lookups.