Skip to content

Update log

0.3.0 (2026-09-09)

  • VCF DS/GP FORMAT fields are parsed from cyvcf2 2-D arrays; missing GT can still use dosage or probabilities.
  • Explicit --geno-mode dosage|probability ignores phased GT. Mixed-phase two-marker samples fall back to copy counts instead of dropping the unphased marker.
  • PLINK1 BIM A1/A2 alleles are stored for orientation-aware mapping. Auto-select with no FUT2 tags errors instead of inventing common.
  • Missing secretor_status is written as NA in TSV and HTML. Uncertain dosage/probability calls are LOW_CONFIDENCE. fut2_allele1/2 are sorted; haplotype1/2 keep chromosomal order.
  • Ferrer-Admetlla 2009 citation corrected to Mol Biol Evol (DOI 10.1093/molbev/msp108).
  • Se^w residual activity: assay-dependent COS-cell numbers (Kudo 1996, Henry 1996, Soejima and Koda 2021) with figure secretor-weak-activity.svg in Assumptions.
  • Synthetic example runner also executes PGEN and PLINK1. BGEN .sample is optional; bundled BGEN fixtures are not yet provided.
  • Haplotype docs: unmodelled leftover → Se; both markers missing on a copy is not a haplotype. --build accepts GRCh37/GRCh38/CHM13v2/hs1/T2T-CHM13v2. Missing secretor_status is NA in the workflow column list.
  • Contract tests for format detection, auto GP→DS→GT, --strict-method, TSV NA, --methods (no auto), --inspect exit 1, ancestry auto-select, and marker coordinates vs assemblies.yaml.

0.2.0 (2026-09-09)

  • --ancestry auto|eas|eur|afr|amr|unknown: auto method selection is ancestry-aware. EAS-like files (se428 AF < 0.05, n ≥ 50) missing rs1047781 no longer fall back to common; EUR-like files missing rs601338 no longer fall back to eas. --inspect prints the marker table then exits 1 when auto would refuse. Explicit --method still runs with a warning.

0.1.0 (2026-09-09)

Initial public release.

  • Infer FUT2 secretor status (secretor / weak-secretor / non-secretor) from VCF, BGEN, PGEN, and PLINK.
  • Methods: two-marker, common, eas, proxy, with auto selection.
  • Builds: GRCh37, GRCh38, T2T-CHM13v2.
  • Outputs: PREFIX.secretor.tsv, .qc.tsv, .summary.txt, .report.html.
  • --assume-trans / --no-assume-trans for unphased double heterozygotes.
  • --phenotype-coding biochemical|gwas: default biochemical labels Se^w/Se^w and Se^w/se as weak-secretor; gwas recodes them as non-secretor while keeping Se^w in fut2_genotype.
  • 1000 Genomes FUT2 examples (EAS / EUR / AFR tag-SNP slices; hg19 and hg38), including AFR hg38 30x extract, per-ancestry runners with --phase auto and EAS --phase unphased, and an --assume-trans vs phased check.
  • Example HTML run reports in the docs site (1KG EAS / EUR / AFR on hg38, and synthetic).
  • Documentation site: usage, workflow, methods, markers, assumptions, examples, and software citation.
  • Documentation SVGs: FUT2 locus, 1000 Genomes LD r², VCF-to-state, haplotype rules, diplotype → phenotype, and unphased --assume-trans.