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

Uploaded Source

Built Distributions

pxblat-1.1.8-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.8-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.8-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.8-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.8-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.8-cp39-cp39-macosx_12_0_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.9 macOS 12.0+ x86-64

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

Uploaded CPython 3.9 macOS 12.0+ ARM64

pxblat-1.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pxblat-1.1.8-cp38-cp38-macosx_12_0_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.8 macOS 12.0+ x86-64

pxblat-1.1.8-cp38-cp38-macosx_12_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.8 macOS 12.0+ ARM64

File details

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

File metadata

  • Download URL: pxblat-1.1.8.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.8.tar.gz
Algorithm Hash digest
SHA256 3c5609e8be17c77c3740ffa016d1ca7e5072d2a34581fe4327ca7f10ac3bb629
MD5 dc5b2dd65f5907c1ce4ee966187bde06
BLAKE2b-256 a62114b2b748d87983df85c4d815ee70ba828791ae2191f47d3e45e09a252f4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8d14f921940f41717b622d72de3629234b125efac0fd8f247e20dfeface05123
MD5 950b24a39991b9dda9ad2af6d7879cc6
BLAKE2b-256 8404da65c9eb3a36b2824e96e817f4d9e203cd77f2eb7bfb7006b6a66c303b8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.8-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 e89ebff850e457363de16a7a1748ec80c49b5ec83c88c5c6c81a3e5e9506c052
MD5 bf4e0726305201f517d715d6c3c87e91
BLAKE2b-256 271c52b33a8f5ba8405d2dc380d35a848272db46a5d3d6cb298bd3843df404e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3dc562aaecac556d2e181523bd529b39c52192182797557e07f01787be34934f
MD5 6cf14177c5923e24b903f315577e2c3d
BLAKE2b-256 08b9028f4c17558299ffa07cc0e2b842d7913503f0b580f3850ab3a8d0e1cc83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.8-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 e064225c0d6f09344bb2a387106134962c61184df38504531e54ea12fb308c78
MD5 0566c046fa87f29ef76f38188ec5df14
BLAKE2b-256 3f0246875a1b1d3ea1576571d201f73ab206d602c346b3be217e54a040ca3535

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f9545d41ff52be1f1b167df88479e8c64bcf9d6f760383e51c1a1913dd6d4619
MD5 a4237fe358af4d617c7caa0c7f726fa1
BLAKE2b-256 2bc386d3886f4b21a2cc629751fa41335cd0dac3bc1a8965dcfe36105dd158f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.8-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 7eda233688e980b096e483067c295d4576a2c2694c3b5543ebe352e30778c261
MD5 4152f093dd3b91bd089a6defe4020dbc
BLAKE2b-256 3139bc73e6cc5487dd1eacdc704ab6bf0374776cb8f08daeeece6173c05cc6fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.8-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 c472eb899beb679340d6740731de10225cb022a9e5982c776cfe1346a20439a0
MD5 66d023ecfc26d2a9430835026044ed7e
BLAKE2b-256 cbdad5b5dfaa9e3b274da5409d7a268397a2bb0317b222a6968beb49c958b0eb

See more details on using hashes here.

File details

Details for the file pxblat-1.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pxblat-1.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 99bba65f64ddcd6f74607df0ab46221999d3cae06eaa2fbc78e88915ea367728
MD5 9540124a34b9bf4f15b973b441a874ca
BLAKE2b-256 bbd47aca031c9183e69dab4f07520925d6ea0e71f7f2a70860655d079388ba82

See more details on using hashes here.

File details

Details for the file pxblat-1.1.8-cp38-cp38-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for pxblat-1.1.8-cp38-cp38-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 6c989836dd887b59a184ec5e7cfdbc1b67c7c42df2039338d0444ec806d2a623
MD5 50ba49cfbb5db8985e12e9edfe6f164d
BLAKE2b-256 33a48188ef166baaaacc0279ce4c9a825be1cfb8db4dc484156aa97fcc08411a

See more details on using hashes here.

File details

Details for the file pxblat-1.1.8-cp38-cp38-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for pxblat-1.1.8-cp38-cp38-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 c3ef933d15a45293ee7508e912f7e34ccfbe882f3ec5a9744fcaac3a16979974
MD5 2b0dee691edb83da948c47ddfdbe7139
BLAKE2b-256 cdd010d71feae3716f9dc2e5463705792b490008f5890749b65b9815c9ec7a1b

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