Skip to main content

DNA input and output library for Python and Cython. Includes reader and writer for FASTA and FASTQ files, support for samtools faidx files, and generators for solid and gapped q-grams (k-mers).

Project description

https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat https://img.shields.io/pypi/v/dinopy.svg?style=flat https://img.shields.io/bitbucket/pipelines/HenningTimm/dinopy https://img.shields.io/readthedocs/dinopy https://img.shields.io/pypi/l/dinopy https://zenodo.org/badge/DOI/10.5281/zenodo.4389307.svg

Dinopy - DNA input and output for Python and Cython

Dinopy’s goal is to make files containing biological sequences easily and efficiently accessible for Python and Cython programmers, allowing them to focus on their application instead of file-io.

#!python

import dinopy
fq_reader = dinopy.FastqReader("reads.fastq")
for sequence, name, quality in fq_reader.reads(quality_values=True):
    if some_function(quality):
        analyze(seq)

Features

  • Easy to use reader and writer for FASTA-, FASTQ-, and SAM-files.

  • Specifiable data type and representation for return values (bytes, bytearrays, strings and integers see dtype for more information).

  • Implemented in Cython for additional speedup.

  • Offers a Cython API to avoid introducing Python code into Cython projects.

  • Works directly on gzipped files.

  • Iterators for q-grams of a sequence (also allowing shaped q-grams).

  • (Reverse) complement.

  • Chromosome selection from FASTA files.

Getting Started

  • If you are new to dinopy you can get started by following the first-steps tutorial.

  • A full list of features, as well as the documentation, can be found here.

Installation

Dinopy can be installed with pip:

$ pip install dinopy

or with conda:

$ conda install -c bioconda dinopy

Additionally, dinopy can be downloaded from Bitbucket and compiled using its setup.py:

  1. Download source code from bitbucket.

  2. Install globally:

    $ python setup.py install

    or only for the current user:

    $ python setup.py install --user
  3. Use dinopy:

    $ python
    
    >>> import dinopy

Installation requirements

  • python >= 3.8

  • numpy >= 1.17

  • cython >= 3.0.0

  • C and C++ compilers, for example from build-essentials (Linux) or Xcode (OSX)

We recommend using anaconda and the bioconda channel.

$ conda config --add channels bioconda
$ conda create -n dinoenv dinopy

Platform support

Dinopy has been tested on Ubuntu, Arch Linux and OS X (Yosemite and El Capitan).

We do not officially support Windows - dinopy will probably work, but there might be problems due to different linebreak styles; we assume \n as separator but the probability to encounter files with \r\n as line-separator might be higher on Windows.

Contact

If you want to report a bug or want to suggest a new feature, feel free to do so over at bitbucket.

Email:
  • Henning Timm: name.surname <at> tu-dortmund.de

  • Till Hartmann: name.surname <at> tu-dortmund.de

License

Dinopy is Open Source and licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dinopy-3.0.0.tar.gz (744.7 kB view details)

Uploaded Source

File details

Details for the file dinopy-3.0.0.tar.gz.

File metadata

  • Download URL: dinopy-3.0.0.tar.gz
  • Upload date:
  • Size: 744.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for dinopy-3.0.0.tar.gz
Algorithm Hash digest
SHA256 9b2238c20c946a7ea34b979fec4dd182f3474958e9a03075dfbbb464e9d84028
MD5 7cdfade5d102d7903d6e02f95b268fe8
BLAKE2b-256 e3fd06182a3e21bd400c172ef973512a070968c039a0f18f41c54c933fcafef9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page