Shiny-for-Python app for exploring ClinVar distributions across CADD score thresholds
Project description
CADD Threshold APP
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.txtorenvironment.ymlfor full dependencies - Docker (optional) — a
Dockerfileis 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 UIpanel_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 wiringserver_logic.py- main server-side reactive logic and handlersdata_loader.py- helpers to load and preprocess annotation tablesui_components.py- UImodules/- plotting helpers, utilities and gene-list/panel parsing helpersbasic_plot.py,basic_bar_plot.py,compare_basic_plot.py- plotting factoriesfunctions_server_helpers.py,read_genes_from_list_or_file_functions.py- utilitiespanelapp/- 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.pyand 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
Dockerfilebuilds a minimal image running the app on port 8080.
License & contact
- See
LICENSEfor 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cadd_threshold_app-0.0.3.tar.gz.
File metadata
- Download URL: cadd_threshold_app-0.0.3.tar.gz
- Upload date:
- Size: 35.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd489f467ab1820e619f76004cc01cda18d2c77da9a9c8f6d1c09001ccf36e8e
|
|
| MD5 |
d97fdb299f90f145d560972002a5f982
|
|
| BLAKE2b-256 |
dfcda4401f5bc974c222482c335fe5b94f2e52a37d2af664121c79808c9f99f5
|
File details
Details for the file cadd_threshold_app-0.0.3-py3-none-any.whl.
File metadata
- Download URL: cadd_threshold_app-0.0.3-py3-none-any.whl
- Upload date:
- Size: 43.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2124534a93ed7f2d1eacda1142cac17b42f3173c0be8f8caf7bb61d3c830723b
|
|
| MD5 |
4793aaa5539aa32d05f18c8ac9ba2654
|
|
| BLAKE2b-256 |
43f03902168b4f0861f5f535e05fbaab9850b3007c8c49c2dbf126292a0bc0ec
|