Skip to content

cbg-ethz/sr2silo

Repository files navigation

sr2silo

Logo

Project Status: WIP – This project is currently under active development. CI/CD Black Pytest Ruff Pyright

Wrangling Short-Read Genomic Alignments for SILO Database

This project will wrangle short-read genomic alignments, for example from wastewater-sampling, into a format for easy import into the SILO sequencing database.

Usage of the V-Pipe Docker

The V-Pipe Docker is designed to process a single .bam file and upload the results to SILO.

Project Organization

  • .github/workflows: Contains GitHub Actions used for building, testing, and publishing. install, and whether or not to mount the project directory into the container.
  • .vscode/settings.json: Contains VSCode settings specific to the project, such as the Python interpreter to use and the maximum line length for auto-formatting.
  • src: Place new source code here.
  • scripts: Place new source code here, temporary and intermediate works.
  • tests: Contains Python-based test cases to validate source code.
  • pyproject.toml: Contains metadata about the project and configurations for additional tools used to format, lint, type-check, and analyze Python code.

Setting up the repository

To build the package and maintain dependencies, we use Poetry. In particular, it's good to install it and become familiar with its basic functionalities by reading the documentation.

Setting up the Development Environment

  1. Create and activate the conda environment from the environment.yml file:
conda env create -f environment.yml
conda activate sr2silo
  1. Set up the environment with development tools:
poetry install --with dev
poetry run pre-commit install

Then, you will be able to run tests:

$ poetry run pytest

... or check the types:

$ poetry run pyright

Alternatively, you may prefer to work with the right Python environment using:

$ poetry shell
$ pytest

Tool Sections

The code quality checks run on GitHub can be seen in

  • .github/workflows/test.yml for the python package CI/CD,

We are using:

  • Ruff to lint the code.
  • Black to format the code.
  • Pyright to check the types.
  • Pytest to run the unit tests code and workflows.
  • Interrogate to check the documentation.

Contributing

This project welcomes contributions and suggestions. For details, visit the repository's Contributor License Agreement (CLA) and Code of Conduct pages.