Step 1: split

Split a VCF (or raw genotype/ancestry matrices) by local ancestry. ancestry_split() and the K-population split_*_multi() primitives work for any number of populations, not just two.

ancestry_split()

Split a phased VCF by local ancestry (Step 1)

ancestry_split_dosage()

Run ancestry splitting pipeline

ancestry_split_phased()

Run phased ancestry splitting pipeline

split_diploid()

Split genotype matrix by ancestry

split_diploid_multi()

Split unphased genotype matrix by ancestry for K populations

split_haplotype()

Split phased haplotypes by ancestry

split_haplotype_multi()

Split phased haplotypes into K population-specific dosage matrices

read_bed_file()

Read a PLINK .bed file of BED-encoded local ancestry calls

Step 2: write GDS

Materialize a Step 1 split result to per-population GDS files.

write_ancestry_gds()

Write all populations of an ancestry split to GDS files (Step 2)

write_dosage_gds()

Write an ancestry-specific dosage matrix to a SeqArray GDS file

Step 3: associate

Run GMMAT::SMMAT() across ancestry-split GDS files and Cauchy-combine the per-gene p-values.

ancestry_smmat()

Run ancestry-stratified SMMAT + Cauchy combination (Step 3)

cauchy_combine()

Cauchy combination test for multiple p-values

Package

lantern lantern-package

lantern: Ancestry-Specific Rare Variant Analysis