readpaf
readpaf is a fast parser for minimap2 PAF (Pairwise mApping Format) files. It is written in pure python with no required dependencies unless a pandas DataFrame is required.
Installation
Minimal install:
pip install readpaf
With optional pandas dependency:
pip install readpaf[pandas]
Direct download
As readpaf is a self contained module it can be installed by downloading just the module. The latest version is available from:https://raw.githubusercontent.com/alexomics/read-paf/main/readpaf.py
or a specific version can be downloaded from a release/tag like so:
https://raw.githubusercontent.com/alexomics/read-paf/v0.0.5/readpaf.py
PyPI is the recommended install method.
Usage
readpaf only has one user function, parse_paf that accepts of file-like object; this
is any object in python that has a file-oriented API (sys.stdin, stdout from subprocess,
io.StringIO, open files from gzip or open).
The following script demonstrates how minimap2 output can be piped into readpaf
from readpaf import parse_paf
from sys import stdin
for record in parse_paf(stdin):
print(record.query_name, record.target_name)
readpaf can also generate a pandas DataFrame:
from readpaf import parse_paf
with open("test.paf", "r") as handle:
df = parse_paf(handle, dataframe=True)
Functions
readpaf has a single user function
parse_paf
parse_paf(file_like=file_handle, fields=list, na_values=list, na_rep=numeric, dataframe=bool)
Parameters:
- file_like: A file like object, such as
sys.stdin, a file handle from open or io.StringIO objects - fields: A list of 13 field names to use for the PAF file, default:
"query_name", "query_length", "query_start", "query_end", "strand", "target_name", "target_length", "target_start", "target_end", "residue_matches", "alignment_block_length", "mapping_quality", "tags"
These are based on the PAF specification. - na_values: A list of values to interpret as NaN. This is only applied to numeric fields, default:
["*"] - na_rep: Value to use when a NaN value specified in
na_valuesis found. This should ideally be0to match minimap2's output default:0 - dataframe: bool, if True, return a pandas.DataFrame with the tags expanded into separate Series
If used as an iterator, then each object returned is a named tuple representing a single line in the PAF file.
Each named tuple has field names as specified by the fields parameter.
The SAM-like tags are converted into their specified types and stored in a dictionary with the tag name as the key and the value a named tuple with fields name, type, and value.
When print or str are called on PAF record (named tuple) a formated PAF string is returned, which is useful for writing records to a file.
The PAF record also has a method blast_identity which calculates the blast identity for that record.
If used to generate a pandas DataFrame, then each row represents a line in the PAF file and the SAM-like tags are expanded into individual series.
Metadata
Release files for readpaf 0.0.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| readpaf-0.0.10.tar.gz | 5.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| readpaf-0.0.10-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 12.1 kB
Release files / readpaf-0.0.10.tar.gz
| Download URL | readpaf-0.0.10.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2a9e941b7d212d7402bb70838c0ff48257e3af00d64cce7cb8977fa2a773a696
|
|
BLAKE2b-256 checksum How to use checksums |
1a6d488b0ca4d813d3fc8b151416f2afa934cb16b4c8ab5fffd03f728b993e67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10
|
Release files / readpaf-0.0.10-py2.py3-none-any.whl
| Download URL | readpaf-0.0.10-py2.py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
4f2c5301aef061a0e996676ca5d00ab2d67e5ec713e7805152980d4e9bbc4524
|
|
BLAKE2b-256 checksum How to use checksums |
b7bccceefca2aaa33539cf91258bd0a9f4c2e3c2ccda61888bc5b6ed26cb52d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10
|