Skip to main content

A native python binding for blat suite

Project description

logo PxBLAT social

An Efficient and Ergonomic Python Binding Library for BLAT

python c++ c pypi conda Linux macOS pyversion tests Codecov docs download condadownload precommit ruff release open-issue close-issue activity lastcommit opull all contributors

Why PxBLAT?

When conducting extensive queries, using the blat of BLAT suite can prove to be quite inefficient, especially if these operations aren't grouped. The tasks are allocated sporadically, often interspersed among other tasks. In general, the choice narrows down to either utilizing blat or combining gfServer with gfClient. Indeed, blat is a program that launches gfServer, conducts the sequence query via gfClient, and then proceeds to terminate the server.

This approach is far from ideal when performing numerous queries that aren't grouped since blat repeatedly initializes and shuts down gfServer for each query, resulting in substantial overhead. This overhead consists of the time required for the server to index the reference, contingent on the reference's size. To index the human genome (hg38), for example, would take approximately five minutes.

A more efficient solution would involve initializing gfServer once and invoking gfClient multiple times for the queries. However, gfServer and gfClient are only accessible via the command line. This necessitates managing system calls (for instance, subprocess or os.system), intermediate temporary files, and format conversion, further diminishing performance.

That is why PxBLAT holds its position. It resolves the issues mentioned above while introducing handy features like port retry, use current running server, etc.

📚 Table of Contents

🔮 Features

  • Zero System Calls: Avoids system calls, leading to a smoother, quicker operation.
  • Ergonomics: With an ergonomic design, PxBLAT aims for a seamless user experience.
  • No External Dependencies: PxBLAT operates independently without any external dependencies.
  • Self-Monitoring: No need to trawl through log files; PxBLAT monitors its status internally.
  • Robust Validation: Extensively tested to ensure reliable performance and superior stability as BLAT.
  • Format-Agnostic: PxBLAT doesn't require you to worry about file formats.
  • In-Memory Processing: PxBLAT discards the need for intermediate files by doing all its operations in memory, ensuring speed and efficiency.

📎 Citation

PxBLAT is scientific software, with a published paper in the BioRxiv. Check the published to read the paper.

