Summary Human genetic evidence provides a strong foundation for selecting drug targets. However, consistent benchmarking of target-indication evidence against clinical trial outcomes has been hindered by proprietary data and customised pipelines. To address this, we present the Python package ct-validation, which evaluates whether target-indication pairs supported by specific evidence sources are enriched for clinical progression. This package computes relative success (RS) and odds ratios (OR) with confidence intervals across clinical phase transitions. It also supports ontology-based semantic disease matching and offers interfaces in Python, on the command line, and via the Model Context Protocol (MCP). By remapping the benchmark from Minikel et al. (2024) to the Experimental Factor Ontology (EFO), we reproduced their per-transition enrichment, with a maximum difference of only 1.4% across any transition. In a systematic 3x3 benchmark that independently varies the genetic evidence and clinical trial sources, we found that a single curated open clinical trial source reproduces the signal of the proprietary comparator (RS = 2.92 vs 2.65; 2.34 vs 2.55 without oncology). However, aggregating open clinical trial registries compresses this signal (RS = 1.52); this loss is primarily driven by the breadth of the indication data rather than the genetic evidence. Availability and implementation ct-validation is implemented in Python (version 3.11 or higher), distributed via pip, and freely available at https://github.com/gero-science/ct-validation, with support for Python, command-line, and Model Context Protocol (MCP) interfaces. Archived code: https://doi.org/10.5281/zenodo.22901497. Benchmark data: https://doi.org/10.5281/zenodo.22901451. Supplementary information Supplementary data are available at Bioinformatics online.
No takes yet. Share an insight, caveat, or question.
Kostiuk et al. (2026) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: