Description
Kinship Decouple and Phenotype Selection (KDPS).
Description
A phenotype-aware algorithm for resolving cryptic relatedness in genetic studies. It removes related individuals based on kinship or identity-by-descent (IBD) scores while prioritizing subjects with phenotypes of interest. This approach helps maximize the retention of informative subjects, particularly for rare or valuable traits, and improves statistical power in genetic and epidemiological studies. KDPS supports both categorical and quantitative phenotypes, composite scoring, and customizable pruning strategies using a fuzziness parameter. Benchmark results show improved phenotype retention and high computational efficiency on large-scale datasets like the UK Biobank. Methods used include Manichaikul et al. (2010) <doi:10.1093/bioinformatics/btq559> for kinship estimation, Purcell et al. (2007) <doi:10.1086/519795> for IBD estimation, and Bycroft et al. (2018) <doi:10.1038/s41586-018-0579-z> for UK Biobank data reference.
README.md
KDPS 
KDPS (Kinship Decouple and Phenotype Selection) is an R package designed to resolve cryptic relatedness in genetic studies using a phenotype-aware approach. It retains subjects with relevant traits while pruning related individuals based on kinship or identity-by-descent (IBD) scores.
Features
- Prioritizes individuals with key phenotypes (categorical or numeric)
- Supports phenotype ranking and composite scoring
- Customizable pruning using
fuzziness
parameter - Efficient on biobank-scale datasets like UK Biobank
- Compatible with both kinship and phenotype file formats
Installation
You can install the development version of KDPS from GitHub with:
# install.packages("devtools")
devtools::install_github("UCSD-Salem-Lab/kdps")
Tutorial
You can view the tutorial of the KDPS function with:
vignette("kdps-intro", package = "kdps")
Example
library(kdps)
phenotype_file = system.file("extdata", "simple_pheno.txt", package = "kdps")
kinship_file = system.file("extdata", "simple_kinship.txt", package = "kdps")
kdps_results = kdps(
phenotype_file = phenotype_file,
kinship_file = kinship_file,
fuzziness = 0,
phenotype_name = "pheno2",
prioritize_high = FALSE,
prioritize_low = FALSE,
phenotype_rank = c("DISEASED1", "DISEASED2", "HEALTHY"),
fid_name = "FID",
iid_name = "IID",
fid1_name = "FID1",
iid1_name = "IID1",
fid2_name = "FID2",
iid2_name = "IID2",
kinship_name = "KINSHIP",
kinship_threshold = 0.0442,
phenotypic_naive = FALSE
)
head(kdps_results)
Documentation
- KDPS Documentations
- Getting Started with KDPS
- Function reference:
?kdps
Citation
If you use KDPS in your research, please cite:
Wanjun Gu, Jiachen Xi, Steven Cao, Rany M. Salem. Kinship Decouple and Phenotype Selection (KDPS). Manuscript in preparation
License
This package is released under the MIT License. See LICENSE
file for details.