Skip to main content

pyfraglib

pyfraglib Logo

Overview

pyfraglib is a Python library to analyze high-throughput sequencing data of cell-free DNA (cfDNA). More specifically, it facilitates the investigation of fragmentomics features of which a list can be found below.

Because fragmentation of cfDNA is non-random, tissue- and disease-specific patterns emerge in e.g. fragment length or end motif distributions. To date, no comprehensive tool exists to implement a "fragmentomics workflow". pyfraglib aims at being such at tool.

Installation

It is recommended that pyfraglib is installed into a dedicated conda environment using pip, the Python package manager:

git clone git@github.com:schwarzlab-ccb/pyfraglib.git
cd pyfraglib
conda env create -f pyfraglib.yml
conda activate pyfraglib
python3 -m pip install .

During development, all code in pyfraglib is thoroughly type-checked using mypy. After an initial installation as described above, do:

./tools/dev_install.sh # typing & linting errors are reported

Alternatively, pyfraglib is available via PyPI, the Python package index:

pip install pyfraglib

The only non-Python dependency samtools/htslib is usually bundled with pysam and in those cases, no separate installation of it is required.

Usage

pyfraglib comes with a command line utility. After successful installation, it can be used as follows:

pyfrag.py version # show currently installed version
pyfrag.py --help # show available subcommands and flags

tools/workflow.sh gives an example of a commonly used sequence of commands.

Pipeline

pyfraglib offers a simple batch mode for most operations, i.e. it can take a directory of BAM or FRAG files and perform analyses on them. Some operations (i.e. the extract subcommand) are even parallelized. We explicitly do not recommend using this functionality for the analysis of large cohorts. Even 10 BAM files cannot be extracted at once without exceeding most workstation's memory. Thus, we include a convenient Nextflow pipeline in tools/pipeline.nf. It reads the input data from a TSV file and Nextflow parallelizes pyfraglibs operations as much as possible. See tools/nextflow.config for all paths and variables that must be set by the user. Currently, only slurm is supported as a scheduler (via the ramses profile).

Available fragmentomics features

Please refer to the project's documentation for a list of currently supported features (see below for instructions on how to build documentation using Sphinx).

Documentation

Sphinx is used to create documentation. The easiest way to create repository-wide documentation in HTML or PDF format, run:

./tools/build_docs.sh pdf # or:
./tools/build_docs.sh html

Citation

Please cite our bioRxiv preprint (DOI XXX) if you use pyfraglib in your work.

License

pyfraglib is licensed under the GPL-v3 as indicated in the source files. Please direct requests to daniel.schuette@iccb-cologne.org.

Metadata

Release files for pyfraglib 0.6.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyfraglib 0.6.4
File Size Uploaded Provenance Actions
pyfraglib-0.6.4.tar.gz 2.1 MB Without provenance Details for pyfraglib-0.6.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pyfraglib 0.6.4
File Interpreter ABI Platform Actions
pyfraglib-0.6.4-py3-none-any.whl Python 3 none any Details for pyfraglib-0.6.4-py3-none-any.whl

Total release size: 2.3 MB

Release files / pyfraglib-0.6.4.tar.gz

Download URL pyfraglib-0.6.4.tar.gz
Size 2.1 MB
Tags Source
SHA-256 checksum
How to use checksums
4e0db40edceb084ba2072eccae7017096015474923dffcb5908959dc49daa66f
BLAKE2b-256 checksum
How to use checksums
ad5befc53d635a2d339e01b030838bbd612d73c94a6bd4c41616912d969c6ca9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyfraglib-0.6.4-py3-none-any.whl

Download URL pyfraglib-0.6.4-py3-none-any.whl
Size 167.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
79f62a8fddce6ff5e7de54466ed03b6d1459604fdf084b28690caed6eb59161b
BLAKE2b-256 checksum
How to use checksums
7eab6f65a62764573c66ae2669d203064f2a328a1f4180478b9c3b14c7d23e26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for pyfraglib 0.6.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page