EMBL-EBI, UniProt and Structures · Subtopic 2 of 5 · 12 min
Ensembl and the Genome Browser
By the end of this lesson you will be able to open BRCA1 in the Ensembl genome browser and read what you see — the gene laid on its chromosome, its transcripts stacked beneath it, and the stable IDs that name each layer — instead of feeling lost in a wall of tracks.
Ensembl is annotation, not archive
In the previous lesson ENA stored the raw nucleotide sequence Europe received. Ensembl does something different: it is a derived resource — a curated annotation of a genome, meaning it says where the genes are on the chromosomes and what each stretch of DNA does. ENA hands you letters; Ensembl hands you a map with the features drawn on.
That map is built once per genome assembly — the agreed reference set of chromosome sequences, currently GRCh38 for human. Every coordinate Ensembl quotes is meaningless without naming the assembly it sits on: 43,044,292 means nothing until you know it is a GRCh38 coordinate, because the previous assembly, GRCh37, numbers the same base differently.
The gene → transcript → protein model
Ensembl organises a genome as a strict three-level hierarchy, and reading it is the whole skill.
A gene is a locus — a labelled region of the chromosome. BRCA1 is the gene ENSG00000012048, living on chromosome 17, minus strand, from base 43,044,292 to 43,170,245 on GRCh38.
A transcript is one specific RNA the gene can produce. One gene often makes several, through alternative splicing, so a gene holds many transcripts. BRCA1's canonical (representative) transcript is ENST00000357654, also labelled BRCA1-203.
A translation (protein) is the amino-acid product of a coding transcript. ENST00000357654 translates to ENSP00000350283, an 1,863-residue protein — the same length as the BRCA1 sequence you will meet in UniProt as P38398.
So one gene fans out to many transcripts, and each coding transcript points to exactly one protein. Hold that shape; it is why a single gene page shows a stack of transcript rows.
Biotypes: what kind of thing a record is
Every gene and transcript carries a biotype — a one-word label for its molecular class. BRCA1's gene biotype is protein_coding. But not every transcript of a coding gene is itself coding: some are flagged retained_intron or nonsense_mediated_decay (spliced forms marked for destruction). Other genes are lncRNA, miRNA, or pseudogene.
The biotype is the first filter you should apply. If you want the protein-making form of BRCA1, you keep the protein_coding transcripts and ignore the rest.
Reading a stable ID
You met the grammar of Ensembl identifiers in GI Numbers, UIDs, and Ensembl Stable IDs. Here it is anchored to our thread gene:
| ID | Level | BRCA1 value |
|---|---|---|
ENSG | gene | ENSG00000012048 |
ENST | transcript | ENST00000357654 |
ENSP | protein (translation) | ENSP00000350283 |
The prefix tells you the level; the number is permanent. A trailing .9 (ENST00000357654.9) is the version, ticking up only when the sequence changes — the same accession.version idea from Reading a Prefix. Mouse IDs read ENSMUSG…; the bare ENS you see here is the human default.
Reading the browser view of BRCA1
Search BRCA1 at ensembl.org and open the gene. The Region in detail view is a horizontal ruler: the chromosome runs left to right, and because BRCA1 is on the minus strand, its transcripts sit below the centre line, drawn right-to-left.
Each transcript is one row. Thick blocks are translated exons (coding), thin blocks are untranslated regions (UTRs), and the connecting lines are introns — the spliced-out gaps. Stack several rows and the alternative splicing becomes visible: exons that appear in one transcript and vanish in another.
Try it yourself: on the BRCA1 gene page, find the transcript table and sort by whether each is flagged as the canonical or MANE Select form. ENST00000357654 will carry both flags. That single row is the one nearly every downstream tool means when it says "the BRCA1 transcript" — the other rows are real, but they are not the agreed reference.
Fetching it without the browser
You do not have to click. Ensembl exposes a REST API that returns the same record as JSON — here with plain Python, no special library:
import requests
server = "https://rest.ensembl.org"
r = requests.get(
server + "/lookup/id/ENSG00000012048",
headers={"Content-Type": "application/json"},
)
r.raise_for_status()
gene = r.json()
print(gene["display_name"]) # BRCA1
print(gene["biotype"]) # protein_coding
print(gene["seq_region_name"], # 17
gene["strand"]) # -1
print(gene["canonical_transcript"]) # ENST00000357654.9The canonical_transcript field hints at something bigger. ENST00000357654 is not just Ensembl's pick — it is, by a deliberate cross-institute agreement called MANE, byte-for-byte identical in exons and coding sequence to RefSeq's NM_007294. Two annotation projects, on two continents, naming the same transcript as the reference for BRCA1. Whichever database you open next, that one transcript is what "the BRCA1 transcript" means.