Skip to content

ABO Inference Methods

This document defines the formal decision logic implemented by genoABO. All rules operate on biological marker states after normalization — never on raw VCF REF/ALT.

Research use only. genoABO is not a clinical blood-transfusion typing tool.

For the load-to-output pipeline see workflow.md; for marker coordinates see markers.md; for limitations see assumptions.md.

Overview

genoABO maps four ABO tag SNPs to biological states, builds haplotypes (phased or unphased), resolves a diplotype, and emits an ABO phenotype with confidence and QC notes.

Method Markers Use case
common rs8176719, rs8176746 Standard 2-marker inference
three-marker + rs8176747 East Asian / extra B check
ukb rs8176719, rs8176746, rs505922 UK Biobank Field 23165 style
extended ISBT YAML (v0.1: A.01, B.01, O.01) Experimental allele matching
flowchart LR
  Markers[Tag SNPs] --> Norm[Biological states]
  Norm --> Hap[Haplotype rules]
  Hap --> Dip[Diplotype]
  Dip --> Pheno[ABO phenotype]

1. Biological marker states

Marker States Meaning
rs8176719 O_DEL, NON_O c.261delG (O) vs 261G present (A/B background)
rs8176746 A_ALLELE, B_ALLELE c.796C>A differentiator
rs8176747 A_ALLELE, B_ALLELE c.803G>C differentiator
rs505922 O_PROXY, NON_O_PROXY LD proxy for O haplotype (not functional)

rs8176719 and reference assemblies

On GRCh37/GRCh38 the reference sequence carries the O-associated allele at c.261. Therefore VCF records often show an insertion alt allele for A/B, not a deletion for O. genoABO maps all representations to O_DEL or NON_O via markers.yaml.

2. Shared inference rules

Haplotype construction (phased)

For each chromosome copy (haplotype):

  1. If rs8176719 = O_DEL → haplotype = O
  2. Else if rs8176746 = B_ALLELE (and rs8176747 = B_ALLELE when available) → haplotype = B
  3. Else if rs8176746 = A_ALLELE (and rs8176747 = A_ALLELE when available) → haplotype = A
  4. Else → haplotype = unknown

Per-haplotype ABO calling rules

Figure. One chromosome copy: O_DEL yields O; otherwise B_ALLELE yields B and A_ALLELE yields A. Under three-marker, rs8176746 / rs8176747 disagreement is qc_status=CONFLICT with confidence low; no haplotype is forced.

When rs8176746 and rs8176747 disagree under three-marker method → qc_status=CONFLICT, confidence = low, phenotype unassigned.

Diplotype → phenotype

Sort haplotypes alphabetically (A < B < O) and map:

Diplotype Phenotype
A/A A
A/O A
B/B B
B/O B
A/B AB
O/O O

Diplotype to ABO phenotype

Figure. Sorted haplotypes (A < B < O) map to phenotype: A/A and A/O → A; B/B and B/O → B; A/B → AB; O/O → O.

Unphased inference

When phase is unavailable, genoABO uses diploid copy counts of O_DEL and B_ALLELE (not an enumeration of every possible haplotype pair).

  • Homozygous O_DEL is O/O regardless of rs8176746 (both copies are O).
  • If exactly one phenotype is compatible → emit phenotype; confidence = medium
  • If both markers are heterozygous and --no-assume-bo → ABO_group is unassigned (TSV NA; HTML may show unknown), ABO_genotype = ambiguous, list possible_diplotypes
  • Other homozygous combinations resolve uniquely even without phase

Double-heterozygote resolution

When rs8176719 and rs8176746 are both heterozygous, unphased genotypes are compatible with A/O or B/O.

By default (--assume-bo, Python: assume_bo=True) genoABO applies the common-allele rule that the O deletion arose on an A background, so an unphased double heterozygote is taken as B/O rather than A/O (Yamamoto et al. 1990 [1]; Melzer et al. 2008 two-SNP recoding [2]). This is an assumption, not something read from the genotypes. It has no effect when phase is used.

Phased 1000 Genomes 30x GRCh38 (not serology): AMR/EAS/EUR double-hets were all B/O (20/20, 124/124, 41/41); AFR was 105/113 B/O and 8/113 A/O. See 1000 Genomes --assume-bo check.

