This vignette contains additional details for the fcfdr R package.

Genomic control

A key assumption in the cFDR methodology is that the \(p\)-values are uniformly distributed under the null hypothesis of no association. Therefore, prior to applying cFDR, users should check that this assumption is satisfied by calculating the genomic inflation factor, \(\lambda\), and applying genomic control if necessary.


Finding independent subsets of SNPs

The flexible_cfdr() function requires the indices of an independent subset of the GWAS SNPs to ensure non-biased bandwidth estimation for the KDE. In practice, we use SNPs allocated a non-zero LDAK weight as our subset of independent SNPs. Instructions to generate LDAK weights can be found in this vignette. Alternatively, PLINK can also be used (see here).

The binary cFDR method does not fit a KDE and instead uses empirical CDFs. For this reason, a leave-one-chromosome-out procedure is implemented intrinsically in the binary_cfdr() function. Therefore, the binary_cfdr() function requires per-SNP chromosomes as input.


Applying cFDR iteratively

Our cFDR method can be applied iteratively, whereby the \(v\)-values from the previous iteration are used as the \(p\)-values in the next iteration. This allows additional layers of information to be incorporated into the analysis.

An example of this is shown in the type 1 diabetes vignette.