[R-sig-genetics] HWE calculation question
Emmanuel Paradis
Emmanuel.Paradis at ird.fr
Fri Mar 3 09:57:32 CET 2017
Hi Felipe,
Your question is simple but this is not so easy. First you need to
convert your genind object into a loci object with as.loci. Then you can
subset this object for each population and call hw.test() on each
subset, but a problem is that in the "loci" class, each locus is stored
as a factor, and I guess since you have many populations, not all
alleles are observed in all populations. To solve this, you need to drop
the extra levels for each subset. A way to do this is (using the jaguar
data in pegas):
library(pegas)
data(jaguar)
for (i in levels(jaguar$population)) {
dat <- jaguar[jaguar$population == i, ]
for (j in attr(dat, "locicol"))
dat[, j] <- factor(dat[, j])
print(hw.test(dat))
}
Note that instead of printing the output of hw.test() you can store it
in a list since this is a data frame.
HTH
Best,
Emmanuel
Le 02/03/2017 à 17:46, Felipe Hernández a écrit :
> Hi everyone,
>
> I have used the pegas package to estimate HWE using a genind object. I got
> the results from chi-squared and exact test based on Monte Carlo for my
> whole set of loci (52 loci) across all my 29 populations. I wonder if there
> is any option to calculate HWE and get exact test Monte Carlo results, but
> for each population separately. Sorry if the question is so basic, but I
> would appreciate any helpful advice!
>
> Best,
> Felipe
>
More information about the R-sig-genetics
mailing list