Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
nilesh-tawari committed Jul 17, 2017
1 parent 534f9f9 commit 6c67b5d
Show file tree
Hide file tree
Showing 11 changed files with 205 additions and 76 deletions.
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Features
* Works with output of MultiQC


ChronQC is an open-source, interactive, record-keeping QC system. ChronQC captures QC data from `MultiQC <https://github.com/ewels/MultiQC>`__. output and stores the metrics in a database. ChronQC then automatically generates interactive time-series plots for various metrics, allowing comparison of the current run to historical runs. In QC meetings, users can record their notes and corrective actions directly onto the graphs for long-term record-keeping.
ChronQC is an open-source, interactive, record-keeping QC system. ChronQC captures QC data from `MultiQC <https://github.com/ewels/MultiQC>`__ output and stores the metrics in a database. ChronQC then automatically generates interactive time-series plots for various metrics, allowing comparison of the current run to historical runs. In QC meetings, users can record their notes and corrective actions directly onto the graphs for long-term record-keeping.

Live report:
=============
Expand Down
2 changes: 1 addition & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Features
* Supports customized database for plotting
* Works with output of MultiQC

ChronQC is an open-source, interactive, record-keeping QC system. ChronQC captures QC data from `MultiQC <https://github.com/ewels/MultiQC>`_. output and stores the metrics in a database. ChronQC then automatically generates interactive time-series plots for various metrics, allowing comparison of the current run to historical runs. In QC meetings, users can record their notes and corrective actions directly onto the graphs for long-term record-keeping.
ChronQC is an open-source, interactive, record-keeping QC system. ChronQC captures QC data from `MultiQC <https://github.com/ewels/MultiQC>`_ output and stores the metrics in a database. ChronQC then automatically generates interactive time-series plots for various metrics, allowing comparison of the current run to historical runs. In QC meetings, users can record their notes and corrective actions directly onto the graphs for long-term record-keeping.


Example live ChronQC report:
Expand Down
2 changes: 1 addition & 1 deletion docs/plots/timeseries_absolute_threshold.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Example JSON entry (minimum)::
}
]

Example JSON entry (full)::
Example JSON entry (full) to plot all samples excluding HCT15 and NTC::

[
{
Expand Down
2 changes: 1 addition & 1 deletion docs/plots/timeseries_box_whisker.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Example JSON entry (minimum)::
}
]

Example JSON entry (full)::
Example JSON entry (full) to plot all samples excluding HCT15 and NTC ::

[
{
Expand Down
2 changes: 1 addition & 1 deletion docs/plots/timeseries_mean_n_stddev.rst
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Example JSON entry (minimum)::
},
]

Example JSON entry (full)::
Example JSON entry (full) to plot all samples excluding HCT15 and NTC::

[
{
Expand Down
2 changes: 1 addition & 1 deletion docs/plots/timeseries_percentage_category.rst
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Example JSON entry (minimum)::
}
]

Example JSON entry (full)::
Example JSON entry (full) to plot all samples excluding HCT15 and NTC::

[
{
Expand Down
2 changes: 1 addition & 1 deletion docs/plots/timeseries_percentage_samples_abv_threshold.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Example JSON entry (minimum)::
}
]

Example JSON entry (full)::
Example JSON entry to plot all samples exluding HCT15 and NTC (full)::

