Software suite to calculate fragmentomics features from cfDNA and perform downstream analyses.
Project description
pyfraglib
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@bitbucket.org:schwarzlab/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
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
As long as pyfraglib is not published, please cite this repository if you use it in your scientific work.
License
pyfraglib is licensed under the GPL-v3 as indicated in the source files.
Please direct requests to daniel.schuette@iccb-cologne.org.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyfraglib-0.6.2.tar.gz.
File metadata
- Download URL: pyfraglib-0.6.2.tar.gz
- Upload date:
- Size: 2.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9342039d95d6fc1e05f0460dcb0557dcddfe2771ed9e45e4f118ed0dccfeae5b
|
|
| MD5 |
d639f01c4695a0450e99a6ec0bc870f3
|
|
| BLAKE2b-256 |
948af3e48b05710ae52039b63c4a0e12ecf61c9eb6cff2539327bf1f40054e45
|
File details
Details for the file pyfraglib-0.6.2-py3-none-any.whl.
File metadata
- Download URL: pyfraglib-0.6.2-py3-none-any.whl
- Upload date:
- Size: 167.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0161e3499ac36913d616dd15e1727be40a9188c589f319e750a892212de8739f
|
|
| MD5 |
084261b2f40db9e8dea814ffbdf41dde
|
|
| BLAKE2b-256 |
f487eb41cf2138d04535929f3f66e7fb29ca1156fd2e6d96eb29bf78fdf4c7b6
|