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

Uploaded Source

Built Distributions

pxblat-1.1.5-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.5-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.5-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.5-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.5-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.5-cp39-cp39-macosx_12_0_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9 macOS 12.0+ x86-64

File details

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

File metadata

  • Download URL: pxblat-1.1.5.tar.gz
  • Upload date:
  • Size: 629.1 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.5.tar.gz
Algorithm Hash digest
SHA256 1770d51f2408ec85d2ab0b019fb88c26ab6de697fbb968988b1b5290b2d794a5
MD5 cb624b47a93b8152562d1d3ec9ece210
BLAKE2b-256 56c5ac4d6a2816fb84036d71f39d35b209a95f811964ca43b793bee0f103266a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 86729f27092993b20a4a47673efdef90b1f1fc7b5549503ef07926a120a10d26
MD5 83a2a9e62b6536050dc62b8143d4ed0f
BLAKE2b-256 314b3e107cbde831a7e18ab68259782fa3433f40a5aede892dd9049941701fce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.5-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 51e9c46d285c736a122aa24b799ffbb9ab58101a58bb3aec13d80663f0e0cfb1
MD5 4dd9ce87be71d7061138154664490904
BLAKE2b-256 858af060100467d9a95cf111e22bb9e2676e80cbb71d037ae48ad512a921a933

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7379720825abcb8f755033cdebdaed443439d0f82ed3e9e1f68cdd555299d5a0
MD5 e8310acd6404ed43f6fe741ea0b25003
BLAKE2b-256 e41ca18648079e6b4c3f7bb64f83665eac855304bc6a73e2c7507c8764ed04d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.5-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 ee08f01d37305639d6f7655497329d230f9a33ea2b361c040862587bef12e52d
MD5 5126c9b419df97ac40c8bf50729ea90a
BLAKE2b-256 c89a23a5707958f5a97438f0aad006a82e5a661626885625622bbf3a875a0770

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fa2776486867c3db10db8452782adfa631d4e8a3366388782e2c509ab3ad5536
MD5 a9a26b89b16355e40cdf6469170e3b41
BLAKE2b-256 ea61247cd19691759812f39c0d1df852c64d92d7ef62ab8a5dacea7c4bebc08b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.5-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 fcda1877654ce0a705a943388ce812bc35e992e21e8586c9015ed526f9e4399e
MD5 d95b0ff1d8dd20d446bd7f7024216ffa
BLAKE2b-256 5dcf73445e6eced0f2bd568ab09d289337cb31a072e996fd5242b5c481dfb16f

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