genoSecretor · v0.2.0

FUT2 secretor inference report

VCF · GRCh38 · two-marker · 14 samples · 2026-09-09 06:19 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.
secretor535.7%
weak-secretor214.3%
non-secretor321.4%
Unknown428.6%
Samples
14
Format
VCF
Build
GRCh38high
Method
two-marker
Ancestry
auto → unknown
Markers
3/3
Phase
unphased

1. Results

Sample flow

Input samples14Samples called14Phenotyped (secretor/weak/non)10Ambiguous / unknown / low4
Figure 1. Sample counts from input through phenotyping.

Secretor-status distribution

secretor5 (35.7%)weak-secretor2 (14.3%)non-secretor3 (21.4%)Unknown4 (28.6%)
Figure 2. Secretor-status counts among called samples.

Confidence

Table 1. Confidence counts for this run.

Leveln
high0
medium10
low0
none4

Diplotypes

Table 2. Diplotype counts for this run.

fut2_genotypen
unknown4
Se/Se3
se/se3
Se/Se^w1
Se/se1
Se^w/Se^w1
Se^w/se1

QC summary

Table 3. Quality-control summary.

MetricValue
Ambiguous diplotypes0
Unknown phenotype4
Low confidence0
Any QC issue (unique samples)4
Missing required markers4
Method reasonUser-selected method: two-marker
Ancestryunknown
rs601338 LOF AF0.3636
rs1047781 WEAK AF0.1818

Sample preview

Table 4. Showing 14 of 14 samples (QC-flagged samples listed first; 4 flagged).

FIDIIDsecretor_statusfut2_genotypeconfidenceqc_statusqc_reason
S09_miss428S09_miss428unknownunknownnoneMISSING_MARKERRequired marker missing
S10_miss385S10_miss385unknownunknownnoneMISSING_MARKERRequired marker missing
S11_missAllS11_missAllunknownunknownnoneMISSING_MARKERRequired marker missing
S12_proxy_onlyS12_proxy_onlyunknownunknownnoneMISSING_MARKERRequired marker missing
S01_SeSeS01_SeSesecretorSe/SemediumPASS—
S02_SeseS02_SesesecretorSe/semediumPASS—
S03_seseS03_sesenon-secretorse/semediumPASS—
S04_SeSewS04_SeSewsecretorSe/Se^wmediumPASS—
S05_SewSewS05_SewSewweak-secretorSe^w/Se^wmediumPASS—
S06_seSewS06_seSewweak-secretorSe^w/semediumPASS—
S07_SeSe_dupS07_SeSe_dupsecretorSe/SemediumPASS—
S08_sese_dupS08_sese_dupnon-secretorse/semediumPASS—
S13_missProxyS13_missProxynon-secretorse/semediumPASS—
S14_conflict_proxyS14_conflict_proxysecretorSe/SemediumPASS—

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/vcf_hg38.secretor.tsv
Cohort QC metrics (TSV)examples/out/vcf_hg38.qc.tsv
Plain-text summaryexamples/out/vcf_hg38.summary.txt
This HTML reportdocs/examples/reports/synthetic_hg38.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/hg38/cohort.vcf
FormatVCF
Samples14
Build (requested → resolved)hg38 → GRCh38 (high)
Method (requested → selected)two-marker → two-marker
Method reasonUser-selected method: two-marker
Ancestry (requested → resolved)auto → unknown
rs601338 LOF AF0.3636
rs1047781 WEAK AF0.1818
Genotype modeauto
Phase (requested → resolved)auto → unphased
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:487034170.786—
rs1047781yeschr19:487033740.786—
rs602662yeschr19:487037280.857—

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. Auto method selection is ancestry-aware (--ancestry): East Asian–like files missing rs1047781 are not typed with common.

Selected method: two-marker

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

Markers: rs601338, rs1047781

  • 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 unphased.

5. Citations

Software

genoSecretor: genetically determined FUT2 secretor status inference from genotype datasets. v0.2.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