Genomic Inflation and --fisher

211 views
Skip to first unread message

jason.r...@gmail.com

unread,
Jun 12, 2018, 12:51:34 PM6/12/18
to plink2-users
Hello,

I'm noticing unexpected behavior.  I have a BED file that produces a genomic inflation factor of 5.12803 when running the --assoc command without the fisher modifier.  When including the fisher modifier, the value is always 1.   Using the fisher modifier on a larger set of individuals, the fisher flag behaves as expected and produces a reasonable genomic inflation factor.  It would appear that there is a chi-squared value of "INF" for my smaller population.  Is there a recommended workaround for this?  I searched the plink2-users group, and it would appear that plink is supposed to handle these cases when calculating adjustments.  I've been able to spot this behavior in 1.9 b5 and b6

Best,
Jason

Christopher Chang

unread,
Jun 12, 2018, 1:11:24 PM6/12/18
to plink2-users
It's entirely possible for "--assoc fisher"'s genomic inflation factor to be 1 on a small dataset (note that if the formula yields a lower number, it's reported as 1); there is probably nothing to "work around".  If you can identify a case where plink appears to actually be miscalculating the inflation factor (e.g. well-tested R or Python code yields a different answer), I'll certainly investigate that, but it doesn't look like that's happening here.

jason.r...@gmail.com

unread,
Jun 12, 2018, 1:24:45 PM6/12/18
to plink2-users
Hi Chris,

Thanks for the quick response.   PLINK reports the following:

--adjust: Genomic inflation est. lambda (based on median chisq) = 1.
--adjust values (2007942 variants) written to gc_test.fisher.adjusted .

I figured this might have been the result of a small number of individuals, however when I examine the QQ plot, you can see there is clearly inflation that is not being detected by PLINK.  The QQ plot was generated by the qqman package in R

qq(gc_test$UNADJ)
qq(gc_test$GC)

Any thoughts would be appreciated.

Best,
Jason
Screen Shot 2018-06-12 at 1.23.45 PM.png

Christopher Chang

unread,
Jun 12, 2018, 1:33:38 PM6/12/18
to plink2-users
Okay, that's odd.  Can you send me a small dataset and command line to replicate this with?  (Hopefully ~2000 variants will be enough.)

jason.r...@gmail.com

unread,
Jun 12, 2018, 1:50:35 PM6/12/18
to plink2-users
Replying offline with dataset.  Will post follow up when resolved with solution!

Christopher Chang

unread,
Jun 13, 2018, 10:30:46 AM6/13/18
to plink2-users
It turns out that this was due to ~40% of the variants in the small dataset having no minor allele observations at all.  plink 1.9's "--assoc fisher" implementation was treating these as valid tests, since Fisher's exact test technically still yields a p-value.

In practice, this isn't what you want, so I modified "--assoc fisher"'s multiple testing corrections yesterday to throw out those variants.

(Interestingly, plink 1.07 got this right, but in the wrong way: it threw out all variants which had a Fisher's exact test p-value of 1, so its multiple testing corrections erred in the other direction.)
Reply all
Reply to author
Forward
0 new messages