genoSecretor · v0.1.0

FUT2 secretor inference report

VCF · GRCh38 · two-marker · 503 samples · 2026-09-09 04:59 UTC

Disclaimer. Research use only. Genotype-inferred FUT2 secretor status does not capture all rare, weak, or otherwise atypical FUT2 alleles and must not be used for clinical decision-making, transfusion, or infection-risk counselling.
secretor39879.1%
weak-secretor00.0%
non-secretor10520.9%
Samples
503
Format
VCF
Build
GRCh38high
Method
two-marker
Markers
3/3
Phase
phased

1. Results

Sample flow

Input samples503Samples called503Phenotyped (secretor/weak/non)503Ambiguous / unknown / low0
Figure 1. Sample counts from input through phenotyping.

Secretor-status distribution

secretor398 (79.1%)weak-secretor0 (0.0%)non-secretor105 (20.9%)Unknown0 (0.0%)
Figure 2. Secretor-status counts among called samples.

Confidence

Table 1. Confidence counts for this run.

Leveln
high503
medium0
low0
none0

Diplotypes

Table 2. Diplotype counts for this run.

fut2_genotypen
Se/se234
Se/Se164
se/se105

QC summary

Table 3. Quality-control summary.

MetricValue
Ambiguous diplotypes0
Unknown phenotype0
Low confidence0
Any QC issue (unique samples)0
Missing required markers0
Method reasonrs601338 and rs1047781 available

Sample preview

Table 4. Showing 25 of 503 samples.

FIDIIDsecretor_statusfut2_genotypeconfidenceqc_statusqc_reason
HG00096HG00096secretorSe/SehighPASS—
HG00097HG00097secretorSe/SehighPASS—
HG00099HG00099secretorSe/sehighPASS—
HG00100HG00100secretorSe/sehighPASS—
HG00101HG00101secretorSe/sehighPASS—
HG00102HG00102non-secretorse/sehighPASS—
HG00103HG00103non-secretorse/sehighPASS—
HG00105HG00105secretorSe/sehighPASS—
HG00106HG00106non-secretorse/sehighPASS—
HG00107HG00107non-secretorse/sehighPASS—
HG00108HG00108non-secretorse/sehighPASS—
HG00109HG00109secretorSe/sehighPASS—
HG00110HG00110secretorSe/sehighPASS—
HG00111HG00111secretorSe/sehighPASS—
HG00112HG00112non-secretorse/sehighPASS—
HG00113HG00113non-secretorse/sehighPASS—
HG00114HG00114secretorSe/sehighPASS—
HG00115HG00115secretorSe/sehighPASS—
HG00116HG00116secretorSe/SehighPASS—
HG00117HG00117secretorSe/sehighPASS—
HG00118HG00118secretorSe/SehighPASS—
HG00119HG00119secretorSe/sehighPASS—
HG00120HG00120secretorSe/SehighPASS—
HG00121HG00121non-secretorse/sehighPASS—
HG00122HG00122secretorSe/SehighPASS—

2. Output

secretor_status is the inferred phenotype (secretor, weak-secretor, or non-secretor). unknown means the method could not assign a status. Default --phenotype-coding biochemical reports Se^w/Se^w and Se^w/se as weak-secretor. --phenotype-coding gwas recodes those diplotypes as non-secretor. fut2_genotype is the diplotype (for example Se/se) and always keeps Se^w; ambiguous means more than one diplotype was compatible with the unphased genotypes. Population percentages are informational only; samples are never rejected for frequency deviation.

Files written

Table 5. Files written for this run.

FilePath
Per-sample calls (TSV)examples/out/1kg_eur.secretor.tsv
Cohort QC metrics (TSV)examples/out/1kg_eur.qc.tsv
Plain-text summaryexamples/out/1kg_eur.summary.txt
This HTML reportdocs/examples/reports/1kg_eur.report.html

Per-sample columns (.secretor.tsv)

Table 6. Columns in the per-sample calls file (.secretor.tsv).

