This library provides Rust implementations of algorithms and data structures useful for bioinformatics. All provided implementations are rigorously tested via continuous integration.
Please see the API documentation for available features and examples of how to use them.
When using Rust-Bio, please cite the following article:
Köster, J. (2016). Rust-Bio: a fast and safe bioinformatics library. Bioinformatics, 32(3), 444-446.
Further, you can cite the used versions via DOIs:
Any contributions are welcome, from a simple bug report to full-blown new modules:
If you find a bug and don't have the time or in-depth knowledge to fix it, just check if you can add info to an existing issue and otherwise file a bug report with as many infos as possible.
Pull requests are welcome if you want to contribute fixes, documentation, or new code. Before making commits, it would be helpful to first install pre-commit
to avoid failed continuous integration builds due to issues such as formatting:
- Install
pre-commit
(see pre-commit.com/#installation) - Run
pre-commit install
in the rust-bio base directory
Depending on your intended contribution frequency, you have two options for opening pull requests:
- For one-time contributions, simply fork the repository, apply your changes to a branch in your fork and then open a pull request.
- If you plan on contributing more than once, become a contributor by saying hi on the
rust-bio
Discord server, Together with a short sentence saying who you are and mentioning what you want to contribute. We'll add you to the team. Then, you don't have to create a fork, but can simply push new branches into the main repository and open pull requests there.
If you want to contribute and don't know where to start, have a look at the roadmap.
Every public function and module should have documentation comments.
Check out which types of comments to use where.
In rust-bio
, documentation comments should:
- explain functionality
- give at least one useful example of how to use it (best as doctests,
that run during testing, and using descriptive
expect()
statements for handling anyErr()
s that might occur) - describe time and memory complexity listed (where applicable)
- cite and link sources and explanations for data structures, algorithms or code (where applicable)
For extra credit, feel free to familiarize yourself with:
- the Rust documentation conventions
- the Rust API documentation guidelines
Currently the minimum supported Rust version is 1.65.0.
Licensed under the MIT license http://opensource.org/licenses/MIT. This project may not be copied, modified, or distributed except according to those terms.