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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.11 macOS 14.0+ ARM64

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

Uploaded CPython 3.10 macOS 14.0+ ARM64

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

Uploaded CPython 3.9 macOS 14.0+ ARM64

pxblat-1.1.18-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.18.tar.gz.

File metadata

  • Download URL: pxblat-1.1.18.tar.gz
  • Upload date:
  • Size: 629.3 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.18.tar.gz
Algorithm Hash digest
SHA256 b5d0c4f3ca6e92e01aac24503212760501bd812bff7886b2a28e1219c1511f4d
MD5 08d4feeaedd1e2909fb4ea534c4df281
BLAKE2b-256 699b92d485598ad8bf5d9058671a7b7b3cf9ef774fe16555c1bb6bdbb280e7c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a5de9c82ab056c586dc544140068bfd9bfa27474aa7bd1091a5bc96cd9843576
MD5 b8eaa9ac83452b240aa5925caf305e14
BLAKE2b-256 ee4c690b7eb8fdbe9878cacf5018ba8872ecf91366237bb3af3b7fb11943dc0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.18-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a3d3902c6c385b063d51e5766fa6a151431150a8ca8f90c1af4bba20b8c41958
MD5 b6dd33e28fe5f240e491c1dc641c1946
BLAKE2b-256 fd48183140cfbe75a2e63999f135f63756d66587b9a26e024db40491d5817fc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.18-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 de5c6c55dbd31ca91343d84b70810e6190eb9e2ce10c35ea2587726941ee5b73
MD5 a61d72e715f041d8457851143389949b
BLAKE2b-256 c36be989d4aade70bf527b002640260db8c980d6d1136b74c44f79ae069dea15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8e9e187268eee06afb7ed0c7be602af821b5b12229530e9b9b725f20d2481f11
MD5 5479cb6921176246028e5412f967103a
BLAKE2b-256 e2cb93e8a13cf4a0b77136d0de5dfb04a4ec93412f2f5053bf58327d4ce09290

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.18-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 dbb26119acf79fffaef1547a94a70a8bb4917c39b1a04b155cba80dd9576b732
MD5 145386d99a39a322e9a4c424e4c9c70b
BLAKE2b-256 a4604c39f80cf302faa48b067a21d2c39e9a771c6d7f4921e423ddb098482b5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.18-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 84a41ea2feaa56b9f1ef039885bc0c5533b9d9638ec15dfba1a958c6c45142d1
MD5 eb8c89fb81832b6ef1aea6d5b79105e1
BLAKE2b-256 ee087600678cd43b164ee71e639946ec60d794dac35926f2cc71d1f8d73e3439

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.18-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5731f6f3b65adc9526e69e67756a497fdf10b1d195e216e26da8a6a10a6c2dd8
MD5 2309805bd1eaa218364adeb0ae24b49a
BLAKE2b-256 52896194e512c9d75574c8ef105ba1296bab85afef12400f3c5a7572c5030cec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.18-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d9c5b2e4a869d658663d72c680c86d9605452887f99bdf0c2d2eae7187747370
MD5 11f9c8ac8e7c9d409dba9955e16e4d53
BLAKE2b-256 deb3a14255922340325461320684bd3b156f5581492a6bb7b8f38660e326cc66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.18-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 e154710ef169cbc249d8faf40340fb7efddf591ef3d93685027bd0d5bd9e522b
MD5 da82eda862a975fad77641fdc021387b
BLAKE2b-256 03139923dc44a0f2ae5ff4c059277ac46d8c4f695338f1d8428090bc6ec546b4

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