--no-assume-bo (assume_bo=False) does not pick one: ABO_genotype = ambiguous and possible_diplotypes = A/O,B/O.

Unphased double heterozygote is A/O or B/O

Figure. Unphased O_DEL/NON_O × A_ALLELE/B_ALLELE is compatible with A/O or B/O. Default --assume-bo assigns B/O; --no-assume-bo leaves the call ambiguous. Phased GT does not use this assumption.

3. Methods

common

  • Markers: rs8176719, rs8176746
  • Logic: Two-marker haplotype rules above. Infers six common diplotypes: A/A, A/O, B/B, B/O, A/B, O/O.
  • Notes: Rare ABO alleles can violate these assumptions → may misclassify; document in QC.
  • Method / markers: Melzer et al. 2008 [2] — recoded ABO from the two-SNP haplotype rs8176746 + rs8176719.
  • Used in: Groot et al. 2020 [9] — UK Biobank (n=406,755); inferred ABO from rs8176719 and rs8176746.
  • Molecular basis: Yamamoto et al. 1990 [1] — 261delG (rs8176719) and A vs B substitutions (including rs8176746).

three-marker

  • Markers: rs8176719, rs8176746, rs8176747
  • Logic: Same as common, with rs8176747 as additional B confirmation.
  • Notes: If rs8176746 and rs8176747 disagree on B vs A → qc_status=CONFLICT, confidence = low, no phenotype. The two A/B SNPs are 7 bp apart and have haplotype r² = 1.000 in 1000 Genomes AFR/AMR/EAS/EUR, so disagreement is rare. See Marker LD.
  • Method / markers: Fry et al. 2008 [3] — large-scale assays for rs8176719, rs8176746, and rs8176747 (plus rs8176743, not used here).
  • Used in: Nakao et al. 2011 [4] — Japanese case–control study using the same three SNPs. Sakaue et al. 2021 [10] (preprint 2020) — BBJ, UKB, and FinnGen (ntotal ≈ 628,000); inferred ABO from rs8176719, rs8176746, and rs8176747. Höglund et al. 2021 [11] — UK Biobank; same three SNPs.

ukb

  • Markers: rs8176719, rs8176746, rs505922
  • Logic: UK Biobank Data-Field 23165 style:
  • rs8176719 deletion (O_DEL) → O haplotype on that chromosome
  • If rs8176719 missing/unavailable → rs505922 O_PROXY (T) indicates O on that chromosome (proxy, confidence capped)
  • rs8176746 B_ALLELE (T in UKB notation) → B haplotype on that chromosome
  • Otherwise → A haplotype (default non-O, non-B)
  • Output: UKB-style haplotype codes: AA, AO, BO, BB, AB, OO
  • Notes: When rs505922 is used as O proxy → confidence = low, note in qc_reason. Haplotype r² with rs8176719 in 1000 Genomes 30x hg38: EAS 0.946, EUR 0.869, AMR 0.820, AFR 0.437. See Marker LD.
  • Method / markers: UK Biobank Data-Field 23165 [5]. Field notes cite Melzer et al. 2008 [2] and Paré et al. 2008 [6].

extended (v0.1)

  • Alleles: ABO*O.01, ABO*A.01, ABO*B.01 only (from alleles.yaml)
  • Logic: Match resolved A/B/O haplotypes to haplotype_state in alleles.yaml (ABO*A.01, ABO*B.01, ABO*O.01). Per-SNP variants: maps in that file are documentation of the common alleles, not an extra matching step.
  • Notes: If no match → ABO_group = unknown. Do not force classification.
  • Method / markers: Daniels et al. 2004 [7]; ISBT Blood Group Database [8] (nomenclature evolves).
  • Molecular basis: Yamamoto et al. 1990 [1] — ABO*A.01, ABO*B.01, and ABO*O.01.

4. Auto-selection hierarchy

When --method auto (default):

  1. rs8176719 + rs8176746 + rs8176747 → three-marker
  2. rs8176719 + rs8176746 → common
  3. rs8176746 + rs505922 → ukb (proxy mode, confidence capped)
  4. Else → no auto-selection match (--method auto still proceeds as common unless --strict-method; samples without required markers get confidence = none)

