What a Gene's Expression Fingerprint Does Not Show
6 min read · Updated October 30, 2026
Asking whether a gene is expressed in a tissue looks like a lookup, and the answer that comes back is a median over bulk samples of that tissue. For a gene expressed in a minority cell type, that number is close to meaningless — and the clearest example is a gene everybody associates with one organ.
CFTR, the lung gene, in lung
CFTR is the cystic fibrosis gene, and the disease is defined by what happens in the airway. Its GTEx median expression across 54 tissues puts pancreas first at 65.8 TPM, transverse colon at 17.3, minor salivary gland at 9.9, terminal ileum at 5.1 — and lung fifth, at 2.4 TPM.
Across all 54 tissues the median is 0.13 TPM and 41 of them sit below 0.5. So lung is genuinely above background, and it is 28-fold below pancreas in a gene whose clinical story is a lung disease.
The reason is that CFTR is expressed at high levels in a small subset of airway cells. A bulk measurement of lung is dominated by the cells that are numerous, so a gene concentrated in a rare cell type is diluted into the average. The number is correct and the inference is not.
What TPM can be compared across
TPM is transcripts per million: of every million transcript molecules in that sample, how many were this gene, normalised for the gene's length. That normalisation is what makes it comparable between genes within one sample, which counts per million are not.
Across samples it is a proportion rather than an amount. If one tissue's transcriptome is dominated by a handful of extremely abundant genes — as pancreas and liver are — every other gene's share is pushed down, so a between-tissue TPM comparison is partly a statement about the rest of the transcriptome.
And a median over bulk samples conceals the spread. Two tissues with the same median can differ completely in how consistently the gene is expressed across donors.
The annotations beside the numbers
A tissue-specificity label such as tissue enhanced, which is what CFTR carries, is a classification of the expression profile rather than an independent fact: it says the gene's distribution across tissues is uneven in a particular way, computed from the same kind of data.
Protein class annotations are more useful because they come from a different kind of evidence — CFTR's include transporters, predicted membrane proteins and FDA approved drug targets, which between them tell you more about what to expect from the protein than any single expression number.
An empty subcellular location, as CFTR has in the lookup, means no localisation data in that source for this protein, not that the protein is nowhere.
The gene model is the part with no interpretation in it
Alongside the expression numbers sits something harder: the canonical transcript's structure. CFTR's is ENST00000003084, on the plus strand, 27 exons, a 6,070 nt transcript with a coding sequence from 71 to 4,513 — 4,443 bases, which is 1,481 codons, of which the last is the stop. That leaves 1,480 amino acids, and CFTR's protein is 1,480 residues.
That arithmetic agreeing is a useful habit, and the off-by-one in it is the point: a CDS whose length is not a multiple of three, or whose codon count minus the stop does not match the annotated protein, means you are looking at a different transcript from the one you think.
Exon coordinates are the input to anything practical — designing primers that span a junction, placing a variant in an exon, choosing a region to target — and they belong to a specific transcript, so the transcript has to travel with them.
Reading a dossier without over-reading it
- A high TPM is evidence the gene is expressed there. A low TPM is weak evidence of anything, because the cell type may be rare in the sample.
- Tissue comparisons are proportions, not amounts. A gene can be equally abundant in two tissues and have very different TPMs.
- Disease associations and known drugs are aggregations of other people's evidence, and they inherit those sources' biases: a well-studied gene looks more associated with everything.
- A source that did not respond is a gap in the page, not a zero. Check for that notice before concluding something is absent.
Frequently asked questions
What does a TPM value mean?
Transcripts per million: of every million transcript molecules in the sample, how many came from this gene, normalised for the gene's length. The normalisation makes genes comparable within one sample; between samples it is a proportion, so a tissue dominated by a few very abundant genes pushes everything else down.
My gene has low expression in the tissue it matters in. Is the data wrong?
Probably not — bulk tissue expression is an average over cell types. CFTR's median in lung is 2.4 TPM against 65.8 in pancreas, because it is expressed strongly in a minority of airway cells and diluted by everything else. For a gene concentrated in a rare cell type, a bulk median understates it severely.
Can I compare TPM between two genes?
Within one sample, yes, that is what the length normalisation is for. Between tissues it is a weaker comparison, because TPM is a share of that sample's transcriptome. And comparing TPM between studies processed with different pipelines compares the pipelines as much as the genes.
What does a tissue-specificity label add?
Less than it appears to. Labels like tissue enhanced are classifications of the same expression profile you are already looking at, not independent evidence. Protein class and localisation annotations are more informative because they come from different measurements.
Related tools
Search a gene and get its exon/CDS structure, a druggability/disease/drug/trial/paper dossier, and a GTEx + Human Protein Atlas expression fingerprint — all in one page.
Cluster and visualize a gene x sample expression matrix with row/column dendrograms.
Convert gene symbols, Ensembl, Entrez GeneID, RefSeq and UniProt accessions in batch, and find cross-species orthologs.
Test a gene list for enriched GO terms and Reactome pathways with hypergeometric p-values and BH-FDR correction.
Look up a variant by rsID, chrom:pos:ref:alt, or HGVS and get its ClinVar significance, gnomAD allele frequencies, and SIFT and AlphaMissense scores in one card.