ColumnDescription
FIDFamily or cohort identifier from the input file
IIDIndividual sample identifier
secretor_statusInferred phenotype: secretor, weak-secretor, non-secretor, or unknown (GWAS coding recodes weak-secretor as non-secretor)
fut2_genotypeDiplotype label (for example Se/se), or ambiguous
fut2_allele1First haplotype allele after sort (Se < Se^w < se)
fut2_allele2Second haplotype allele after sort
haplotype1Haplotype call on chromosome copy 1
haplotype2Haplotype call on chromosome copy 2
methodInference method used for this sample
geno_modeGenotype interpretation mode (hardcall, dosage, probability, auto)
phase_modeWhether haplotypes used phase (phased) or enumeration (unphased)
buildGenome assembly used for marker coordinates
confidencehigh, medium, low, or none (not a calibrated probability)
qc_statusPASS, AMBIGUOUS, MISSING_MARKER, CONFLICT, or LOW_CONFIDENCE
qc_reasonFree-text explanation of QC status
possible_diplotypesCompatible diplotypes when fut2_genotype is ambiguous

3. Input

Genotype file and run settings. Only FUT2 tag SNPs are fetched; the full variant set is not loaded.

Table 7. Run settings and marker availability.

FieldValue
Input pathexamples/data/1kg/eur_hg38.vcf.gz
FormatVCF
Samples503
Build (requested → resolved)hg38 → GRCh38 (high)
Method (requested → selected)auto → two-marker
Method reasonrs601338 and rs1047781 available
Genotype modeauto
Phase (requested → resolved)auto → phased
Assume trans (unphased double-het)yes (--assume-trans)
Phenotype codingbiochemical (--phenotype-coding biochemical)
Dosage hardcall threshold0.1
Minimum genotype probability0.9
Strict methodno
Markers foundrs1047781, rs601338, rs602662
Markers missingnone

Markers in this file

Table 8. FUT2 tag SNPs located in the input file.

MarkerFoundPositionCall rateINFO
rs601338yeschr19:487034171.000—
rs1047781yeschr19:487033741.000—
rs602662yeschr19:487037281.000—

4. Methods

genoSecretor fetches only FUT2 tag SNPs (rs601338, rs1047781, rs602662) from the input file. Variants are matched by rsID, contig and position (including chr-prefixed and RefSeq contig aliases), then by allele-aware keys.

Genome build is resolved from marker coordinates, file-header metadata, and contig lengths, or taken from an explicit --build setting. Conflicting evidence is an error; the build is never guessed silently.

Per-sample genotypes are interpreted from hardcalls (GT), dosage (DS), or genotype probabilities (GP) according to the selected genotype mode. REF/ALT alleles are then mapped to biological marker states. Inference rules never operate on raw VCF alleles.

The selected method applies haplotype and diplotype rules and emits secretor_status, fut2_genotype, confidence, and QC fields.

Selected method: two-marker

Ancestry-aware 2-marker inference (rs601338 + rs1047781)

Markers: rs601338, rs1047781

Method was auto-selected: rs601338 and rs1047781 available

  • Markers: rs601338 (complete LoF se428 / W143X) and rs1047781 (weak se385 / I129F).
  • A haplotype with rs601338 LOF is se. Otherwise rs1047781 WEAK yields Se^w and FUNCTIONAL yields Se.
  • Phenotype is recessive: se/se is non-secretor; Se^w/Se^w and Se^w/se are weak-secretor under --phenotype-coding biochemical (default) or non-secretor under gwas; any Se haplotype is secretor.
  • When both markers are heterozygous and unphased, --assume-trans (default) assigns Se^w/se; --no-assume-trans leaves the call ambiguous (Se^w/se or Se/se with both variants in cis).

Diplotype to phenotype

Table 9. Diplotype to secretor phenotype.

DiplotypePhenotype
Se/Sesecretor
Se/sesecretor
Se/Se^wsecretor
Se^w/Se^wweak-secretor
Se^w/seweak-secretor
se/senon-secretor

This run used --phenotype-coding biochemical. Haplotypes always keep Se^w in fut2_genotype; only secretor_status is recoded.

Confidence

Table 10. Confidence levels (not calibrated probabilities).

LevelCriteria
highDirect functional markers; consistent genotypes; phase sufficient
mediumUnphased but uniquely inferable
lowProxy marker, uncertain dosage, or unusual marker combinations
noneInsufficient or conflicting evidence

