Based on the ENSEMBL GTF file, I counted the number of exons per gene as follows:

awk '$3 == "exon" {print}' Homo_sapiens.GRCh38.108.gtf | gffread -F --keep-exon-attrs --table "gene_id","transcript_id",@numexons | sort -k1,1 | datamash -sg1 max 3 > gene_lists/exons_per_gene.txt

An extract of the output is:

ENSG00000034677 11
ENSG00000034693 12
ENSG00000034713 4
ENSG00000034971 4

However, when I check the ENSG00000034713 ENSEMBL site, I count 5 exons. Why is this different?

  • $\begingroup$ Thank you all for the clarification. I was looking at the gene sequence section (ensembl.org/Homo_sapiens/Gene/…) where exons are marked in red (there are 5 red regions for the example gene), but not all transcripts will use all exons as said above. Then the number I have makes sense. Thanks again. $\endgroup$ Commented Jan 25, 2023 at 9:26

1 Answer 1


Answer from @terdon, @Ben_Ensembl, converted from comments:

Genes don't have exons, transcripts have exons. There are five transcripts for ENSG00000034713, one with one exon, two with three exons, and two with four exons. No transcripts with five exons though.

The count you retrieved from the GTF will be the number of unique exons for all transcripts of each gene (some unique to a single transcript, some common between two or more transcripts).

[please improve this answer if you can by editing it]


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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