Skip to main content

Blazing fast genomic operations on large Python dataframes

Project description

polars-bio - Next-gen Python DataFrame operations for genomics!

PyPI - Version GitHub License PyPI - Downloads GitHub commit activity

CI Docs logo

polars-bio is a Python library for genomics built on top of polars, Apache Arrow and Apache DataFusion. It provides a DataFrame API for genomics data and is designed to be blazing fast, memory efficient and easy to use.

img.png

Key Features

Performance benchmarks

summary-results.png

For developers: See benchmarks/README_BENCHMARKS.md for information about running performance benchmarks via GitHub Actions.

Citing

If you use polars-bio in your work, please cite:

@article{10.1093/bioinformatics/btaf640,
    author = {Wiewiórka, Marek and Khamutou, Pavel and Zbysiński, Marek and Gambin, Tomasz},
    title = {polars-bio—fast, scalable and out-of-core operations on large genomic interval datasets},
    journal = {Bioinformatics},
    pages = {btaf640},
    year = {2025},
    month = {12},
    abstract = {Genomic studies very often rely on computationally intensive analyses of relationships between features, which are typically represented as intervals along a one-dimensional coordinate system (such as positions on a chromosome). In this context, the Python programming language is extensively used for manipulating and analyzing data stored in a tabular form of rows and columns, called a DataFrame. Pandas is the most widely used Python DataFrame package and has been criticized for inefficiencies and scalability issues, which its modern alternative—Polars—aims to address with a native backend written in the Rust programming language.polars-bio is a Python library that enables fast, parallel and out-of-core operations on large genomic interval datasets. Its main components are implemented in Rust, using the Apache DataFusion query engine and Apache Arrow for efficient data representation. It is compatible with Polars and Pandas DataFrame formats. In a real-world comparison (107 vs. 1.2×106 intervals), our library runs overlap queries 6.5x, nearest queries 15.5x, count\_overlaps queries 38x, and coverage queries 15x faster than Bioframe. On equally-sized synthetic sets (107 vs. 107), the corresponding speedups are 1.6x, 5.5x, 6x, and 6x. In streaming mode, on real and synthetic interval pairs, our implementation uses 90x and 15x less memory for overlap, 4.5x and 6.5x less for nearest, 60x and 12x less for count\_overlaps, and 34x and 7x less for coverage than Bioframe. Multi-threaded benchmarks show good scalability characteristics. To the best of our knowledge, polars-bio is the most efficient single-node library for genomic interval DataFrames in Python.polars-bio is an open-source Python package distributed under the Apache License available for major platforms, including Linux, macOS, and Windows in the PyPI registry. The online documentation is https://biodatageeks.org/polars-bio/ and the source code is available on GitHub: https://github.com/biodatageeks/polars-bio and Zenodo: https://doi.org/10.5281/zenodo.16374290. Supplementary Materials are available at Bioinformatics online.},
    issn = {1367-4811},
    doi = {10.1093/bioinformatics/btaf640},
    url = {https://doi.org/10.1093/bioinformatics/btaf640},
    eprint = {https://academic.oup.com/bioinformatics/advance-article-pdf/doi/10.1093/bioinformatics/btaf640/65667510/btaf640.pdf},
}

References

VCF Zarr support in polars-bio builds on:

Read the documentation

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

polars_bio-0.32.0.tar.gz (42.6 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

polars_bio-0.32.0-cp310-abi3-win_amd64.whl (76.2 MB view details)

Uploaded CPython 3.10+Windows x86-64

polars_bio-0.32.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (86.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

polars_bio-0.32.0-cp310-abi3-macosx_11_0_arm64.whl (78.0 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

polars_bio-0.32.0-cp310-abi3-macosx_10_12_x86_64.whl (81.2 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file polars_bio-0.32.0.tar.gz.

File metadata

  • Download URL: polars_bio-0.32.0.tar.gz
  • Upload date:
  • Size: 42.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for polars_bio-0.32.0.tar.gz
Algorithm Hash digest
SHA256 d7a495f993cb2a56bebf69d1a7084035daf039e55464e5167d3a358744fa6f79
MD5 94557a5abc63e35901ff976478d1d5fb
BLAKE2b-256 24d0cc11ee6cafbc29d7ca5dd62ff730612611cec42c0070a0990a53048176f1

See more details on using hashes here.

File details

Details for the file polars_bio-0.32.0-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for polars_bio-0.32.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d18bbb62aba1ef47dff06bd92426c75c537721b6000f7d3702783bf792d7bff5
MD5 e81eaace374dc9de59f60736739951d5
BLAKE2b-256 0e1c5e43d44a6497e89a0159e9ea6d60ceaa859850e1d3cef32f81d335670252

See more details on using hashes here.

File details

Details for the file polars_bio-0.32.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for polars_bio-0.32.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c7b60e97fb2878719c7e5e93d6dfcdbaf9e89b9db2f92b61c5ae375bd6b1667d
MD5 b44d100a2127ebbabbb4b187fc06d8b6
BLAKE2b-256 821604931947f3cf46e1a9533f2b2c5a05b9860326d6b760002cdd99d9ae5a15

See more details on using hashes here.

File details

Details for the file polars_bio-0.32.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polars_bio-0.32.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f498cddfba9077ed3ad3c9035a355578a0588a142086498bcd60dcb3d83bb3c1
MD5 1d66cc133a75d1cd7d879cea8bdd1142
BLAKE2b-256 8251c445387518c885b3f25521de586162612b6f5835dfd1f830ef004a0557cf

See more details on using hashes here.

File details

Details for the file polars_bio-0.32.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for polars_bio-0.32.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 70975672663bb36423ed3a06feb1229d7ceee887c2fd80068f2346f220545237
MD5 25bc433fe6c49710d4c821189c284874
BLAKE2b-256 0e962ca840126c2f1e4ee9a7e52d8d2892071fe72f1a6a04e789b63531e1a3e5

See more details on using hashes here.

Supported by

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