hwe.hardy | R Documentation |
Hardy-Weinberg equilibrium test using MCMC
hwe.hardy(a, alleles = 3, seed = 3000, sample = c(1000, 1000, 5000))
a |
an array containing the genotype counts, as integer. |
alleles |
number of allele at the locus, greater than or equal to 3, as integer. |
seed |
pseudo-random number seed, as integer. |
sample |
optional, parameters for MCMC containing number of chunks, size of a chunk and burn-in steps, as integer. |
Hardy-Weinberg equilibrium test by MCMC
The returned value is a list containing:
method Hardy-Weinberg equilibrium test using MCMC.
data.name name of used data if x
is given.
p.value Monte Carlo p value.
p.value.se standard error of Monte Carlo p value.
switches percentage of switches (partial, full and altogether).
Codes are commented for taking x a genotype object, as genotype to prepare
a
and alleles
on the fly.
Adapted from HARDY, testable with -Dexecutable as standalone program.
keywords htest
Sun-Wei Guo, Jing Hua Zhao, Gregor Gorjanc
https://sites.stat.washington.edu/thompson/Genepi/pangaea.shtml
guo92gap
hwe
, genetics::HWE.test
, genetics::genotype
## Not run:
# example 2 from hwe.doc:
a<-c(
3,
4, 2,
2, 2, 2,
3, 3, 2, 1,
0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 1,
0, 0, 1, 0, 0, 0, 0,
0, 0, 0, 2, 1, 0, 0, 0)
ex2 <- hwe.hardy(a=a,alleles=8)
# example using HLA
data(hla)
x <- hla[,3:4]
y <- pgc(x,handle.miss=0,with.id=1)
n.alleles <- max(x,na.rm=TRUE)
z <- vector("numeric",n.alleles*(n.alleles+1)/2)
z[y$idsave] <- y$wt
hwe.hardy(a=z,alleles=n.alleles)
# with use of class 'genotype'
# this is to be fixed
library(genetics)
hlagen <- genotype(a1=x$DQR.a1, a2=x$DQR.a2,
alleles=sort(unique(c(x$DQR.a1, x$DQR.a2))))
hwe.hardy(hlagen)
# comparison with hwe
hwe(z,data.type="count")
# to create input file for HARDY
print.tri<-function (xx,n) {
cat(n,"\n")
for(i in 1:n) {
for(j in 1:i) {
cat(xx[i,j]," ")
}
cat("\n")
}
cat("100 170 1000\n")
}
xx<-matrix(0,n.alleles,n.alleles)
xxx<-lower.tri(xx,diag=TRUE)
xx[xxx]<-z
sink("z.dat")
print.tri(xx,n.alleles)
sink()
# now call as: hwe z.dat z.out
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.