With --strict-method, a user-selected method errors if its min_markers are missing (there is no fallback to a smaller marker set). With --method auto, --strict-method errors if no auto-selection entry matches.

5. Confidence levels

Level Criteria
high Direct functional markers; consistent; confident genotypes; phase sufficient
medium Unphased but uniquely inferable
low Proxy marker (rs505922); three-marker A/B SNP disagreement (CONFLICT); unusual combinations
none Missing required markers, or dosage/GP below threshold (treated as missing)

Confidence is not a calibrated probability.

6. Genotype modes

Mode Behavior
hardcall Discrete GT (0/0, 0/1, 1/1, phased)
dosage Threshold ALT dosage into copy counts; else uncertain
probability Argmax GP if max(P) ≥ threshold; else uncertain
auto GP → DS → hardcall precedence

Dosage or GP below the hardcall threshold is treated as a missing marker (confidence = none). GP and DS replace leftover phased GT.

7. References

Software. Yunye He. genoABO: genetically determined ABO blood group inference from genotype datasets. Version 0.3.1. 2026. https://github.com/cloufield/genoABO.

  1. Yamamoto F, Clausen H, White T, Marken J, Hakomori S. Molecular genetic basis of the histo-blood group ABO system. Nature. 1990;345:229–233. DOI: 10.1038/345229a0. PMID: 2333095.
  2. Melzer D, Perry JRB, Hernandez D, Corsi AM, Stevens K, Rafferty I, et al. A genome-wide association study identifies protein quantitative trait loci (pQTLs). PLoS Genet. 2008;4:e1000072. DOI: 10.1371/journal.pgen.1000072. PMID: 18464913.
  3. Fry AE, Griffiths MJ, Auburn S, Diakite M, Forton JT, Green A, et al. Common variation in the ABO glycosyltransferase is associated with susceptibility to severe Plasmodium falciparum malaria. Hum Mol Genet. 2008;17:567–576. DOI: 10.1093/hmg/ddm331. PMID: 18003641.
  4. Nakao M, Matsuo K, Hosono S, Ogata S, Ito H, Watanabe M, et al. ABO blood group alleles and the risk of pancreatic cancer in a Japanese population. Cancer Sci. 2011;102:1076–1080. DOI: 10.1111/j.1349-7006.2011.01907.x. PMID: 21306478.
  5. UK Biobank. Data-Field 23165: Blood-type haplotype. https://biobank.ndph.ox.ac.uk/showcase/field.cgi?id=23165.
  6. Paré G, Chasman DI, Kellogg M, Zee RYL, Rifai N, Badola S, Miletich JP, Ridker PM. Novel association of ABO histo-blood group antigen with soluble ICAM-1: results of a genome-wide association study of 6,578 women. PLoS Genet. 2008;4:e1000118. DOI: 10.1371/journal.pgen.1000118. PMID: 18604267.
  7. Daniels GL, Fletcher A, Garratty G, Henry S, Jørgensen J, Judd WJ, et al. Blood group terminology 2004: from the International Society of Blood Transfusion committee on terminology for red cell surface antigens. Vox Sang. 2004;87:304–316. DOI: 10.1111/j.1423-0410.2004.00564.x. PMID: 15585029.
  8. International Society of Blood Transfusion. ISBT Blood Group Database. https://blooddatabase.isbtweb.org/. Accessed 2026-09.
  9. Groot HE, Villegas Sierra LE, Said MA, Lipsic E, Karper JC, van der Harst P. Genetically determined ABO blood group and its associations with health and disease. Arterioscler Thromb Vasc Biol. 2020;40:830–838. DOI: 10.1161/ATVBAHA.119.313658. PMID: 31969017.
  10. Sakaue S, Kanai M, Tanigawa Y, et al. A cross-population atlas of genetic associations for 220 human phenotypes. Nat Genet. 2021;53:1415–1424. DOI: 10.1038/s41588-021-00931-x. PMID: 34594039.
  11. Höglund J, Karlsson T, Johansson T, Ek WE, Johansson Å. Characterization of the human ABO genotypes and their association to common inflammatory and cardiovascular diseases in the UK Biobank. Am J Hematol. 2021;96:1350–1362. DOI: 10.1002/ajh.26307. PMID: 34329492.