marcelm / dnaio

Efficiently read and write sequencing data from Python
https://dnaio.readthedocs.io/
MIT License
61 stars 9 forks source link
bioinformatics python

.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.10548864.svg :target: https://doi.org/10.5281/zenodo.10548864

.. image:: https://github.com/marcelm/dnaio/workflows/CI/badge.svg :alt: GitHub Actions badge

.. image:: https://img.shields.io/pypi/v/dnaio.svg?branch=main :target: https://pypi.python.org/pypi/dnaio :alt: PyPI badge

.. image:: https://codecov.io/gh/marcelm/dnaio/branch/master/graph/badge.svg :target: https://codecov.io/gh/marcelm/dnaio :alt: Codecov badge

=========================================== dnaio processes FASTQ, FASTA and uBAM files

dnaio is a Python 3.8+ library for very efficient parsing and writing of FASTQ and also FASTA files. Since dnaio version 1.1.0, support for efficiently parsing uBAM files has been implemented. This allows reading ONT files from the dorado <https://github.com/nanoporetech/dorado>_ basecaller directly.

The code was previously part of the Cutadapt <https://cutadapt.readthedocs.io/>_ tool and has been improved significantly since it has been split out.

Example usage

The main interface is the dnaio.open <https://dnaio.readthedocs.io/en/latest/api.html>_ function::

import dnaio

with dnaio.open("reads.fastq.gz") as f:
    bp = 0
    for record in f:
        bp += len(record)
print(f"The input file contains {bp/1E6:.1f} Mbp")

For more, see the tutorial <https://dnaio.readthedocs.io/en/latest/tutorial.html> and API documentation <https://dnaio.readthedocs.io/en/latest/api.html>.

Installation

Using pip::

pip install dnaio zstandard

zstandard can be omitted if support for Zstandard (.zst) files is not required.

Features and supported file types

Limitations

Links