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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.11 macOS 14.0+ ARM64

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

Uploaded CPython 3.10 macOS 14.0+ ARM64

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

Uploaded CPython 3.9 macOS 14.0+ ARM64

pxblat-1.1.19-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.19.tar.gz.

File metadata

  • Download URL: pxblat-1.1.19.tar.gz
  • Upload date:
  • Size: 629.4 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.19.tar.gz
Algorithm Hash digest
SHA256 06a0b96ee259357dfb9838866fd528e21ce893173c26f89ded700907e6e010de
MD5 7769ad4deaf0490f26425b90d7109570
BLAKE2b-256 7d126db17b59d9fe6ebc94ff88e07db195808aa4daec63a5f0864c497b8c6a3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.19-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c8455b0c9973117d2d0285c49aa48d75a151de15b25068a4b38a6ea5d07a0bb7
MD5 8e3da21dc1262e458b616497e06215df
BLAKE2b-256 8edc23a60b8563048affb95eb189bb51c1a181b61bb5080f58c41a4114e12aaf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.19-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b6cf0e27edf3d1f6a6583f7a6a5e9d4dd80aa93112eb416bd10b740b3b804cae
MD5 1e66c4722cc7b89a23747b0041726faf
BLAKE2b-256 ff419268f6390111a08dcc6a29cf0c7780103e7c8a189e15134b8a6f3ccfc3d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.19-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 45cb1f0bc3d141fd7b2e876fb681cd45f0030f8f156200334d5c4f9f3a1d8ec5
MD5 08b03d5d317b13cabffe0a822d33788e
BLAKE2b-256 1a9e589b4d10ba6130e463bb15c38dcc1cbe4770fa5db55b4782247f8442158f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.19-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 86f54e14b98dafd317e3d5d1f2259ebeaf28c75f3e49b6949f6ba6d059b4ec2b
MD5 f5b2374b86e39309aec61df104948ed7
BLAKE2b-256 eff13aa4b8f32ca8a31b284837aa503014e4db51fae3c098e2a6713d3273c3d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.19-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 82cfaf83ed63a3852f15f9cece95edd1b7ec1d115b872f9c931007b77faed7f2
MD5 1508e3106cdd2808c70159992e07eb61
BLAKE2b-256 26787b0823d956f88293305c34b9a92d94703e7c1cb9460279ab54917f07db6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.19-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 9a01673ccc752059fbfb63f93869ca73581a04f964a647c95a68427517d0bdf2
MD5 6fbdff43d088c1a8fa69d3c84a474b2a
BLAKE2b-256 dc35362fa6e93b5ac2fcc5ca8014e5890df96f3c2ca7c815beb1415078e798be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.19-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b3d5242f2e704dcfa5dcdd1f6f604badd27b1f5a0ed7e0a96e71bdd5546ab0c2
MD5 e2c51e728a77e5a2958fc2932baa66fc
BLAKE2b-256 73452990da5304dee3374b27480c969eba3edc74c1a5991315d92535f38c9944

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.19-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f43df7fc1fc05cf05a09705aa372c86739dfc77c87a6921abbe6602d4ab6263b
MD5 c307e4d60e774f7988b850b15a136c8a
BLAKE2b-256 fb742c188262e3bec042cd88fe145acda551c69dea3702ecbe5caceb7becbeb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.19-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 e67d6bbceaffbf3f54024d824670709a139bb74c905e8ed345d4e1b6f5472232
MD5 337c0180c7cb214993f5d95190fcb30d
BLAKE2b-256 0f4a08a1d3004f488db2b5c5c82daabc13708946f52f612810537aafaf4185e7

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