====================================
Welcome to qc-utils's documentation!
====================================
.. include:: ../README.rst
:start-after: short-intro-begin
:end-before: short-intro-end
Getting Started
================
``qc-utils`` is a Python-only package `hosted on PyPI `_. The recommended installation method is `pip `_:
.. code-block:: console
$ 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
==================
.. toctree::
:maxdepth: 2
license
Indices and tables
==================
* :ref:`genindex`
* :ref:`search`