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 black 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.0.3.tar.gz (628.9 kB view details)

Uploaded Source

Built Distributions

pxblat-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pxblat-1.0.3-cp311-cp311-macosx_12_0_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.11 macOS 12.0+ x86-64

pxblat-1.0.3-cp311-cp311-macosx_12_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.11 macOS 12.0+ ARM64

pxblat-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pxblat-1.0.3-cp310-cp310-macosx_12_0_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.10 macOS 12.0+ x86-64

pxblat-1.0.3-cp310-cp310-macosx_12_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.10 macOS 12.0+ ARM64

pxblat-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pxblat-1.0.3-cp39-cp39-macosx_12_0_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.9 macOS 12.0+ x86-64

pxblat-1.0.3-cp39-cp39-macosx_12_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.9 macOS 12.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for pxblat-1.0.3.tar.gz
Algorithm Hash digest
SHA256 2e39a3f6d942f0464c70ccc5da519dc3bcaf76aa929feaf15cd6b3e765382e8e
MD5 15166068df7284acc117b174ce6cec95
BLAKE2b-256 44d250fb85f2dbbe4545d7ae45ebd6ef9fd3cb022061a5aa3e211a98bcb25caa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3fe3f1b9306c59930799e5a72d947d9b25cf67d4eb91a7279acb030d1d752cb1
MD5 34ca46c178afaf746a7698eded186524
BLAKE2b-256 a6180da3d5072acbb7c1409c27490413f72b36f0cee94c0f684cd9693d772790

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.0.3-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 d8b2e4dbda546348a51ce8a5d7c45e37f01e79b1c2766135cdbf8db757563621
MD5 f3620a3a5db38528b7fbcff51a04ff6a
BLAKE2b-256 ff16b21903cf2820d68ca84caf0dbf986c2a01e4f0692ee5a92ccd383644c17f

See more details on using hashes here.

File details

Details for the file pxblat-1.0.3-cp311-cp311-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for pxblat-1.0.3-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 793bcaa5dcee82da91fc3258d95be73e5961b01c21e5eb39a6355827652a8297
MD5 49795bfea33f9b63d846826a6e53377b
BLAKE2b-256 a53f4862353e222fb8229ad3ba98e6a6f2ccc374381189e17ddb6f28a0dad690

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e702db54563e1a516f3f725f26cf238dab6f987d7941b5f2f7654a895a87e65a
MD5 0d32ee3a9e8a3f8229e0dec7951315ac
BLAKE2b-256 6c9d32485e3b0544089fe8fb95356b102493541e36fae61f6dca8d7fbec5e599

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.0.3-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 01c8c43b690813b0b9073384afa8469a6c4c0dd4cbb817ba2b589b3ad362ceb3
MD5 3ab95c9d8cb049cddfcac18fa23e0582
BLAKE2b-256 2dd0d31ca7d36858226d2d569fd8ea960d5b54ae46f1b77a46f295fcce14d9cd

See more details on using hashes here.

File details

Details for the file pxblat-1.0.3-cp310-cp310-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for pxblat-1.0.3-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 35751288c640d8068ec99e02d1414a281bad479c808b7108bb64b042c25ad2d0
MD5 d77231765b20c4445cdbf38c320238db
BLAKE2b-256 46e3d3694c038f9a4c5305249c7d372130fc76f71538171fae1c88f3d743ddf0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ba45f07cbccfce8ab8d3754e3926ddf4aa4604b182cf6854df0017e3ecbf800
MD5 eecb657483ba80991faa3933cd3f0cf3
BLAKE2b-256 08fcb6d9a2cbfc420072283863dbb3d1ccc960ec9a0c1442e378258e144174c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.0.3-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 1e1932562b4ef49f8a71767725d58a3e362c413328c656446a88fec10e9d2c0e
MD5 78b725b67c16e7a0341d40c9029b5dc6
BLAKE2b-256 29df1b1cfca062397cebddcf74349aa40f9bcec45797d477fbd700e831dfebca

See more details on using hashes here.

File details

Details for the file pxblat-1.0.3-cp39-cp39-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for pxblat-1.0.3-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 f13d695436209473d8a15ded421208526d2a639fb6bdbd12c3f6658321c76a5c
MD5 1985828d13434bdc001e141d381fe0a7
BLAKE2b-256 2ea73bac86c09127d7d72b709974ca1e3a4c2df4b56456161304d575277d0f13

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