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

Uploaded Source

Built Distributions

pxblat-1.1.20-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.20-cp311-cp311-macosx_14_0_arm64.whl (3.7 MB view details)

Uploaded CPython 3.11 macOS 14.0+ ARM64

pxblat-1.1.20-cp311-cp311-macosx_12_0_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.11 macOS 12.0+ x86-64

pxblat-1.1.20-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.20-cp310-cp310-macosx_14_0_arm64.whl (3.7 MB view details)

Uploaded CPython 3.10 macOS 14.0+ ARM64

pxblat-1.1.20-cp310-cp310-macosx_12_0_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.10 macOS 12.0+ x86-64

pxblat-1.1.20-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.20-cp39-cp39-macosx_14_0_arm64.whl (3.7 MB view details)

Uploaded CPython 3.9 macOS 14.0+ ARM64

pxblat-1.1.20-cp39-cp39-macosx_12_0_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.9 macOS 12.0+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pxblat-1.1.20.tar.gz
Algorithm Hash digest
SHA256 38820df0fc8ae988446b0d69ab75ff93250e02c603c5a529d23e7b1debc34749
MD5 60499aa7605ca74a90809711ac1acb0a
BLAKE2b-256 fd5d69294d0ca0716b72f49f805941456f076e111ed9d6820503bc4bc1781c9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2def71b4b93c4332309e3c91c0234a0317aace5711e299939dc3158d6c58fc63
MD5 aec00d273134d179415e76df35b890d1
BLAKE2b-256 64c2d713be1537f79c0611a1e58dd992d46a6774bf9af68a2700783a4d5ff953

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.20-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1d5b1037ba66aaf7a347388a18afdc6bcf14da70ceb1739a8b64300a746f088b
MD5 5e5d1734bb1e6d884272ebb548c5046b
BLAKE2b-256 6d78217feb9016e9f6dfc146373f7d19f1bf76f6cefd78438593f1052dfa114a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.20-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 3bc258a6e90589ae4cc157b2e40a57287b2258fecf851e6e620140e4b89ce035
MD5 a7a8a4b5249f6ee932d1f82154c91d12
BLAKE2b-256 7b61c9004fe4d24b9b2ac88b4dc479bc524f583e322c6eba65f8c05c9ae15773

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f9dcc6c460d5856a1d22dd6b2ce27af4cfdb74d85765c5eb550a5ef7ede00e7c
MD5 65e04ed4608fd7593e1ff14f7c2f4c95
BLAKE2b-256 57d24bb8dd5781416b6158f7af3eb375bc4fc16cd8bcadae2b7f1bb295611d3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.20-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 113cc8da88fbb19a0387299579dc75a364d49cda33202366f4bf29d9446c5939
MD5 d0567ac7cb7b8df760eba33330f373c9
BLAKE2b-256 4f0cf68d08ddda10b34c111c43219891dab5d8e97ed00b2072b972545084040f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.20-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 0be18b887e3e40b0e3efa11061685517500910f76e540a51b5bc08fb501595c8
MD5 d20f97f1ee41d82a540dc06029049843
BLAKE2b-256 6ba8c5685af4e3c77a86c8753452a878c312d689be75de5862eb873b90829f0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 da92ff496a836fd7d5105b8089ced15e4dd92691c8918c69fb6b0909433b559c
MD5 fde05a2642d16090837f9ea794dd2782
BLAKE2b-256 2b7f9182becaa3321b75a2c0d413132cbcab20f7d8e34dd148b3fdad6e26d721

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.20-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e66c5f921de2aa384be5fce2b25ee0130d3b7550450d48f7b6e20dab82041254
MD5 552f86df39429ce2b63824971e6c735a
BLAKE2b-256 d730e92b17accf9292cbfb0fc4ec943e6b7078509c3a4b7bd135693e31b2d833

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.20-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 0fc11670403d2921d8baaae1ec4a35d4eb2663f59f0f9ad22d319c173a1921d2
MD5 d35f7b96219f5f4c17b63079e695295f
BLAKE2b-256 cf3c9a4563c1195814c78ef7305027714d1a512778616a1b2574bc8a398a91e4

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