Confidence is not a calibrated probability.

Genotype modes

Table 11. Genotype interpretation modes.

ModeBehavior
hardcallDiscrete GT (0/0, 0/1, 1/1, or phased)
dosageThreshold ALT dosage into 0/1/2 copies; otherwise uncertain
probabilityArgmax GP if max(P) meets the minimum probability threshold; otherwise uncertain
autoGP, then DS, then hardcall GT, in that order of precedence

This run used genotype mode auto and phase mode phased.

5. Citations

Software

genoSecretor: genetically determined FUT2 secretor status inference from genotype datasets. v0.1.0. Yunye He. 2026. https://github.com/cloufield/genoSecretor

Method (two-marker)

6. Limitations

Research use only. Genotype-inferred FUT2 secretor status does not capture all rare, weak, or otherwise atypical FUT2 alleles and must not be used for clinical decision-making, transfusion, or infection-risk counselling.

  • Common secretor inference uses three SNP markers and six common diplotypes under standard assumptions. Rare FUT2 nulls, fusions, and regulatory alleles may be misclassified as functional Se.
  • rs1047781 T/T is reported as weak-secretor under --phenotype-coding biochemical (default; reduced FUT2 activity). Pass --phenotype-coding gwas to recode Se^w/Se^w and Se^w/se as non-secretor (Smyth 2011; BBJ-style binary coding). The diplotype column always preserves Se^w.
  • rs602662 is an LD proxy for se428, not a functional variant. When it is used, confidence is capped at low. The proxy is not a substitute for rs1047781 in East Asian data.
  • The default --assume-trans rule (unphased double-het → Se^w/se) is an ancestral-haplotype assumption. Pass --no-assume-trans to mark those samples ambiguous.
  • Low imputation INFO, missing genotypes, and uncertain dosages propagate to low-confidence or unknown calls.
  • genoSecretor has not been validated against salivary ABH serology across ancestries. Outputs are intended for population-genetics, epidemiology, GWAS, PheWAS, and biobank research. FUT3/Lewis typing is out of scope.
  • Rare FUT2 nulls other than se428 and se385 are not modelled and may be misclassified as Se.
  • The default --assume-trans rule (compound heterozygote in trans) is an ancestral-haplotype assumption: se428 and se385 are typically mutually exclusive across continents. Pass --no-assume-trans to leave those samples ambiguous.

7. Marker determination

Secretor phenotype is inferred from biological marker states after REF/ALT normalization, not from raw VCF alleles. The selected method of this run is named below; unused markers are shown for reference.

This run used method two-marker with markers rs601338, rs1047781.

Table 12. Tag SNPs used for FUT2 secretor inference and their biological states.

MarkerHGVSStatesRole
rs601338c.461G>A (W143X / se428)FUNCTIONAL / LOFComplete null vs Se
rs1047781c.418A>T (I129F / se385)FUNCTIONAL / WEAKWeak Se^w vs Se
rs602662c.772G>A (G258S)SE_PROXY / NON_SE_PROXYLD proxy for se428 (proxy only; not functional)

Table 13. Haplotype call on each chromosome copy.

ConditionHaplotype
rs601338 = LOFse
else rs1047781 = WEAKSe^w
elseSe

se428 is epistatic to se385 on the same haplotype: a truncated FUT2 is se even if I129F is also present.

Table 14. Unphased diploid combinations of rs601338 and rs1047781 (two-marker). States are biological, not REF/ALT.

rs601338rs1047781DiplotypePhenotype
LOF / LOFanyse/senon-secretor
FUNCTIONAL / FUNCTIONALFUNCTIONAL / FUNCTIONALSe/Sesecretor
LOF / FUNCTIONALFUNCTIONAL / FUNCTIONALSe/sesecretor
FUNCTIONAL / FUNCTIONALWEAK / WEAKSe^w/Se^wweak-secretor
FUNCTIONAL / FUNCTIONALFUNCTIONAL / WEAKSe/Se^wsecretor
LOF / FUNCTIONALFUNCTIONAL / WEAKSe^w/seweak-secretor