Skip to content

Latest commit

 

History

History
146 lines (110 loc) · 4.27 KB

File metadata and controls

146 lines (110 loc) · 4.27 KB

Contributing to AcinetoScope

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.

Table of Contents

Code of Conduct

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.

How Can I Contribute?

Reporting Bugs

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.

Suggesting Features

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

Contributing Code

Development Setup

  1. Fork and clone the repository:
git clone https://github.com/YOUR_USERNAME/acinetoscope.git
cd acinetoscope
  1. Set up the development environment:
# Using Conda (recommended)
conda env create -f environment.yml
conda activate acinetoscope
pip install -e .
  1. 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

Coding Style

  • 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 here

Commit Messages

Use clear, descriptive commit messages:

  • Good: Add OCL typing module for A. baumannii
  • Good: Fix carbapenemase detection false positives
  • Avoid: Update code or Fix bug

Testing

Before submitting, ensure your changes:

  • Don't break existing functionality
  • Include tests if adding new features
  • Pass all existing tests

Pull Request Process

  1. Create a feature branch:
git checkout -b feature/your-feature-name
  1. Make your changes and commit them with clear messages.

  2. Push to your fork:

git push origin feature/your-feature-name
  1. Open a Pull Request against the main branch.

  2. PR Description should include:

    • What the changes do
    • Why they're needed
    • Any breaking changes
    • Screenshots for UI changes (if applicable)
  3. Review Process:

    • Maintainers will review your PR
    • Address any feedback or questions
    • PR will be merged once approved

Questions?

If you have questions about contributing:

Recognition

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! 🦠🔬