Skip to content
Decipher the Map 日本語

4 August 2026

Normalise

When a genotype looks reversed — strand mix-ups

The literature talks about C and T; your data only shows G and A. Nothing has been misread. The two are written against different strands.

This is probably the single most common stumble for anyone working through their own data.

A paper or an explainer describes a variant as a substitution from C to T. You look at your own data and only G and A appear. The numbers match, the position matches, and only the bases refuse to line up.

Nothing has been misread. The two are simply written against different strands.

Two strands

DNA is two strands facing each other. Wherever one has an A, the other has a T. Opposite a G there is a C.

So the same change at the same position is written differently depending on which strand you read it from.

  • From one strand: C → T
  • From the strand opposite: G → A

Both describe the same event. Neither is wrong.

Why they disagree

Coordinates on the reference sequence are always written against one strand — the plus strand. The bases listed in a VCF file follow that convention.

Genes, on the other hand, are not all carried on the plus strand. Roughly half sit the other way round. And in the literature and in clinical contexts, the convention is to write variants in the orientation of the gene.

Which means that for any gene on the reverse strand, the notation in the literature and the notation in your data will always disagree.

Concretely

Two well-known cases.

MTHFR C677T (rs1801133). This gene sits on the reverse (minus) strand. The literature discusses it as a substitution from C to T; against the reference it is recorded as G to A — NC_000001.11:g.11796321G>A, Ala222Val. The same single position.

This is why people opening their raw data for the first time so often conclude that neither C nor T appears and that something must be wrong with the file.

COMT Val158Met (rs4680). This one sits on the plus strand, so the literature and the data agree: NC_000022.11:g.19963748G>A. No disagreement.

In other words it varies gene by gene, and “always flip it” is not a rule you can learn.

How to check

Confirm the orientation of the gene each time.

  1. Look the rsID up in dbSNP
  2. Check the notation on the reference sequence — the plus-strand description
  3. Check the orientation of the gene
  4. Reconcile that against how your own data is written

It looks tedious, but skipping it inverts your conclusion. For a heterozygote there is no effect; for a homozygote, “carries the variant” and “does not carry the variant” swap places. It is one of the places in the reading where being wrong costs the most.

Check yourself against frequency

To build the habit, it helps to put a rough sanity check in the way.

Look up the population frequency of the variant beforehand. If your result lands on the strikingly rare side of that frequency, a strand mix-up is the first thing to suspect.

Before celebrating an unusual result, check the notation. Getting into that order prevents a great many accidents.

The other orientation — when the reference carries the “variant”

Line the strands up and there is still one more orientation problem waiting.

The reference sequence is not the “correct” sequence. It was assembled from a small number of people, and at a substantial number of positions the allele sitting in the reference is the minority one in the population.

Take rs1799983 in NOS3. The literature calls it Glu298Asp and speaks of Asp298 as the variant. Written against GRCh38, though, it comes out as NM_000603.5:c.894T>G (p.Asp298Glu) — Asp298 is the reference side. It looks reversed against the literature, and it is not an error. HGVS notation is always written starting from the reference; that is all this is.

Two working rules follow.

First: keep settling the genotype and orienting the function as separate steps.

  • Which base, and heterozygous or homozygous, is decided against the reference definition. Read the genotype (GT) field in the VCF as it stands. Do not infer “probably heterozygous” from frequency or impression.
  • Higher or lower function is not decided by reference versus non-reference. It is decided by what the amino acid change is, whether the allele is ancestral or derived, and which side the literature calls what.

Second: do not read “differs from the reference” as “variant, therefore reduced function.”

A homozygote for the non-reference allele is frequently just carrying what most of the population carries. In particular, there are positions where the form held by almost everyone in East Asia sits on the minority side of the reference. As with the strand, there is no shortcut: check it per gene, per position.

Even when a tool handles it

Most annotation tools deal with this conversion automatically. Their output conventions differ, though, so you still need to know which convention the result in front of you was written in.

Not “it is automatic, so it is fine,” but “it is automatic, so which convention did it use?” This is a place where a person still has to look, all the way to the end.

References