Single-Variant Associations
A per-variant scan through PLINK2, in the same result shape as everything else
What it does
Tests each variant against a phenotype through PLINK2, and returns the result in the same object shape as every other association.
Continuous phenotypes get linear regression; binary phenotypes get logistic regression with a Firth fallback for sparse variants.
Variants come from your model library by default, or from a table you supply.
Note the argument name: phenotypes =, not outcomes =. This is the one place in associate where it differs.
scan <- associate$singleVariant(data, phenotypes = demented,
covariates = c(sex, age.exit, PCA))Reading the result
This result uses GWAS column names rather than the shared association vocabulary: beta instead of estimate, effect and other alleles, effect-allele frequency.
That is deliberate — it makes a scan interoperable with model variant tables and with the summary-statistics format on the generation side. The consequence is that filters and plots written against estimate do not apply here.
Chromosomes use the package's canonical coding, so joining a scan to your models or to a genome track needs no recoding.
Set the reference level for a binary phenotype; the choice flips every sign.
Firth's fallback means some rows come from a penalised fit whose confidence interval is approximate, and the result does not flag which ones.
Multiple testing here
Adjusted p-values are computed within one scan, grouped by genotype dataset, phenotype and stratum.
That is a false-discovery rate over the variants in your scan. It is not the genome-wide significance convention, and the two should never be presented as if they were the same thing.
The genomic inflation factor is reported per scan as a sanity check. Nothing is divided by it.
Quality filters
Minor-allele frequency and count floors, and a covariate variance-inflation ceiling, pass through to PLINK. A covariate that is constant within a stratum is dropped automatically, which avoids an abort you would otherwise have to diagnose.
What is not here
No survival phenotypes and no competing risks — the underlying tool covers continuous and binary outcomes only.
Where it goes next
Manhattan and QQ plots read this object directly. Pooling scans across cohorts is chapter 07.5, and one choice there is worth knowing in advance: a scan split across several genotype datasets collapses to one pooled row per variant.
Restricting a scan to the variants in your models lets a score-level finding be followed down to the variants behind it — a separate analysis from the score-level test itself.