Skip to main content

A lightweight library for working with PAF (Pairwise mApping Format) files

Project description

pafpy

A lightweight library for working with PAF (Pairwise mApping Format) files.

GitHub Workflow Status codecov PyPI PyPI - Python Version License Code style: black

Documentation: https://pafpy.xyz

Table of Contents

Install

PyPi

pip install pafpy

Conda

conda install -c bioconda pafpy

Locally

If you would like to install locally, the recommended way is using poetry.

git clone https://github.com/mbhall88/pafpy.git
cd pafpy
make install
# to check the library is installed run
poetry run python -c "from pafpy import PafRecord;print(str(PafRecord()))"
# you should see a (unmapped) PAF record printed to the terminal
# you can also run the tests if you like
make test-code

Usage

For full usage, please refer to the documentation. If there is any functionality you feel is missing or would make pafpy more user-friendly, please raise an issue with a feature request.

In the below basic usage pattern, we collect the BLAST identity of all primary alignments in our PAF file into a list.

from typing import List
from pafpy import PafFile

path = "path/to/sample.paf"

identities: List[float] = []
with PafFile(path) as paf:
    for record in paf:
        if record.is_primary():
            identity = record.blast_identity()
            identities.append(identity)

Another use case might be that we want to get the identifiers of all records aligned to a specific contig, but only keep the alignments where more than 50% of the query (read) is aligned.

from typing import List
from pafpy import PafFile

path = "path/to/sample.paf"

contig = "chr1"
min_covg = 0.5
identifiers: List[str] = []
with PafFile(path) as paf:
    for record in paf:
        if record.tname == contig and record.query_coverage > min_covg:
            identifiers.append(record.qname)

Contributing

If you would like to contribute to pafpy, checkout CONTRIBUTING.md.

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

pafpy-0.2.0.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

pafpy-0.2.0-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file pafpy-0.2.0.tar.gz.

File metadata

  • Download URL: pafpy-0.2.0.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for pafpy-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5ecbbb6cf6b3f25e2a76d4dd02503f70bb5604523e11754646c6aace813daa74
MD5 24fd5ebe94a0c3ddfc1913a06299f676
BLAKE2b-256 6df7e60d83b1ccd37118f78527f5992c269c16473a2b6fef7b556040e34d1ba8

See more details on using hashes here.

File details

Details for the file pafpy-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pafpy-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for pafpy-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 103d723c5701cf0d2aafdcf357c1a7fd5c2b80b61727783d4bfb57b0807d93f6
MD5 3cabb233c89b86ad4015c9ca569002db
BLAKE2b-256 ca845110df7fd7b7895a1fe63798b41f3f44cf4066e05997eab574cfdf88116d

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