genoSecretor
genoSecretor infers genetically determined FUT2 secretor status from VCF, BGEN, PGEN, and PLINK genotype datasets.
pip install genosecretor
genosecretor biobank.pgen --out secretor
Research use only. genoSecretor is intended for population-genetics, epidemiology, GWAS, PheWAS, and biobank research. Genotype-inferred secretor status does not capture all rare or atypical FUT2 alleles and must not be used for clinical decision-making.
Quick start
genosecretor cohort.pgen --out secretor
# writes: secretor.secretor.tsv, secretor.qc.tsv, secretor.summary.txt, secretor.report.html
See docs/usage.md for the full CLI and Python API.
See docs/workflow.md for the full load-to-output pipeline.
See examples/ for VCF (unphased and phased), PGEN, and PLINK1 demos across builds and marker notations, plus 1000 Genomes FUT2 slices and an --assume-trans vs phase check.
Inspect markers without calling:
genosecretor cohort.pgen --inspect
Supported formats
| Format | Extensions | Notes |
|---|---|---|
| VCF/BCF | .vcf, .vcf.gz, .bcf |
GT, phased GT, DS, GP |
| PLINK2 | .pgen + .pvar + .psam |
Auto-locates companion files |
| PLINK1 | .bed + .bim + .fam |
--format plink1 |
| BGEN | .bgen + .sample |
Dosage/probability support |
Methods
genosecretor --methods
genosecretor --method-info two-marker
genosecretor data.pgen --method auto # default
genosecretor data.pgen --method two-marker
genosecretor data.pgen --method common
genosecretor data.pgen --method eas
genosecretor data.pgen --method proxy
| Method | Markers | Use case |
|---|---|---|
two-marker |
rs601338, rs1047781 | Ancestry-aware se428 + se385 |
common |
rs601338 | European/African complete null (W143X) |
eas |
rs1047781 | East Asian weak allele (I129F) |
proxy |
rs602662 (± rs601338) | GWAS-chip LD proxy for se428 |
Phenotypes: secretor, weak-secretor (Se^w/Se^w or Se^w/se), non-secretor (se/se). --phenotype-coding gwas recodes weak-secretor as non-secretor.
Options
--format auto|vcf|bcf|bgen|pgen|plink1
--build auto|hg19|hg38|chm13
--geno-mode auto|hardcall|dosage|probability
--phase auto|phased|unphased
--assume-trans / --no-assume-trans
--phenotype-coding biochemical|gwas
--min-genotype-prob 0.90
--dosage-hardcall-threshold 0.1
--strict-method
--inspect
--version
--report PATH.html
Full option list: docs/usage.md.
Python API
from genosecretor import SecretorCaller
caller = SecretorCaller(method="auto", build="auto")
result = caller.call("ukb.pgen")
for call in result.calls:
print(call.sample.iid, call.secretor_status, call.fut2_genotype)
Genome builds
GRCh37/hg19, GRCh38/hg38, and T2T-CHM13v2 are supported. Build auto-detection uses marker coordinates, VCF header metadata, and chromosome lengths. Conflicting evidence returns an error requiring explicit --build.
Citations
Full records are printed by genosecretor --method-info NAME and in the Citations section of each HTML run report.
- software — Yunye He. genoSecretor: genetically determined FUT2 secretor status inference from genotype datasets. Version 0.1.0. 2026. https://github.com/cloufield/genoSecretor.
- common — Kelly RJ, Rouquier S, Giorgi D, Lennon GG, Lowe JB. Sequence and expression of a candidate for the human Secretor blood group alpha(1,2)fucosyltransferase gene (FUT2). J Biol Chem. 1995;270:4640–4649. DOI: 10.1074/jbc.270.9.4640. PMID: 7876234.
- two-marker — Smyth DJ, Cooper JD, Howson JMM, et al. FUT2 nonsecretor status links type 1 diabetes susceptibility and resistance to infection. Diabetes. 2011;60:3081–3084. DOI: 10.2337/db11-0138. PMID: 22042020.
- eas — Koda Y, Soejima M, Liu Y, Kimura H. Molecular basis for secretor type α(1,2)-fucosyltransferase gene deficiency in a Japanese population. J Biol Chem. 1996;271:7410–7415. DOI: 10.1074/jbc.271.13.7410. PMID: 8631766.
- proxy — Barrett JC, Hansoul S, Nicolae DL, et al. Genome-wide association defines more than 30 distinct susceptibility loci for Crohn's disease. Nat Genet. 2008;40:955–962. DOI: 10.1038/ng.215. PMID: 18587394.
See Inference methods for used-in and molecular-basis notes.
Documentation
https://cloufield.github.io/genoSecretor/
Preview the docs site locally:
pip install -e ".[docs]"
./serve.sh # http://127.0.0.1:8000
zensical build # writes ./site/
- Usage
- Inference methods
- Marker coordinates (includes 1000 Genomes LD r²)
- Assumptions and limitations
- Examples
- Update Log
License
MIT — see LICENSE.
Metadata
Release files for genosecretor 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| genosecretor-0.1.0.tar.gz | 223.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| genosecretor-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 277.8 kB
Release files / genosecretor-0.1.0.tar.gz
| Download URL | genosecretor-0.1.0.tar.gz |
|---|---|
| Size | 223.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
84948cb240f4bdf7c9ac4fc2ff130325b27f151daa2b8d27ba4be715c0305306
|
|
BLAKE2b-256 checksum How to use checksums |
54bc621dde6a44d8e95dfac75c9daabfb7417d23091c56d8fbdb398878c0ac58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.0
|
Release files / genosecretor-0.1.0-py3-none-any.whl
| Download URL | genosecretor-0.1.0-py3-none-any.whl |
|---|---|
| Size | 54.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a047a8ec4d4f4bdedbcff57b083b87447f1c981b9da91d504d33d3a389e75b7d
|
|
BLAKE2b-256 checksum How to use checksums |
fa87af62f83617b1922cae2892c77779b14ef7568311def9ebad411b14f351dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.0
|