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.10.tar.gz (629.2 kB view details)

Uploaded Source

Built Distributions

pxblat-1.1.10-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.10-cp311-cp311-macosx_14_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.11 macOS 14.0+ ARM64

pxblat-1.1.10-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.10-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.10-cp310-cp310-macosx_14_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10 macOS 14.0+ ARM64

pxblat-1.1.10-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.10-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.10-cp39-cp39-macosx_14_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.9 macOS 14.0+ ARM64

pxblat-1.1.10-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.10.tar.gz.

File metadata

  • Download URL: pxblat-1.1.10.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.10.tar.gz
Algorithm Hash digest
SHA256 d20b48ac4c761ad26c680cd1a10e7fb22f581212d5221cbfc2bc7f522a6b81d2
MD5 5258cc89c2470a3a3468a1f01b7d7dcb
BLAKE2b-256 2c3d9c84c541182943ae4947b4aea6e01bf5370de9432e6282c3e33b916a658e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 79eedcc7f12a5162b634a86433f0c3b0671a81093ccf1db55c0f90dc91504ae2
MD5 87477a3934621b05cad1e6fcbcea6f02
BLAKE2b-256 a4294fdb7a083202be3cfd7c87785e1480317c5c4b396c89a7f2e3c763e02983

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.10-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e1045bb3ba5a838f49ab0bd4683071204faaf5f5ba5f4d366fd75e0a604f9579
MD5 c115ca04d8229202b72d1a70d87808d6
BLAKE2b-256 abaf2c77b47f069d284f062090fae8b0c5012b828218d88f0ad246f2bac3dbea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.10-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 6622e5094819df96a3651b093499d9fb228930437841691c3caf3992d80f65ed
MD5 6fc27b613728a13403ef05a4ee572aad
BLAKE2b-256 2ffe71273d3bd323efe41f43cedeb1d5c217a3e838cf3abfe81bcbda7cc17a1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a87b2f6dd82502eccb7447cbf3d733ce7b6c82208c41f86c2c3d836c537de981
MD5 c3205716319f34f11aa2e2bcae9382b9
BLAKE2b-256 645a3b027ebf97155590fd6ec367a8a2934adad9f4a6890fd36a8fde0ff96568

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.10-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 31e65fac1eb93ad49268fba0aa8b133124a320dab905113085ee7682c70c5898
MD5 568d341749fd0bc8243eeba433fe3174
BLAKE2b-256 d7c401a7530e39fbd2c87021ac0b493f7c375bda327e896aecffb0c56fba33d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.10-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 82314b391a390bd2a2120c35cb70e40aed30cc75ec62ceffc7ed6dde06448f55
MD5 a28a9615754ae9469bdcb34cbde0513a
BLAKE2b-256 e9dc5388cb2e680fb068da2798eca05a7a7ea1b2e358b8d50e7cfbff08831ba4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f643799d35633ce364872c46121e8911458a4338a912cd0443e304be8feefe46
MD5 57e6b00575071f89033103967e130582
BLAKE2b-256 c2edbeca658ac281ca30c14e7c37c6582481358740b32be384c9b625ae1642a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.10-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b247ba247633ad5fc1201857a1671c4361970316f59d08ff86b365f3d0938a45
MD5 70de3dbe11eea450e4048e45a3540dba
BLAKE2b-256 a5ec5f3a8a5067339ddd9292b1718f6d133702bdac83c2c7a05d8d4246f07e29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.10-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 c08eab897f1a9d11b7bb70111c8b506f91f06d69e3458925ab6b1f96171bd10e
MD5 28b0957e0aff8e5f1f663d1a036dac9a
BLAKE2b-256 a03604f6ad75b4c4c288a4bff8b76a6af6388faf9eacdfe327d11a0b3baf2257

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