Skip to content

nilesh-tawari/ChronQC

Repository files navigation

https://github.com/nilesh-tawari/ChronQC/blob/master/docs/_static/ChronQC_logo.png https://readthedocs.org/projects/chronqc/badge/?version=latest

A Quality Control Monitoring System for Clinical Next Generation Sequencing

ChronQC is a quality control (QC) tracking system for clinical implementation of next-generation sequencing (NGS). ChronQC generates time series plots for various QC metrics, which allows comparison of the current run to historical runs. ChronQC has multiple features for tracking QC data including Westgard rules for clinical validity, laboratory-defined thresholds, and historical observations within a specified period. Users can record their notes and corrective actions directly onto the plots for long-term recordkeeping.

Features

  • Suited for different assays in a clinical laboratory
  • Generates interactive time series plots for various metrics
  • Records users' notes and corrective actions onto the graphs to facilitate long-term recordkeeping
  • Provides high level of customization: works with local databases and generates different chart types
  • Leverages existing standard tools such as MultiQC

Example live ChronQC report

https://nilesh-tawari.github.io/chronqc

ChronQC workflow

ChronQC has two components: a command line interface compatible with NGS sequencing machines and a graphical user interface compatible with the clinical environment. HTML plots display metrics for each run or sample. Annotations are displayed on the right side of the plot and are stored in the chronqc.annotations.sqlite database for long-term recordkeeping.

https://github.com/nilesh-tawari/ChronQC/blob/master/docs/_static/ChronQC_workflow.png

Examples

ChronQC plots can be generated from,

  1. A custom SQLite database.
  2. The output of MultiQC.

For complete command line reference see the documentation.

For details of chart types see the documentation.

Requirement

ChronQC is implemented in Python (tested with v2.7 / v3.5 / v3.6) and runs on all common operating systems (Windows, Linux and Mac OS X).

Installation

You can install ChronQC from PyPI using pip as follows:

pip install chronqc

Alternatively, you can install from GitHub:

git clone https://github.com/nilesh-tawari/ChronQC.git
cd ChronQC
pip install -r requirements.txt
pip install --editable .

If you would like the development version instead, the command is:

pip install --upgrade --force-reinstall git+https://github.com/nilesh-tawari/ChronQC.git

Alternatively, ChronQC can also be used as Docker.

#Pull docker image
docker pull nileshtawari/chronqc:chronqc_1.0.4

#Run docker
docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix nileshtawari/chronqc:chronqc_1.0.4

#Test ChronQC using example data
cd /home/ChronQC

Then follow instructions given in getting started.

#(optional)Run docker with mounted folder
docker run -it --rm -e DISPLAY=$DISPLAY -u $(id -u) -v /tmp/.X11-unix:/tmp/.X11-unix -v /your_local_home_directory/your_data_directory:/data2 nileshtawari/chronqc:chronqc_1.0.4

Automation

Citation

ChronQC: A Quality Control Monitoring System for Clinical Next Generation Sequencing
Nilesh R. Tawari, Justine Jia Wen Seow, Dharuman Perumal, Jack L. Ow, Shimin Ang, Arun G. Devasia, Pauline C. Ng Bioinformatics, In press, https://doi.org/10.1093/bioinformatics/btx843

License

This project is licensed under the MIT License - see the LICENSE.md file for details