Welcome to qc-utils’s documentation!

qc-utils is a python package that provides QCMetric and QCMetricRecord classes that can be used for representing ENCODE pipeline quality control metrics.

Getting Started

qc-utils is a Python-only package hosted on PyPI. The recommended installation method is pip:

$ pip install qc-utils

Usage

The basic pattern is to create QCMetric objects, and then add related ones to a QCMetricRecord. QCMetric objects can be created directly from dicts, or from files. Supported parsers are for now for samtools flagstats and for STAR log. You can also write your own: provide a function that takes a filepath as input and returns a dict.

Examples

To create directly from dicts:

from qc_utils import QCMetric, QCMetricRecord

record = QCMetricRecord()
qc_obj = QCMetric('first_metric', {'metric1': 1, 'metric2': 2})
record.add(qc_obj)

To create from a STAR log file in /path/to/star_Log.out:

from qc_utils import QCMetric, QCMetricRecord
from qc_utils.parsers import parse_starlog
record = QCMetricRecord()
log_qc_obj = QCMetric("starlogQC", "/path/to/star_Log.out", parser=parse_starlog)
record.add(log_qc_obj)

To create from a samtools flagstats file in /path/to/flagstats.txt and write into a json-object in /path/to/flagstats.json:

import json
from qc_utils import QCMetric, QCMetricRecord
from qc_utils.parsers import parse_flagstats

record = QCMetricRecord()
flagstat_qc_obj = QCMetric("flagstat", "/path/to/flagstats.txt", parser=parse_flagstats)
record.add(flagstat_qc_obj)
with open("/path/to/flagstats.json", "w") as fp:
    json.dump(record.to_ordered_dict(), fp)

Table of Contents

Indices and tables