Dealing with INF values and decimal limits across PLINK 1.9 and PLINK2

11 views
Skip to first unread message

jake goodall

unread,
Jan 8, 2026, 8:57:54 AM (4 days ago) Jan 8
to plink2-users
Hello,
I want to get some feedback on something I’ve been encountering recently, primarily with PLINK/1.9. I have been running a case-control study between seasonal ecotypes of fish using the following approach:
plink --vcf $VCF -make-bed --autosome-num 26 --chr 1-26 --allow-no-sex --double-id --allow-extra-chr --out new_BFILE
plink --bfile $BFILE -assoc --adjust --autosome-num 26 --chr 1-26 --allow-no-sex --double-id --allow-extra-chr --out Seasonal_Contrast

It is known that there should be strong differences between these groups, with many positions being fixed for different alleles. My population groups are quite unbalanced also, which is not ideal (Spring(n) = 4305 versus Autumn(n) = 318). With these in mind, I am seeing many INF values replacing the regions where I would expect the peaks of differentiation to occur.
Having done some reading, it appears that I am hitting the decimal limit, which I believe is roughly 10^(-324). A small number of my INF values can be rescued by using the raw p-value outputs and adjusting them myself; however, for the majority of INF outputs, even the raw p-values are throwing INF. In this case, I go back to the raw allele count table and manually calculate the p-values in R, which seems to have less strict decimal restrictions. I have also tried having the adjusted values expressed as LOG outputs, but had the same issue: you can’t transform an already INF p-value.
So this issue affects a small set of SNPs, but ones that are very biologically important for my study. As a fallback, I can manually calculate the raw and adjusted p-values from the allele count tables, but I would prefer not to. I am wondering if you have any suggestions for analyzing this type of data and best practices for handling INF values caused by decimal limits, as I expect to encounter this issue again in the future. Has the decimal limit been expanded in PLINK2.0, or have potential flags been implemented to handle such scenarios? Any info or suggestions you could provide on best-practice approaches would be greatly appreciated.
Kind regards,
Jake

Christopher Chang

unread,
Jan 10, 2026, 5:11:08 PM (yesterday) Jan 10
to plink2-users
Yes, PLINK 2.0 handles p-values smaller than 10^{-324}.  You will want to use —glm in place of —assoc.
Reply all
Reply to author
Forward
0 new messages