@article {Li2023pxblat,
	author = {Yangyang Li and Rendong Yang},
	title = {PxBLAT: An Ergonomic and Efficient Python Binding Library for BLAT},
	elocation-id = {2023.08.02.551686},
	year = {2023},
	doi = {10.1101/2023.08.02.551686},
	publisher = {Cold Spring Harbor Laboratory},
	url = {https://www.biorxiv.org/content/10.1101/2023.08.02.551686v2},
	journal = {bioRxiv}
}

🚀 Getting Started

Welcome to PxBLAT! To kickstart your journey and get the most out of this tool, we have prepared a comprehensive documentation. Inside, you’ll find detailed guides, examples, and all the necessary information to help you navigate and utilize PxBLAT effectively.

Need Help or Found an Issue?

If you encounter any issues or if something is not clear in the documentation, do not hesitate to open an issue. We are here to help and appreciate your feedback for improving PxBLAT.

Show Your Support

If PxBLAT has been beneficial to your projects or you appreciate the work put into it, consider leaving a ⭐️ Star on our GitHub repository. Your support means the world to us and motivates us to continue enhancing PxBLAT.

Let’s embark on this journey together and make the most out of PxBLAT! 🎉 Please see the document for details and more examples.

🤝 Contributing

Contributions are always welcome! Please follow these steps:

  1. Fork the project repository. This creates a copy of the project on your account that you can modify without affecting the original project.
  2. Clone the forked repository to your local machine using a Git client like Git or GitHub Desktop.
  3. Create a new branch with a descriptive name (e.g., new-feature-branch or bugfix-issue-123).
git checkout -b new-feature-branch
  1. Take changes to the project's codebase.
  2. Install the latest package
poetry install
  1. Test your changes
pytest -vlsx tests
  1. Commit your changes to your local branch with a clear commit message that explains the changes you've made.
git commit -m 'Implemented new feature.'
  1. Push your changes to your forked repository on GitHub using the following command
git push origin new-feature-branch

Create a pull request to the original repository. Open a new pull request to the original project repository. In the pull request, describe the changes you've made and why they're necessary. The project maintainers will review your changes and provide feedback or merge them into the main branch.

🪪 License

PxBLAT is modified from blat, the license is the same as blat. The source code and executables are freely available for academic, nonprofit, and personal use. Commercial licensing information is available on the Kent Informatics website (https://kentinformatics.com/).

Contributors

yangliz5
yangliz5

🚧
Joshua Zhuang
Joshua Zhuang

🚇

🙏 Acknowledgments


Star History Chart

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

pxblat-1.1.9.tar.gz (629.2 kB view details)

Uploaded Source

Built Distributions

pxblat-1.1.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pxblat-1.1.9-cp311-cp311-macosx_14_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.11 macOS 14.0+ ARM64

pxblat-1.1.9-cp311-cp311-macosx_12_0_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.11 macOS 12.0+ x86-64

pxblat-1.1.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pxblat-1.1.9-cp310-cp310-macosx_14_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10 macOS 14.0+ ARM64

pxblat-1.1.9-cp310-cp310-macosx_12_0_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.10 macOS 12.0+ x86-64

pxblat-1.1.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pxblat-1.1.9-cp39-cp39-macosx_14_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.9 macOS 14.0+ ARM64

pxblat-1.1.9-cp39-cp39-macosx_12_0_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.9 macOS 12.0+ x86-64

File details

Details for the file pxblat-1.1.9.tar.gz.

File metadata

  • Download URL: pxblat-1.1.9.tar.gz
  • Upload date:
  • Size: 629.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for pxblat-1.1.9.tar.gz
Algorithm Hash digest
SHA256 179582cc77ec754815fa982b013e8ce1e50de35769a4535efc74f7eaec86fa0e
MD5 79613e90401153ae63bda9f48486824c
BLAKE2b-256 d7b001839c6bee4af93b76a7f3a4d17c241b4ec1e13f574d4faff789e3c71718

See more details on using hashes here.

File details

Details for the file pxblat-1.1.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pxblat-1.1.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 234ff2f0d8ff9fc26671e29d4dd58c7f231946a6a7b3dac2f4068fe29ef8fe21
MD5 e66603b7b23f4fadd83e608c1c99fb52
BLAKE2b-256 397d23ae03414e41333c09a900591d46392697ac15ec7a763deccfa69537a7a8

See more details on using hashes here.

File details

Details for the file pxblat-1.1.9-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pxblat-1.1.9-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 5aa5038868a650f13371c534bc2700a4750b6b10495828f6acd01e53b12e5d11
MD5 efe21f76585e9cadae12bf7d0f6bebea
BLAKE2b-256 72340efed757cf30a6dfafdb48621d86e38559233828dac7dc4d472af98f1179

See more details on using hashes here.

File details

Details for the file pxblat-1.1.9-cp311-cp311-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for pxblat-1.1.9-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 ee287db034e5526b2854263067740bb5069e105fd5769de182f1facb96505cdb
MD5 4393ca430f037a3e9788b4f130196878
BLAKE2b-256 425dbeb7f27d0eb2e9f1823af68355e3590ea4407b9073a8d64c8404110f8477

See more details on using hashes here.

File details

Details for the file pxblat-1.1.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pxblat-1.1.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 236f98101e602b38558728960c12a5279e348218f249eebf1d712d1900f0f2ce
MD5 1b56b2040c410a76345e2b579acc75b4
BLAKE2b-256 56d8c044677634873bf596affbafdfcc85c82f9d0f924b5ec159c0ae5ccde5cb

See more details on using hashes here.

File details

Details for the file pxblat-1.1.9-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pxblat-1.1.9-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 273b935e3e30e154def7ab2669c5cb41abcdce912749d542388dd21a89f8b0f7
MD5 467ce57602e7622d652c3b50716226e4
BLAKE2b-256 fa800a408b65feeec2ab578a939c6e421e7236c5e652c7102739c605e0ab232f

See more details on using hashes here.

File details

Details for the file pxblat-1.1.9-cp310-cp310-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for pxblat-1.1.9-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 0145e342a7a68591394c386c31a9fb4fbf942f9bb125a92ef0c95928aeedbab9
MD5 ca80f08b6fb0d19e9bf71cba9d6c1b2b
BLAKE2b-256 e360ae05af65e94002529dd3e63e188c76d66c94b5cc0820386acb97b49eb20a

See more details on using hashes here.

File details

Details for the file pxblat-1.1.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pxblat-1.1.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba15c9dda4fb42f4bc264d1d28e9df7aa61ebc20ae26096436bebd4d0beba9c3
MD5 83a551a749e2a591cad27ad116949733
BLAKE2b-256 3c4c41a8abdf96d9dab751f1c1eeee1c059d436b900766987feaee4e847c35b6

See more details on using hashes here.

File details

Details for the file pxblat-1.1.9-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

  • Download URL: pxblat-1.1.9-cp39-cp39-macosx_14_0_arm64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.9, macOS 14.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.13 Darwin/23.0.0

File hashes

Hashes for pxblat-1.1.9-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6e5be97823318c9f3bee764026ab9f4c6738037cf9cfc9e179b03dc98094b1a1
MD5 30f235be20c650b853c56127b592d18d
BLAKE2b-256 ba27ece102a1b3a73b469e77608544ab95ca8c1435b011eb14983a1bea3464f6

See more details on using hashes here.

File details

Details for the file pxblat-1.1.9-cp39-cp39-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for pxblat-1.1.9-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 1473e9a8dd708d803d648b8fd57e3555dbf16fc1b116d131915b89c63bc6782e
MD5 e47d4b7407555a76120a2dfdaf7303f0
BLAKE2b-256 de46a50c6a60df09b73647ded3c548b89cad8b9d68ae499bbfb83734027bc1a1

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