[R-sig-genetics] Hierfstat: g-statistics permutation
Daniel Schmidt
d.schmidt at griffith.edu.au
Wed Nov 2 05:25:58 CET 2016
Hi
Using some of the permutation functions in hierfstat (test.g; test.between;
gstat.randtest), I've encountered the same issue raised in this recent post:
https://stat.ethz.ch/pipermail/r-sig-genetics/2016-August/000099.html
In my case (6 pops x 8ind; ~8000 loci), testing for significant
differentiation among pops with small numbers of loci (e.g. 20) appears
normal, but as number of loci increase >100 the permuted g-statistics
mostly converge on a single value or 0.
This appears related to missing data. Demonstrated below on small dataset.
library(hierfstat)
#Simulate 100 loci
dat.sim <-
sim.genot(size=8,nbal=2,nbloc=100,nbpop=6,N=1000,mig=0.001,mut=0.0001,f=0)
#perform permutation test with no missing data
g <- test.g(dat.sim[,-1], level = dat.sim$Pop, nperm = 100)
#are all 100 permuted g-statistics are unique? yes
length(unique(g$g.star))
#add one missing genotype per locus. Total missing data = 1%
dat.sim[,-1] <- apply(dat.sim[,-1], 2, function(x){x[sample(1:48,1)] <- NA;
x})
#how many permuted g-statistics are unique? generally less than 20.
length(unique(g$g.star))
Is there any way to use these functions to calculate p-values when missing
data is present? The functions work fine when I remove loci with missing
data, so it's not the end of the world.
Thanks for any advice.
Regards, Dan
--
Dr. Daniel J. Schmidt
Research Fellow, Australian Rivers Institute
Griffith University 170 Kessels Road, Nathan
Brisbane QLD 4111 Australia
d.schmidt at griffith.edu.au
Office: +61 7 37354165
http://www.rivers.edu.au
[[alternative HTML version deleted]]
More information about the R-sig-genetics
mailing list