Thank you for your interest in contributing to AcinetoScope! We welcome contributions from researchers, clinicians, and developers working to understand and combat Acinetobacter baumannii infections. Whether you're fixing bugs, adding features, improving documentation, or reporting issues, your help is invaluable.
- Code of Conduct
- How Can I Contribute?
- Reporting Bugs
- Suggesting Features
- Contributing Code
- Development Setup
- Coding Style
- Pull Request Process
- Questions?
This project adheres to a Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to brownbeckley94@gmail.com.
If you find a bug, please create an issue with:
- Clear title describing the problem
- Steps to reproduce with example commands
- Expected vs actual behavior
- Environment details: OS, AcinetoScope version, Conda version
- Error logs or screenshots
Before submitting, please check if the issue already exists.
We're always looking to improve AcinetoScope. Feature suggestions should include:
- Clear description of the feature
- Use case - why it would be valuable (e.g., new typing schemes, outbreak detection, carbapenemase prediction)
- Potential implementation ideas (if you have any)
- Alternative solutions you've considered
- Fork and clone the repository:
git clone https://github.com/YOUR_USERNAME/acinetoscope.git
cd acinetoscope- Set up the development environment:
# Using Conda (recommended)
conda env create -f environment.yml
conda activate acinetoscope
pip install -e .- Install additional databases (for testing):
# AMR database (if using AMRFinderPlus)
acinetoscope --update-amr-db
# ABRicate databases (if using ABRicate for virulence/plasmid screening)
abricate --setupdb- Follow PEP 8 for Python code
- Use meaningful variable names
- Add docstrings to functions and classes
- Keep functions modular and focused on single tasks
- Add comments for complex logic
- Use type hints where possible
Example:
def process_sample(sample_path: str, output_dir: str, threads: int = 4) -> dict:
"""
Process a single A. baumannii genome through all AcinetoScope modules.
Args:
sample_path: Path to the input FASTA file
output_dir: Directory to write results
threads: Number of CPU threads to use
Returns:
Dictionary containing all analysis results
"""
# Implementation hereUse clear, descriptive commit messages:
- Good:
Add OCL typing module for A. baumannii - Good:
Fix carbapenemase detection false positives - Avoid:
Update codeorFix bug
Before submitting, ensure your changes:
- Don't break existing functionality
- Include tests if adding new features
- Pass all existing tests
- Create a feature branch:
git checkout -b feature/your-feature-name-
Make your changes and commit them with clear messages.
-
Push to your fork:
git push origin feature/your-feature-name-
Open a Pull Request against the
mainbranch. -
PR Description should include:
- What the changes do
- Why they're needed
- Any breaking changes
- Screenshots for UI changes (if applicable)
-
Review Process:
- Maintainers will review your PR
- Address any feedback or questions
- PR will be merged once approved
If you have questions about contributing:
- Open a GitHub Discussion
- Email Brown Beckley at brownbeckley94@gmail.com
- Check the README for more information
All contributors will be acknowledged in the project. We appreciate your help in making AcinetoScope better!
Thank you for contributing to the fight against multidrug-resistant Acinetobacter baumannii! 🦠🔬