exactHWE {GWASTools} | R Documentation |
This function performs exact Hardy-Weinberg Equilibrium testing (using Fisher's Test) over a selection of SNPs. It also counts genotype, calculates allele frequencies, and calculates inbreeding coefficients.
exactHWE(genoData, scan.exclude = NULL, geno.counts = TRUE, snpStart = NULL, snpEnd = NULL, block.size = 5000, verbose = TRUE, permute = FALSE)
genoData |
a |
scan.exclude |
a vector of scanIDs for scans to exclude |
geno.counts |
if |
snpStart |
index of the first SNP to analyze, defaults to first SNP |
snpEnd |
index of the last SNP to analyze, defaults to last SNP |
block.size |
number of SNPs to read in at once |
verbose |
logical for whether to print status updates |
permute |
logical indicator for whether to permute alleles before calculations |
HWE calculations are performed with the HWExact
function in the GWASExactHW package.
For the X chromosome, only female samples will be used in all calculations (since males are excluded from HWE testing on this chromosome). The X chromosome may not be included in a block with SNPs from other chromosomes. If the SNP selection includes the X chromosome, the scan annotation of genoData should include a "sex" column.
Y and M and chromsome SNPs are not permitted in the SNP selection, since the HWE test is not valid for these SNPs.
If permute=TRUE
, alleles will be randomly shuffled before the HWE calculations. Running permutation can yield the expected distribution of p-values and corresponding confidence intervals.
a data.frame with the following columns
snpID |
the snpIDs |
chr |
chromosome SNPs are on |
If geno.counts=TRUE
:
nAA |
number of AA genotypes in samples |
nAB |
number of AB genotypes in samples |
nBB |
number of BB genotypes in samples |
MAF |
minor allele frequency |
minor.allele |
which allele ("A" or "B") is the minor allele |
f |
the inbreeding coefficient |
pval |
exact Hardy-Weinberg Equilibrium (using Fisher's Test)
p-value. |
Ian Painter, Matthew P. Conomos, Stephanie Gogarten, Adrienne Stilp
library(GWASdata) data(illuminaScanADF) # run only on YRI subjects scan.exclude <- illuminaScanADF$scanID[illuminaScanADF$race != "YRI"] # create data object gdsfile <- system.file("extdata", "illumina_geno.gds", package="GWASdata") gds <- GdsGenotypeReader(gdsfile) genoData <- GenotypeData(gds, scanAnnot=illuminaScanADF) chr <- getChromosome(genoData) # autosomal SNPs auto <- range(which(is.element(chr, 1:22))) hwe <- exactHWE(genoData, scan.exclude=scan.exclude, snpStart=auto[1], snpEnd=auto[2]) # permutation perm <- exactHWE(genoData, scan.exclude=scan.exclude, snpStart=auto[1], snpEnd=auto[2], permute=TRUE) # X chromosome SNPs must be run separately since they only use females Xchr <- range(which(chr == 23)) hweX <- exactHWE(genoData, scan.exclude=scan.exclude, snpStart=Xchr[1], snpEnd=Xchr[2]) close(genoData)