Learn R Programming

GWASTools (version 1.18.0)

exactHWE: Hardy-Weinberg Equilibrium testing

Description

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.

Usage

exactHWE(genoData, scan.exclude = NULL, geno.counts = TRUE, snpStart = NULL, snpEnd = NULL, block.size = 5000, verbose = TRUE, permute = FALSE)

Arguments

genoData
a GenotypeData object
scan.exclude
a vector of scanIDs for scans to exclude
geno.counts
if TRUE (default), genotype counts are returned in the output data.frame.
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

Value

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. pval will be NA for monomorphic SNPs (MAF=0).

Details

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.

See Also

HWExact

Examples

Run this code
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)

Run the code above in your browser using DataLab