|
| 1 | +# Contributing to pathotypr |
| 2 | + |
| 3 | +Thank you for your interest in contributing to **pathotypr**! We welcome contributions that help improve the tool, fix bugs, or enhance the documentation. This document outlines the process for contributing and the guidelines to follow. |
| 4 | + |
| 5 | +## Table of Contents |
| 6 | +- [Project Description](#project-description) |
| 7 | +- [How to Contribute](#how-to-contribute) |
| 8 | + - [Reporting Issues](#reporting-issues) |
| 9 | + - [Feature Requests](#feature-requests) |
| 10 | + - [Contributing Code](#contributing-code) |
| 11 | +- [Coding Guidelines](#coding-guidelines) |
| 12 | +- [Setting Up the Development Environment](#setting-up-the-development-environment) |
| 13 | +- [Submitting a Pull Request](#submitting-a-pull-request) |
| 14 | +- [Code of Conduct](#code-of-conduct) |
| 15 | + |
| 16 | +## Project Description |
| 17 | +`pathotypr` is a tool designed to identify **Multi-Nucleotide Variants (MNVs)** within the same codon in genomic sequences. MNVs occur when multiple Single Nucleotide Variants (SNVs) are present within the same codon, leading to the translation of a different amino acid. This tool addresses limitations in current annotation programs like **ANNOVAR** or **SnpEff**, which are primarily designed to work with individual SNVs and might overlook the actual amino acid changes resulting from MNVs. |
| 18 | + |
| 19 | +### Current Limitations |
| 20 | +**IMPORTANT**: This script currently works only with **SNVs** against a reference genome. Insertions and deletions that modify the reading frame are not supported yet. |
| 21 | + |
| 22 | +## How to Contribute |
| 23 | +We appreciate all contributions, whether it’s fixing bugs, proposing new features, improving the documentation, or suggesting a new direction for the tool. |
| 24 | + |
| 25 | +### Reporting Issues |
| 26 | +If you encounter a bug, have a question, or want to request a feature, please [open an issue](https://github.com/PathoGenOmics-Lab/pathotypr/issues) on our GitHub repository. When reporting an issue, please include: |
| 27 | +- A detailed description of the problem. |
| 28 | +- Steps to reproduce the issue. |
| 29 | +- Any relevant logs or screenshots. |
| 30 | +- Version information of `pathotypr` and your operating system. |
| 31 | + |
| 32 | +### Feature Requests |
| 33 | +We welcome suggestions for new features and improvements! Please open an issue labeled **Feature Request** and provide as much detail as possible regarding your suggestion and its potential use cases. |
| 34 | + |
| 35 | +### Contributing Code |
| 36 | +If you’d like to contribute code, follow these steps: |
| 37 | +1. Fork the repository. |
| 38 | +2. Create a new branch for your feature or bugfix (`git checkout -b feature/new-feature`). |
| 39 | +3. Make your changes. |
| 40 | +4. Test your code. |
| 41 | +5. Submit a pull request following the guidelines in the **Submitting a Pull Request** section. |
| 42 | + |
| 43 | +## Coding Guidelines |
| 44 | +- **Code Style**: Follow Rust’s official [Rustfmt style guide](https://github.com/rust-lang/rustfmt) for formatting. |
| 45 | +- **Testing**: Ensure that your code changes include relevant tests. Use `cargo test` to run tests locally before submitting a pull request. |
| 46 | +- **Documentation**: Document all public methods, structs, and modules using doc comments (`///`). |
| 47 | + |
| 48 | +## Setting Up the Development Environment |
| 49 | +1. Clone the repository: |
| 50 | + ```bash |
| 51 | + git clone https://github.com/PathoGenOmics-Lab/pathotypr.git |
| 52 | + cd pathotypr |
| 53 | + ``` |
| 54 | + |
| 55 | +2. Install the necessary dependencies using `cargo`: |
| 56 | + ```bash |
| 57 | + cargo build |
| 58 | + ``` |
| 59 | + |
| 60 | +3. Run the tests to ensure everything is set up correctly: |
| 61 | + ```bash |
| 62 | + cargo test |
| 63 | + ``` |
| 64 | + |
| 65 | +4. You’re ready to start contributing! |
| 66 | + |
| 67 | +## Submitting a Pull Request |
| 68 | +1. Ensure that your code follows the coding guidelines and passes all tests. |
| 69 | +2. Write a clear commit message detailing what your change does. |
| 70 | +3. Submit a pull request (PR) and fill in the PR template. Include a summary of the changes, why they are necessary, and any relevant issue numbers. |
| 71 | +4. A project maintainer will review your PR and provide feedback if needed. |
| 72 | + |
| 73 | +## Code of Conduct |
| 74 | +This project follows the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/version/2/0/code_of_conduct/). By participating, you agree to abide by its terms. Please be respectful and professional in all interactions. |
| 75 | + |
| 76 | +We look forward to your contributions! |
0 commit comments