Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

PxBLAT: An Efficient and Ergonomic Python Binding Library for BLAT

License

NotificationsYou must be signed in to change notification settings

ylab-hi/pxblat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logoPxBLATsocial

An Efficient and Ergonomic Python Binding Library for BLAT

pythonc++cpypicondaLinuxmacOSpyversiontestsCodecovdocsdownloadcondadownloadprecommitruffreleaseopen-issueclose-issueactivitylastcommitopullall contributors

Why PxBLAT?

When conducting extensive queries, using theblat ofBLAT 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 utilizingblat or combininggfServer withgfClient.Indeed,blat is a program that launchesgfServer, conducts the sequence query viagfClient, and then proceeds to terminate the server.

This approach is far from ideal when performing numerous queries that aren't grouped sinceblat repeatedly initializes and shuts downgfServer 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 initializinggfServer once and invokinggfClient multiple times for the queries.However,gfServer andgfClient are only accessible via the command line.This necessitates managing system calls (for instance,subprocess oros.system), intermediate temporary files, and format conversion, further diminishing performance.

That is whyPxBLAT holds its position.It resolves the issues mentioned above while introducing handy features likeport 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 thepublished to read the paper.

@article{li2024pxblat,author ={Li, Yangyang and Yang, Rendong},title ={{PxBLAT: an efficient python binding library for BLAT}},journal ={BMC Bioinf.},volume ={25},number ={1},pages ={1--8},year ={2024},month ={12},issn ={1471-2105},publisher ={BioMed Central},doi ={10.1186/s12859-024-05844-0}}

🚀Getting Started

Welcome to PxBLAT! To kickstart your journey and get the most out of this tool, we have prepared a comprehensivedocumentation.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 toopen 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 thedocument 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 orbugfix-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 andexecutables 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

[8]ページ先頭

©2009-2025 Movatter.jp