Skip to main content

Shiny-for-Python app for exploring ClinVar distributions across CADD score thresholds

Project description

CADD Threshold APP

DOI GitHub License GitHub Release PyPI version Bioconda Version Tests GitHub Issues GitHub Pull Requests

A Shiny-for-Python web application to explore and compare distributions of ClinVar variants across different CADD PHRED-score thresholds, filter by gene lists or panels, and export per-gene/per-panel or filtered annotation summaries. The app is primarily intended for investigating the score distribution of known pathogenic and benign variants for different CADD PHRED-score thresholds.

This README explains the repository layout, how to run the app locally (pip/conda).

Highlights

  • Interactive visualizations of CADD PHRED-score distributions
  • Compare distributions across CADD/ClinVar versions and genome builds
  • Per-gene filtering (paste a list or upload a file) and exportable summaries
  • Per-panel filtering using panels from PanelApp and exportable summaries

Requirements

  • Python 3.10+ (3.12 recommended)
  • See requirements.txt or environment.yml for full dependencies
  • Docker (optional) — a Dockerfile is included for containerized runs

Installation

Data preperation

The underlying data for the CADD-ThresholdApp needs to be downloaded, if the source code is downloaded as a package from bioconda or pip. The data can be downloaded here. The data is also versionized seperately from the packages. You can also preprocess your own data for the website using this Snakemake workflow: https://github.com/kircherlab/CADD_threshold_analysis.

Data overview

  • data/ - contains preprocessed tables, panel summaries and metrics used by the app.
    • paneldata/ - CSVs summarizing panels and versions used by the UI
    • panel_metrics/ - generated metrics stored by date/version

Notes:

  • Large raw annotation files are typically not tracked in the repository. The app expects prepared/normalized CSV inputs - use https://github.com/kircherlab/CADD_threshold_analysis to regenerate CSV inputs or use the modules/panelapp/ utilities if you need to regenerate panel CSVs from PanelApp.

Pre-compiled packages

Using conda

conda create -n cadd_threshold_app -c bioconda -c conda-forge cadd-threshold-app
conda activate cadd_threshold_app
cadd-threshold-app --data </path/to/data>

Using pip

pip install cadd-threshold-app
cadd-threshold-app --data </path/to/data>

From source

git clone https://github.com/kircherlab/CADD_threshold_app.git
cd CADD_threshold_app
pip install .
cadd-threshold-app --data data

Install as package (editable, recommended for development)

pip install -e .

Run the app

Option A: run via the package entry point

This requires installing the project as a package (e.g. pip install -e .).

cadd-threshold-app --data </path/to/data>

Alternatively to the cli option --data, you can set the CADD_THRESHOLD_APP_DATA_DIR environment variable.

export CADD_THRESHOLD_APP_DATA_DIR=data
cadd-threshold-app

Further CLI options are available to configute host and port - run cadd-threshold-app --help for details.

Option B: run from the repository root. Please set the CADD_THRESHOLD_APP_DATA_DIR environment variable to point to your data directory (e.g. data/ in the repository) before running.

export CADD_THRESHOLD_APP_DATA_DIR=data
python -m shiny run cadd_threshold_app.app:app

Then open http://localhost:8080 in your browser.

Key files and modules

  • app.py - Shiny app entrypoint and UI wiring
  • server_logic.py - main server-side reactive logic and handlers
  • data_loader.py - helpers to load and preprocess annotation tables
  • ui_components.py - UI
  • modules/ - plotting helpers, utilities and gene-list/panel parsing helpers
    • basic_plot.py, basic_bar_plot.py, compare_basic_plot.py - plotting factories
    • functions_server_helpers.py, read_genes_from_list_or_file_functions.py - utilities
    • panelapp/ - scripts to interact with PanelApp (CSV generation, comparison)

Development notes

  • To extend plots: add a factory under modules/ and register it in server logic
  • To add data sources: update data_loader.py and ensure column names match the plotting/metric code paths
  • Linting/tests: None included by default. Add unit tests for critical data parsing when making larger refactors.

Docker

  • The included Dockerfile builds a minimal image running the app on port 8080.

License & contact

  • See LICENSE for licensing terms.
  • For questions about data sources, interpretation, or contributions, contact the repository maintainers or open an issue.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cadd_threshold_app-0.0.4.tar.gz (616.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cadd_threshold_app-0.0.4-py3-none-any.whl (622.2 kB view details)

Uploaded Python 3

File details

Details for the file cadd_threshold_app-0.0.4.tar.gz.

File metadata

  • Download URL: cadd_threshold_app-0.0.4.tar.gz
  • Upload date:
  • Size: 616.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cadd_threshold_app-0.0.4.tar.gz
Algorithm Hash digest
SHA256 ad63975ecaf8d06f3a2f52eb5ab6c0962488cb78df1f43b242087ddcf345bf3d
MD5 7457702a7075b811753a4dd9d9c40c76
BLAKE2b-256 dc2aaed46828be2c3ebca20e5abf73a8f7c3fa1e937f2038d9eb53794397df02

See more details on using hashes here.

File details

Details for the file cadd_threshold_app-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for cadd_threshold_app-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 29c9a6137ab3435bf3b9f1e3a91efc73ad83ad5c3949f79934125fb858a33bd5
MD5 501618c95ef062e51639b9561698d6c3
BLAKE2b-256 dfa13c6f789f565d214d42683c994b5f1b67b0ad12e015b8be28c91bf7f06a4d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page