Awesome
qc2tsv
Introduction
This tool converts multiple QC JSON objects into a spreadsheet (TSV/CSV), which will be useful to make a QC spread sheet organized for each experiment/replicate.
It flattens each JSON object to make a row in a spreadsheet and then splits each row into multiple rows according to split rules. This is useful to have a seperate row for a JSON object with a specific key name (e.g. each biological replicate).
This tool can directly read from various types of URIs (gs://
, s3://
, http://
, https://
and local path). To access private cloud buckets (gs://
and s3://
), make sure to authenticate yourself on your shell environment. To access private URLs, use ~/.netrc
file.
Installation
Make sure that you have python3
(>= 3.6) installed on your system. Use pip
to install qc2tsv.
$ pip install qc2tsv
Example
We will demonstrate how to make a QC spread sheet from two qc.json
files QC_SE and QC_PE, which were generated from ENCODE ChIP-seq pipeline. You can use any URIs in the command line arguments.
$ QC_SE=https://storage.googleapis.com/encode-pipeline-test-samples/encode-chip-seq-pipeline/ref_output/v1.3.0/ENCSR000DYI_subsampled_chr19_only/qc.json
$ QC_PE=https://storage.googleapis.com/encode-pipeline-test-samples/encode-chip-seq-pipeline/ref_output/v1.3.0/ENCSR936XTK_subsampled_chr19_only/qc.json
$ qc2tsv $QC_SE $QC_PE
See output.
Usage
$ qc2tsv [JSON_FILE1] [JSON_FILE2] ...
Read QC JSON file URIs from a text file TXT
.
$ qc2tsv --file [TXT]
Split rules
Define a regular expression (NAME:REGEX
) to split row into multiple rows. This is useful to have a new row for each biological replicate in genomic pipeline's QC JSON output. Make sure that backslashes in REGEX
are correctly escaped. You can also define multiple split rules.
$ qc2tsv ... --regex-split-rule "replicate:^(rep|ctl)\\d+$" --regex-split-rule "[RULE_NAME:REGEX]" ...