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 black 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.0.tar.gz (629.0 kB view details)

Uploaded Source

Built Distributions

pxblat-1.1.0-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.0-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.0-cp311-cp311-macosx_12_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.11 macOS 12.0+ ARM64

pxblat-1.1.0-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.0-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.0-cp310-cp310-macosx_12_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.10 macOS 12.0+ ARM64

pxblat-1.1.0-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.0-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.0-cp39-cp39-macosx_12_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.9 macOS 12.0+ ARM64

File details

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

File metadata

  • Download URL: pxblat-1.1.0.tar.gz
  • Upload date:
  • Size: 629.0 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.0.tar.gz
Algorithm Hash digest
SHA256 160e723390a2def25b3e864601bf6552809daa9fb79ab6279bca9cbe283ccf97
MD5 7668b7743fba5453e78e386477ae4c40
BLAKE2b-256 f1b22c64bb434ca9d4b3b20975ea51852c8ac59a8fd1e1fd6df85b9ede006c2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ab77dac5b6dc24fcc2126e3f8a02b349056d750cd061ef19dbe2070f7711fc7
MD5 f3ac89ac4bcdda9f255bfd18e6d08e35
BLAKE2b-256 f9fe9f96c56ce9cadcce6c2ed576e8b405b22c4b82734b2bdf7ead996e5fe583

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.0-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 14afcafa5db68650771f6f5ebac063b58b29e0e1f91ce494b51b795d1d988afb
MD5 3b977b941ca086a66b501a68029f279b
BLAKE2b-256 53f86c0422285d7fd17e270b1e65192b64017b0d373c3884b02ecfbfa50f88cd

See more details on using hashes here.

File details

Details for the file pxblat-1.1.0-cp311-cp311-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for pxblat-1.1.0-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 ce71fdf3dc2f1801bc338ffaf24ae2ab22fb4900cc63eb548977fdd40cc2f2c0
MD5 5dc279e34087ebf87c05586e42ef1b21
BLAKE2b-256 e5bf1a575c9a27ca9340708c2b4adb18ac89069f414d254a7bb6cb72ebda34dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6491c8e4b5cb2d9c92c2c135342042bd1326b7f35a3d67e9541ffca7d7023e13
MD5 d04b8d97d8e5cf6184050141c0e605ca
BLAKE2b-256 698917c5eed4d1e8122e5173ffa73fb382aee4869d669a5312b389d2f08d4297

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.0-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 163bc210ed43b1cc8e57463b35b9f3eb8a47409570dc700d8d3e13369b900ff2
MD5 b8b1e0fb20aa8e31142afab63c788f6e
BLAKE2b-256 6c669736cbeacd99a8b2df664922d4778cf12ff10a60a9630e4a0a381c345c53

See more details on using hashes here.

File details

Details for the file pxblat-1.1.0-cp310-cp310-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for pxblat-1.1.0-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 4717df7c65bff53e2c64d176ff2ccea31d728dc45a0931a97ce96ceca6b14fc2
MD5 efd7c39ed742b115479d9c7f1246f7c1
BLAKE2b-256 8f10f9d4c6335e305310e8c4f93ecf5754bf1bb2a27df737daad9b54130efc3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 17f37fca1dbd25d1baa70d28b54a6174021bba27667622a58e1cd8872f69b79b
MD5 f8e94566d85735dc5e3104c1e206c42e
BLAKE2b-256 42afa8c224f2375d14dc517812192256ad89d66b361c85e972fac9123412f524

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.0-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 2df37ed21729be8984579a9695eedb765478fb86c51498c43fdab6b33a11c3b7
MD5 c41351aebc855a3693c1de1a33585103
BLAKE2b-256 e18c575ddf79975b21d662eced5639131f5861f0b1ecdac16e8d974b753fc4f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pxblat-1.1.0-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 1a15772d500cc29973a3ef1ac7875f0085687176c477c48beb9b742173407b7a
MD5 551de7c8e2d0c07831502bdf6fa7d237
BLAKE2b-256 3bc14a311d2a6a373ccb23f09de53d4315c57c0eda99b92d5d8b3a1fed7b701a

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