Synthetic cohort¶
Shared 18-sample genotypes across VCF, PGEN, and PLINK1, three genome builds, marker-notation variants, and a phased VCF.
See examples/data/expected_calls.txt. Under --method three-marker (unphased, --assume-bo default):
| Scenario | IIDs (examples) | Typical outcome |
|---|---|---|
| Determined | S01_AA … S08_OO_dup, S14_missProxy |
A×3, B×2, AB×1, O×3 |
| Double-het | S04_BO |
B (default); ambiguous with --no-assume-bo |
| Missing markers | S09–S13, S17–S18 |
NA / MISSING_MARKER |
| Undetermined | S15_conflictB, S16_conflictB_rev |
CONFLICT (6746 vs 6747) |
Formats (GRCh38)¶
#!/usr/bin/env bash
# Run genoABO on the example GRCh38 VCF cohort (rsID notation).
set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
mkdir -p "$ROOT/out"
genoabo "$ROOT/data/hg38/cohort.vcf" \
--build hg38 \
--method three-marker \
-o "$ROOT/out/vcf_hg38"
echo "Open: $ROOT/out/vcf_hg38.report.html"
#!/usr/bin/env bash
# Run genoABO on the example GRCh38 PLINK2 PGEN cohort.
set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
mkdir -p "$ROOT/out"
genoabo "$ROOT/data/hg38/cohort.pgen" \
--build hg38 \
--method three-marker \
-o "$ROOT/out/pgen_hg38"
echo "Open: $ROOT/out/pgen_hg38.report.html"
#!/usr/bin/env bash
# Run genoABO on the example GRCh38 PLINK1 BED cohort.
set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
mkdir -p "$ROOT/out"
genoabo "$ROOT/data/hg38/cohort.bed" \
--format plink1 \
--build hg38 \
--method three-marker \
-o "$ROOT/out/plink1_hg38"
echo "Open: $ROOT/out/plink1_hg38.report.html"
Builds¶
| Directory | CLI | Notes |
|---|---|---|
data/hg38/ |
--build hg38 |
Primary demo + notation VCFs |
data/hg19/ |
--build hg19 |
Same genotypes, GRCh37 coordinates |
data/chm13/ |
--build chm13 |
Same genotypes, CHM13v2 coordinates |
Marker notations (GRCh38 VCF)¶
| File | Contig | ID column |
|---|---|---|
cohort.vcf |
9 |
rsID |
cohort_chr.vcf |
chr9 |
. |
cohort_chrpos.vcf |
9 |
9:pos:REF:ALT |
cohort_nc.vcf |
NC_000009.12 |
. |
#!/usr/bin/env bash
# Run genoABO on GRCh38 VCF notation variants (chr prefix, chr:pos:alleles, NC contig).
set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
mkdir -p "$ROOT/out"
run_one() {
local label="$1"
local vcf="$2"
genoabo "$vcf" \
--build hg38 \
--method three-marker \
-o "$ROOT/out/vcf_${label}"
echo " -> $ROOT/out/vcf_${label}.report.html"
}
echo "Notation: rsid (contig 9)"
run_one "rsid" "$ROOT/data/hg38/cohort.vcf"
echo "Notation: contig chr9, ID=."
run_one "chr" "$ROOT/data/hg38/cohort_chr.vcf"
echo "Notation: ID=9:pos:REF:ALT"
run_one "chrpos" "$ROOT/data/hg38/cohort_chrpos.vcf"
echo "Notation: contig NC_000009.12, ID=."
run_one "nc" "$ROOT/data/hg38/cohort_nc.vcf"
echo "All notation demos finished."
Phased VCF¶
genoABO reads phased genotypes (0|1) from VCF and uses haplotype-aware inference when --phase auto (detects |) or --phase phased.
| File | Build | Notes |
|---|---|---|
hg38/cohort_phased.vcf |
hg38 | Same 18 samples; hets as 0|1 |
hg19/cohort_phased.vcf |
hg19 | GRCh37 coords |
chm13/cohort_phased.vcf |
chm13 | CHM13v2 coords |
hg38/cohort_phased_chr.vcf |
hg38 | Phased + contig chr9, ID . |
Determined phenotypes match the unphased cohort including S04_BO (B from cis/trans when phased). --no-assume-bo has no effect on phased calls; it only leaves unphased S04_BO ambiguous. phase_mode is phased and confidence is often high. PGEN/PLINK1 examples remain unphased (no phase in those writers).
#!/usr/bin/env bash
# Run genoABO on the phased GRCh38 VCF example (GT with |).
set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
mkdir -p "$ROOT/out"
genoabo "$ROOT/data/hg38/cohort_phased.vcf" \
--build hg38 \
--method three-marker \
--phase auto \
-o "$ROOT/out/vcf_phased_hg38"
echo "Open: $ROOT/out/vcf_phased_hg38.report.html"
Example report¶
Snapshot of PREFIX.report.html from the hg38 VCF runner (--method three-marker). Research demo, not clinical typing.