[
{
Expand Down
263 changes: 195 additions & 68 deletions docs/run_chronqc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ Run following command to generate interactive plots in html::
chronqc plot -db chronqc_custom_db.sqlite -json config.json -panel Somatic

The types of created plots and their properties are specified in "config.json" file. For details on creating the config file visit `documentation. <http://chronqc.readthedocs.io/en/latest/plots/plot_options.html>`__
Interactive html report is created under ``chronqc_output`` directory


Expand All @@ -38,6 +39,7 @@ Step 2: Create ChronQC plots::
chronqc plot -db chronqc_db/chronqc.stats.sqlite -json sample.json -panel SOMATIC -o .

The types of created plots and their properties are specified in "sample.json" file. For details on creating the config file visit `documentation. <http://chronqc.readthedocs.io/en/latest/plots/plot_options.html>`__
Interactive html report is created in ``chronqc_output`` under the ``.`` (current) directory.


Expand All @@ -61,77 +63,202 @@ Step 3: Create ChronQC plots::

chronqc plot -db chronqc_db/chronqc.stats.sqlite -json sample.json -panel Germline -o .

The types of created plots and their properties are specified in "sample.json" file. For details on creating the config file visit `documentation. <http://chronqc.readthedocs.io/en/latest/plots/plot_options.html>`__
Interactive html report is created in ``chronqc_output`` under the ``.`` (current) directory.


ChronQC config files
````````````````````

The following is an example of ChronQC config template file::

[
{
"table_name": "ChronQC_stats_data",
"samples": "all",
"chart_type": "time_series_with_mean_and_stdev",
"chart_properties": {
"chart_title": "Historical runs $y-value (with 1 year rolling mean and ± 2 standard deviation)",
"y_value": "",
"y_label": "Mean $y-value per run"
},
"include_negative_control": "False",
"include_positive_control": "False"
},
{
"table_name": "ChronQC_stats_data",
"samples": "all",
"chart_type": "time_series_with_absolute_threshold",
"chart_properties": {
"chart_title": "Historical runs $y-value",
"y_value": "",
"lower_threshold": "",
"upper_threshold": "",
"y_label": "Mean $y-value per run"
},
"include_negative_control": "False",
"include_positive_control": "False"
},
{
"table_name": "ChronQC_stats_data",
"samples": "all",
"chart_type": "time_series_with_percentage_of_samples_above_threshold",
"chart_properties": {
"chart_title": "% of samples in each run with $y-value > {threshold} ",
"y_value": "",
"threshold": "",
"y_label": "$y-value > {threshold}"
},
"include_negative_control": "False",
"include_positive_control": "False"
},
{
"table_name": "ChronQC_stats_data",
"samples": "all",
"chart_type": "time_series_with_monthly_box_whisker_plot",
"chart_properties": {
"chart_title": "Historical monthly box-and-whisker plot for $y-value",
"y_value": "",
"y_label": "$y-value per month"
},
"include_negative_control": "False",
"include_positive_control": "False"
},
{
"table_name": "ChronQC_stats_data",
"samples": "all",
"chart_type": "time_series_with_percentage_of_PASS",
"chart_properties": {
"chart_title": "% of samples in each run with $y-value = PASS",
"y_value": "",
"y_label": "% $y-value = PASS"
},
"include_negative_control": "False",
"include_positive_control": "False"
}
]
Below is an example of ChronQC config file::

[
{
"table_name": "Production_Run_Stats_Summary",
"include_samples": "all",
"exclude_samples": "HCT, NTC",
"chart_type": "time_series_with_mean_and_stdev",
"chart_properties": {
"chart_title": "% of Duplicates in On-target Sites (per run)",
"y_value": "Duplicates",
"y_label": "% of Duplicates"
}
},
{
"table_name": "Production_Run_Stats_Summary",
"include_samples": "all",
"exclude_samples": "HCT, NTC",
"chart_type": "time_series_with_mean_and_stdev",
"chart_properties": {
"chart_title": "Average Mapping Quality of On-target Sites (per run)",
"y_value": "MappingQuality",
"y_label": "MappingQuality"
}
},
{
"table_name": "Production_Run_Stats_Summary",
"include_samples": "all",
"exclude_samples": "HCT, NTC",
"chart_type": "time_series_with_absolute_threshold",
"chart_properties": {
"chart_title": "Average Base Quality Scores in On-target Sites (per run)",
"y_value": "BaseQuality",
"lower_threshold": 30,
"y_label": "Average Base Quality Score"
}
},
{
"table_name": "Production_Run_Stats_Summary",
"include_samples": "all",
"exclude_samples": "HCT, NTC",
"chart_type": "time_series_with_mean_and_stdev",
"chart_properties": {
"chart_title": "Number of Bases in Reads within On-target Sites (per run)",
"y_value": "BasesOfReads",
"y_label": "Bases Of Reads"
}
},
{
"table_name": "Production_Run_Stats_Summary",
"include_samples": "all",
"exclude_samples": "HCT, NTC",
"chart_type": "time_series_with_mean_and_stdev",
"chart_properties": {
"chart_title": "% of Bases in Reads within On-target Sites (per run)",
"y_value": "%BasesofReads",
"y_label": "% of Bases of Reads"
}
},
{
"table_name": "Production_Run_Stats_Summary",
"include_samples": "all",
"exclude_samples": "HCT, NTC",
"chart_type": "time_series_with_absolute_threshold",
"chart_properties": {
"chart_title": "Depth Median (per run)",
"y_value": "Depth",
"lower_threshold": 200,
"y_label": "Depth Median (per run)"
}
},
{
"table_name": "Production_Run_Stats_Summary",
"include_samples": "HCT",
"chart_type": "time_series_with_absolute_threshold",
"chart_properties": {
"chart_title": "Depth Median (HCT)",
"y_value": "Depth",
"lower_threshold": 200,
"y_label": "Depth Median"
}
},
{
"table_name": "Production_Run_Stats_Summary",
"include_samples": "all",
"exclude_samples": "HCT, NTC",
"chart_type": "time_series_with_mean_and_stdev",
"chart_properties": {
"chart_title": "GC Content % (per run)",
"y_value": "GCContent",
"y_label": "GC Content % (per run)"
}
},
{
"table_name": "Production_Run_Stats_Summary",
"include_samples": "all",
"exclude_samples": "HCT, NTC",
"chart_type": "time_series_with_percentage_category",
"chart_properties": {
"chart_title": "% of Samples that passed VCS QC (per run)",
"y_value": "vcs_coverage_qc",
"y_label": "% Samples in library",
"category": "PASS"
}
},
{
"table_name": "Production_Run_Stats_Summary",
"include_samples": "all",
"exclude_samples": "HCT, NTC",
"chart_type": "time_series_with_percentage_of_samples_above_threshold",
"chart_properties": {
"chart_title": "% of Samples in a run with >= 200 depth (per run)",
"y_value": "Depth",
"threshold": 200,
"y_label": "% Samples in library"
}
},
{
"table_name": "SNPs_Indels_Stats_Summary",
"include_samples": "all",
"exclude_samples": "HCT, NTC",
"chart_type": "time_series_with_box_whisker_plot",
"chart_properties": {
"chart_title": "Number of SNPs found in Samples Over Time",
"y_value": "Number",
"Type": "SNPs",
"y_label": "Number of SNPs found in each sample"
}
},
{
"table_name": "SNPs_Indels_Stats_Summary",
"include_samples": "all",
"exclude_samples": "HCT, NTC",
"chart_type": "time_series_with_box_whisker_plot",
"chart_properties": {
"chart_title": "Number of indels found in Samples Over Time",
"y_value": "Number",
"Type": "Indels",
"y_label": "Number of indels found in each sample"
}
},
{
"table_name": "Ti_Tv_Ratio_Stats",
"include_samples": "all",
"exclude_samples": "HCT, NTC",
"chart_type": "time_series_with_mean_and_stdev",
"chart_properties": {
"chart_title": "Transition to Transversion Ratio of Samples Over Time (per run)",
"y_value": "Number",
"y_label": "Ti/Tv Ratio"
}
},
{
"table_name": "Ti_Tv_Ratio_Stats",
"include_samples": "HCT",
"chart_type": "time_series_with_absolute_threshold",
"chart_properties": {
"chart_title": "Transition to Transversion Ratio of Positive Control (HCT) Over Time (per run)",
"y_value": "Number",
"y_label": "Positive Control (HCT) Ti/Tv Ratio",
"lower_threshold": 1.4,
"upper_threshold": 1.78
}
},
{
"table_name": "SNPs_Indels_Stats_Summary",
"include_samples": "HCT",
"chart_type": "time_series_with_absolute_threshold",
"chart_properties": {
"chart_title": "Numbers of SNPs in Positive Control (HCT) Over Time",
"y_value": "Number",
"lower_threshold": 6580,
"upper_threshold": 9728,
"Type": "SNPs",
"y_label": "Numbers of SNPs in Positive Control (HCT) Over Time"
}
},
{
"table_name": "SNPs_Indels_Stats_Summary",
"include_samples": "HCT",
"chart_type": "time_series_with_absolute_threshold",
"chart_properties": {
"chart_title": "Numbers of Indels in Positive Control (HCT) Over Time",
"y_value": "Number",
"lower_threshold": 1521,
"upper_threshold": 1960,
"Type": "Indels",
"y_label": "Numbers of Indels in Positive Control (HCT) Over Time"
}
}
]
2 changes: 1 addition & 1 deletion examples/custom_db_example/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ Run following command to generate interactive plots in html

`chronqc plot -db chronqc_custom_db.sqlite -json config.json -panel Somatic`


The types of created plots and their properties are specified in "config.json" file. For details on creating the config file visit [documentation] (http://chronqc.readthedocs.io/en/latest/plots/plot_options.html).
Interactive html report is created under `chronqc_output`.

1 change: 1 addition & 0 deletions examples/multiqc_example_1/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@ The default database is stored with `chronqc.stats.sqlite` name in `chronqc_db`

`chronqc plot -db chronqc_db/chronqc.stats.sqlite -json sample.json -panel SOMATIC -o .`

The types of created plots and their properties are specified in "sample.json" file. For details on creating the config file visit [documentation] (http://chronqc.readthedocs.io/en/latest/plots/plot_options.html).
Interactive html report is created in `chronqc_output` under the `.` (current) directory.

1 change: 1 addition & 0 deletions examples/multiqc_example_2/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,6 @@ The default database is stored with `chronqc.stats.sqlite` name in `chronqc_db`

`chronqc plot -db chronqc_db/chronqc.stats.sqlite -json sample.json -panel Germline -o .`

The types of created plots and their properties are specified in "sample.json" file. For details on creating the config file visit [documentation] (http://chronqc.readthedocs.io/en/latest/plots/plot_options.html).
Interactive html report is created in `chronqc_output` under the `.` (current) directory.

0 comments on commit 6c67b5d

Please sign in to comment.