Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
149 commits
Select commit Hold shift + click to select a range
e692746
add database intialisation
karlnyr Jan 22, 2026
e9b9051
misc changes
karlnyr Jan 22, 2026
3ef6c8d
jinja move
karlnyr Feb 23, 2026
b268caf
major update
karlnyr Feb 23, 2026
40e9eab
Add Singularity container infrastructure for all bioinformatics tools
karlnyr Feb 24, 2026
9e1e36b
add build to gitignore
karlnyr Feb 24, 2026
129bad1
Add GitHub Actions workflows to build and push container images
karlnyr Feb 24, 2026
93ae83f
add 'build' directory to .gitignore
karlnyr Feb 24, 2026
f1ed4ba
Merge branch 'master' into rc5.0.0
karlnyr Feb 24, 2026
2288235
Merge branch 'rc5.0.0' into swap-to-jinja-rendering
karlnyr Feb 24, 2026
8f31a69
Refactor code to python 3.12
karlnyr Feb 23, 2026
fd6b788
add build to gitignore
karlnyr Feb 23, 2026
5ca235f
major update
karlnyr Feb 23, 2026
0b11d6e
remove build from remote
karlnyr Feb 23, 2026
1cbe486
remove typing
karlnyr Feb 23, 2026
f4a71e8
transfer workflow to python 3.12
karlnyr Feb 23, 2026
91a7653
flask is gone
karlnyr Feb 23, 2026
9e04778
f-string refactor
karlnyr Feb 23, 2026
3d34a49
fix python version in conda env file
karlnyr Feb 23, 2026
afe41ac
update quast for python 3.8+
karlnyr Feb 23, 2026
546c2fc
fix channels
karlnyr Feb 23, 2026
4c6e589
putting
karlnyr Feb 23, 2026
ba11f58
testing python 3.11
karlnyr Feb 23, 2026
a2250de
Update Python version to 3.12 in conda environment
karlnyr Feb 24, 2026
09c6cb0
add 'build' directory to .gitignore
karlnyr Feb 24, 2026
7d2dce6
Add GitHub Actions workflows to build and push container images
karlnyr Feb 24, 2026
21dfe5d
Merge branch 'rc5.0.0' into python-3.12-migration
karlnyr Feb 24, 2026
b688a57
adding incorrectly removed modules
karlnyr Feb 24, 2026
637bb22
Move artwork and unique_references into package; drop setup.py and MA…
karlnyr Feb 24, 2026
b374621
Use uv sync for CI test workflow; drop mamba and environment.yml
karlnyr Feb 24, 2026
64a9aa8
Exclude .venv from flake8 scan in CI
karlnyr Feb 24, 2026
b364cab
pin python version
karlnyr Feb 24, 2026
1d0abec
Remove distutils/sysconfig and conda fallbacks from test fixtures
karlnyr Feb 24, 2026
69eeb26
add flask
karlnyr Feb 24, 2026
468c34d
Add flask-sqlalchemy dependency to project
karlnyr Feb 24, 2026
12f2819
Fix test failures for Python 3.12 compatibility
karlnyr Feb 24, 2026
ff3137f
Add coveralls to dev dependencies
karlnyr Feb 24, 2026
9fb83a9
Switch container base to mambaorg/micromamba to reduce CVEs
karlnyr Feb 25, 2026
442290b
Auto-bind finishdir in singularity exec calls
karlnyr Feb 25, 2026
6b4a2d7
Replace drop/recreate with truncate+reload for profile table updates
karlnyr Feb 25, 2026
ab8ecc9
Add exclusive reference-update lock via SystemLock table
karlnyr Feb 25, 2026
2a554b5
Replace Flask/Flask-SQLAlchemy deps with Jinja2 in requirements
karlnyr Feb 25, 2026
8104a1d
remove flask app
karlnyr Feb 25, 2026
2d8d656
Fix Python 3.6 incompatible union type annotations
karlnyr Feb 25, 2026
b849581
Downgrade jinja2 to 3.0.3 for Python 3.6 compatibility
karlnyr Feb 25, 2026
c224cfe
Fix remaining Python 3.6 / SQLAlchemy 1.4 import errors
karlnyr Feb 25, 2026
18430e7
Export ENGINE from __init__ and wire it into DB_Manipulator
karlnyr Feb 25, 2026
64952f7
Merge branch 'swap-to-jinja-rendering' into reference-db-refactor-v2
karlnyr Feb 25, 2026
79457dd
Merge pull request #229 from Clinical-Genomics/reference-db-refactor-v2
karlnyr Feb 25, 2026
8fbde1a
Merge pull request #227 from Clinical-Genomics/swap-to-jinja-rendering
karlnyr Feb 25, 2026
78047ff
Merge rc5.0.0 into python-3.12-migration
karlnyr Feb 25, 2026
6040060
add werkzeug
karlnyr Feb 25, 2026
8ce01e0
Fix SyntaxWarning for invalid escape sequences
karlnyr Feb 26, 2026
4539405
lint
karlnyr Feb 26, 2026
10fd3fc
remove coveralls and coverage
karlnyr Feb 26, 2026
57291f7
remove not needed dependencies since we will migrate to using containers
karlnyr Feb 26, 2026
8b19a57
Update README and install.sh for Python 3.12 / pyproject.toml migration
karlnyr Feb 26, 2026
bda72c2
Switch to uv for package installation, update docs for MySQL
karlnyr Feb 26, 2026
f230a7f
Simplify install.sh to clone repo and run uv sync
karlnyr Feb 26, 2026
25f2668
uv req note
karlnyr Feb 26, 2026
0bfc80e
fix note syntax
karlnyr Feb 26, 2026
52c1857
Fix links and update note type in README.md
karlnyr Feb 26, 2026
ce3675e
artwork was moved
karlnyr Feb 26, 2026
e119148
Remove unused genologics dependency
karlnyr Feb 26, 2026
a9d8b49
remove genologics from lock
karlnyr Feb 26, 2026
e4ba589
Remove genologics from config and all referencing code
karlnyr Feb 26, 2026
2bae9c6
remove clarity lims requirement
karlnyr Feb 26, 2026
b92d3c1
Remove unused coverage dev dependencies
karlnyr Feb 26, 2026
bad62e0
Remove all eval() calls; replace with explicit SQLAlchemy expressions
karlnyr Feb 26, 2026
89129b0
Merge Profiles/Novel classes and switch to bulk session inserts
karlnyr Feb 27, 2026
47f9d1b
Refactor DB_Manipulator methods for clarity and consistency; update t…
karlnyr Feb 27, 2026
4bac5a4
Refactor tests: Remove obsolete test files and consolidate fixtures
karlnyr Feb 27, 2026
83135f4
Refactor DB_Manipulator: Replace direct connection execution with ses…
karlnyr Feb 27, 2026
042524d
Refactor tests: Remove xfail markers and improve mock implementations…
karlnyr Feb 27, 2026
708eb4b
Migrate from setup.py/pip to pyproject.toml/uv for Python 3.12
karlnyr Feb 27, 2026
ed3c7d0
Refactor singularity adapter paths in configuration and job creation …
karlnyr Mar 2, 2026
35023e5
Initial plan
Copilot Mar 4, 2026
cbaf184
Rename .python_version to .python-version and update CI to reference it
Copilot Mar 4, 2026
4947e55
Merge pull request #236 from Clinical-Genomics/copilot/sub-pr-230
karlnyr Mar 4, 2026
b35df99
Update pyproject.toml
karlnyr Mar 4, 2026
7a1956e
Merge branch 'python-3.12-migration' into feat/migrate-to-pyproject-uv
karlnyr Mar 4, 2026
33a349f
Update .github/workflows/run_tests.yml
karlnyr Mar 4, 2026
4ee8d76
skip generation of singularity related binds, move the skip of genolo…
karlnyr Mar 4, 2026
0323b85
Merge pull request #230 from Clinical-Genomics/feat/migrate-to-pyproj…
karlnyr Mar 5, 2026
8974738
Merge pull request #226 from Clinical-Genomics/python-3.12-migration
karlnyr Mar 5, 2026
b574926
Rename CLI entry point from microSALT to microsalt
karlnyr Mar 5, 2026
82b5870
Refactor config system: Pydantic model, required --config flag, attri…
karlnyr Mar 5, 2026
8f90c26
Inject config sub-models instead of full MicroSALTConfig into classes
karlnyr Mar 5, 2026
191ab05
update lock
karlnyr Mar 5, 2026
68778bf
remove incorrectly named python version file
karlnyr Mar 6, 2026
329d7d4
Refactor authentication and client configuration: replace PubMLST and…
karlnyr Mar 6, 2026
60eeb4e
remove mocks, integration test of blast scraper
karlnyr Mar 6, 2026
51640f5
Refactor test fixtures to use type hints and encapsulate BLAST scrapi…
karlnyr Mar 6, 2026
3047a01
context
karlnyr Mar 6, 2026
2412d4f
Merge branch 'rc5.0.0' into singularity-containers
karlnyr Mar 6, 2026
6a7d9c8
add singularity tests
karlnyr Mar 6, 2026
e8dc784
remove reduntant fixture
karlnyr Mar 6, 2026
b86ffd9
update fixture
karlnyr Mar 6, 2026
3bd6fbb
f strings
karlnyr Mar 6, 2026
b6315b8
add r-base
karlnyr Mar 6, 2026
dc114ee
Merge pull request #228 from Clinical-Genomics/singularity-containers…
karlnyr Mar 9, 2026
b9ffb6a
Merge branch 'rc5.0.0' into feat/refactor-config-system
karlnyr Mar 9, 2026
3dc55d5
Include Singularity and Containers classes into config setup, and upd…
karlnyr Mar 9, 2026
e54f71a
Merge pull request #239 from Clinical-Genomics/feat/refactor-config-s…
karlnyr Mar 9, 2026
7f0bbb0
Merge pull request #238 from Clinical-Genomics/feat/rename-cli-to-mic…
karlnyr Mar 9, 2026
4ddf050
lock update
karlnyr Mar 9, 2026
5ec64e3
Merge branch 'rc5.0.0' of github.com:Clinical-Genomics/microSALT into…
karlnyr Mar 9, 2026
ee821c8
Remove conda prefix dependency and update job finish command to use m…
karlnyr Mar 9, 2026
95d2af4
Refactor job finish command to dynamically locate microsalt binary us…
karlnyr Mar 9, 2026
521461d
Add method to write mailjob script and corresponding tests
karlnyr Mar 10, 2026
56e7125
Merge pull request #240 from Clinical-Genomics/fix/remove-conda-prefi…
karlnyr Mar 10, 2026
e3e73e2
Refactor logger setup
karlnyr Mar 10, 2026
fc65d73
pass config object decorator and tests
karlnyr Mar 10, 2026
70b575c
create tables from base, add to setup
karlnyr Mar 11, 2026
a0ad807
comparison of typing reports script
karlnyr Mar 11, 2026
2525e25
Add setup configuration fixtures and setup command create table test
karlnyr Mar 11, 2026
faa6214
format and imports
karlnyr Mar 11, 2026
22db7e8
remove from test import
karlnyr Mar 11, 2026
679509a
remove adapters from folder
karlnyr Mar 11, 2026
83db393
Replace 'rauth' with 'requests-oauthlib' for OAuth1 support and refac…
karlnyr Mar 12, 2026
cf33026
remove logfile
karlnyr Mar 12, 2026
e607e89
replace post functions with get
karlnyr Mar 12, 2026
4e21acd
Add signature_type='query' for OAuth1Session to support BIGSdb GET re…
karlnyr Mar 12, 2026
4abf6fc
add conda to env to run commands not set for exec
karlnyr Mar 12, 2026
76104b4
Add script to migrate data from SQLite to MySQL with idempotent behavior
karlnyr Mar 12, 2026
a1eb8d7
Update SQLite argument handling in migration script to accept bare fi…
karlnyr Mar 12, 2026
41e5092
fix organism name length
karlnyr Mar 12, 2026
6f6458e
remove varchar modification
karlnyr Mar 12, 2026
6af6074
update orm models
karlnyr Mar 12, 2026
8daee3d
increase string length for sequencing and library preparation methods
karlnyr Mar 12, 2026
5843b4a
even higher
karlnyr Mar 12, 2026
6c0f872
data integrity issue in the database
karlnyr Mar 12, 2026
c7955f3
increase instance string length in Resistances and Expacs models
karlnyr Mar 12, 2026
0a1d9d3
refactor(db): rename read/query operations to read_ prefix
karlnyr Mar 12, 2026
d061811
refactor(db): rename update operations to set_ prefix
karlnyr Mar 12, 2026
c81ba81
refactor(db): rename delete operations to delete_ prefix
karlnyr Mar 12, 2026
bc356be
fix: rename remaining dbm.exists() call missed in commit 1
karlnyr Mar 12, 2026
32ca6b0
refactor(db): add per-model CRUD methods alongside generic ones
karlnyr Mar 13, 2026
bb5f530
refactor(db): migrate all callers to per-model CRUD methods\n\nAll ca…
karlnyr Mar 13, 2026
c2aad03
refactor(db): remove generic ORM methods, keep add_rec for ProfileTab…
karlnyr Mar 13, 2026
a9a2dcb
lint and organize
karlnyr Mar 13, 2026
346b60c
refactor(db): replace _add_orm_record with per-model factories + sess…
karlnyr Mar 13, 2026
e5e1bfd
refactor: enhance error handling and clean up code structure
karlnyr Mar 13, 2026
bf169a4
refactor(scraper): streamline blast file processing and enhance hit p…
karlnyr Mar 13, 2026
8dcda7c
Merge pull request #242 from Clinical-Genomics/crud-separation
karlnyr Mar 13, 2026
116f331
refactor: streamline project and sample creation logic in job_creator…
karlnyr Mar 13, 2026
beb9951
remove read_exists, replace with get function
karlnyr Mar 13, 2026
70f0391
get functions
karlnyr Mar 13, 2026
4f49459
Merge pull request #243 from Clinical-Genomics/crud-separation
karlnyr Mar 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 10 additions & 25 deletions .github/workflows/run_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,24 @@ name: Tests
on: [push]


env:
CONDA_PREFIX: /home/runner/work/microSALT/microSALT/tests
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}

jobs:
build-linux:
runs-on: ubuntu-latest
container:
image: python:3.6-slim


steps:
- uses: actions/checkout@v4

- name: Create conda/mamba environment using micromamba
uses: mamba-org/setup-micromamba@v1
with:
environment-file: environment.yml
cache-downloads: true
- name: Install microSALT
run: |
mkdir ~/.microSALT && cp configExample.json ~/.microSALT/config.json
GITHUB_BRANCH=${GITHUB_REF##*/}
pip install -r requirements.txt -r requirements-dev.txt
pip install -U .
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Set up Python
run: uv python install
- name: Install microSALT and dev dependencies
run: uv sync --dev
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
uv run flake8 . --exclude=.venv --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
uv run flake8 . --exclude=.venv --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: |
pytest --cov=microSALT tests
- name: Run Coveralls
run: |
coveralls
uv run pytest tests
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ microSALT/__pycache__
microSALT.log
instance/sqlalchemy_config.py
instance/paths.yml
unique_references/*.n*
microSALT/unique_references/*.n*
.pytest_cache/
*.egg-info
*pyc
Expand All @@ -16,3 +16,4 @@ tmp.json
.venv/
.vscode*
.markdownlint.jsonc
build
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.12
8 changes: 0 additions & 8 deletions MANIFEST.in

This file was deleted.

34 changes: 18 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
[![Build status](https://github.com/clinical-genomics/microsalt/actions/workflows/run_tests.yml/badge.svg)](https://github.com/clinical-genomics/microsalt/actions/workflows/run_tests.yml)
[![Coverage Status](https://coveralls.io/repos/github/Clinical-Genomics/microSALT/badge.svg?branch=master)](https://coveralls.io/github/Clinical-Genomics/microSALT?branch=master)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4026043.svg)](https://doi.org/10.5281/zenodo.4026043)

<p align="center">
<a href="https://github.com/sylvinite/microSALT">
<img width="1000" height="250" src="artwork/microsalt.jpg"/>
<a href="https://github.com/Clinical-Genomics/microSALT">
<img width="1000" height="250" src="microSALT/artwork/microsalt.jpg"/>
</a>
</p>

Expand All @@ -16,16 +15,20 @@ sample, determines a sample's organism specific sequence type, and its
resistance pattern. microSALT also provides a database storage solution and
report generation of these results._

_microSALT uses a combination of python, sqLite and flask. Python is used for
the majority of functionality, the database is handled through sqLite and the
front-end is handled through flask. All analysis activity by microSALT requires
a SLURM cluster._
_microSALT uses a combination of Python, MySQL and Jinja2. Python is used for
the majority of functionality, the database is handled through MySQL via
SQLAlchemy and reports are rendered through Jinja2. All analysis activity by
microSALT requires a SLURM cluster._

## Quick installation

1. `yes | bash <(curl https://raw.githubusercontent.com/Clinical-Genomics/microSALT/master/install.sh)`
2. `cp configExample.json $HOME/.microSALT/config.json`
3. `vim $HOME/.microSALT/config.json`
> [!IMPORTANT]
> This install requires `uv` to be installed on the system. For installation instructions, see [https://docs.astral.sh/uv/getting-started/installation/](https://docs.astral.sh/uv/getting-started/installation/).

1. `bash <(curl https://raw.githubusercontent.com/Clinical-Genomics/microSALT/master/install.sh)`
2. `source microSALT/.venv/bin/activate`
3. `cp microSALT/configExample.json $HOME/.microSALT/config.json`
4. `vim $HOME/.microSALT/config.json`

## Configuration

Expand All @@ -46,11 +49,11 @@ export MICROSALT_CONFIG=/MY/FAV/FOLDER/config.json

## Usage

- `microSALT analyse` contains functions to start sbatch job(s) & produce
- `microsalt analyse` contains functions to start sbatch job(s) & produce
output to `folders['results']`. Afterwards the parsed results are uploaded
to the SQL back-end and produce reports (HTML), which are then automatically
e-mailed to the user.
- `microSALT utils` contains various functionality, including generating the
- `microsalt utils` contains various functionality, including generating the
sample description json, manually adding new reference organisms and
re-generating reports.

Expand All @@ -72,13 +75,12 @@ Any definitions will work, as long as they retain the same formatting.
### Hardware

- A [SLURM](https://slurm.schedmd.com) enabled HPC system
- A (clarity) LIMS server

### Software

- [Conda](https://conda.io) >= 3.6
- Python 3.6
- [SQLite](https://www.sqlite.org)
- [uv](https://docs.astral.sh/uv) >= 0.4
- Python >= 3.10
- [MySQL](https://www.mysql.com) server

## Contributing to this repo

Expand Down
29 changes: 20 additions & 9 deletions configExample.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@
"results": "/tmp/MLST/results/",
"_comment": "Report collection folder",
"reports": "/tmp/MLST/reports/",
"_comment": "Log file position and name",
"log_file": "/tmp/microsalt.log",
"_comment": "Root folder for input fasta sequencing data",
"seqdata": "/tmp/projects/",
"_comment": "ST profiles. Each ST profile file under 'profiles' have an identicial folder under references",
Expand Down Expand Up @@ -69,12 +67,6 @@
"bp_50x_warn": 50,
"bp_100x_warn": 20
},
"_comment": "Genologics temporary configuration file",
"genologics": {
"baseuri": "https://lims.facility.se/",
"username": "limsuser",
"password": "mypassword"
},
"_comment": "Credentials",
"pubmlst": {
"client_id": "",
Expand All @@ -83,5 +75,24 @@
"pasteur": {
"client_id": "",
"client_secret": ""
},
"_comment": "Singularity runtime configuration",
"singularity": {
"binary": "/usr/bin/singularity",
"_comment": "Paths that must be visible inside every container (passed as --bind)",
"bind_paths": ["/data"],
"_comment": "Adapter path inside the trimmomatic container (bioconda default)",
"trimmomatic_adapters": "/opt/conda/share/trimmomatic/adapters/"
},
"_comment": "Absolute paths to pre-built Singularity SIF images on the cluster",
"containers": {
"skesa": "/fs1/resources/containers/skesa_2.5.1.sif",
"blast": "/fs1/resources/containers/blast_2.12.0.sif",
"bwa": "/fs1/resources/containers/bwa_0.7.17.sif",
"samtools": "/fs1/resources/containers/samtools_1.13.sif",
"picard": "/fs1/resources/containers/picard_2.20.3.sif",
"trimmomatic": "/fs1/resources/containers/trimmomatic_0.39.sif",
"quast": "/fs1/resources/containers/quast_5.3.0.sif"
}
}
}

19 changes: 19 additions & 0 deletions containers/Dockerfile.blast
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# NCBI BLAST 2.12.0 — nucleotide BLAST search and database indexing
# Build: docker build -f Dockerfile.blast -t blast:2.12.0 .
# Convert: singularity pull --name blast_2.12.0.sif docker://your-repo/blast:2.12.0
FROM mambaorg/micromamba:1-bookworm-slim

ARG MAMBA_DOCKERFILE_ACTIVATE=1

USER root
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
USER $MAMBA_USER

RUN micromamba install -y -n base -c conda-forge -c bioconda \
blast=2.12.0 \
&& micromamba clean -afy

ENV PATH="/opt/conda/bin:$PATH"
19 changes: 19 additions & 0 deletions containers/Dockerfile.bwa
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# BWA 0.7.17 — short read aligner (mem mode) and reference indexing
# Build: docker build -f Dockerfile.bwa -t bwa:0.7.17 .
# Convert: singularity pull --name bwa_0.7.17.sif docker://your-repo/bwa:0.7.17
FROM mambaorg/micromamba:1-bookworm-slim

ARG MAMBA_DOCKERFILE_ACTIVATE=1

USER root
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
USER $MAMBA_USER

RUN micromamba install -y -n base -c conda-forge -c bioconda \
bwa=0.7.17 \
&& micromamba clean -afy

ENV PATH="/opt/conda/bin:$PATH"
23 changes: 23 additions & 0 deletions containers/Dockerfile.picard
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Picard 2.20.3 — duplicate marking and insert size metrics
# Build: docker build -f Dockerfile.picard -t picard:2.20.3 .
# Convert: singularity pull --name picard_2.20.3.sif docker://your-repo/picard:2.20.3
#
# The bioconda picard package installs a wrapper script that calls the JAR via
# the bundled Java runtime; no separate openjdk install is needed.
FROM mambaorg/micromamba:1-bookworm-slim

ARG MAMBA_DOCKERFILE_ACTIVATE=1

USER root
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
USER $MAMBA_USER

RUN micromamba install -y -n base -c conda-forge -c bioconda \
picard=2.20.3 \
r-base=4.1.1 \
&& micromamba clean -afy

ENV PATH="/opt/conda/bin:$PATH"
21 changes: 21 additions & 0 deletions containers/Dockerfile.quast
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# QUAST 5.3.0 — assembly quality assessment
# Build: docker build -f Dockerfile.quast -t quast:5.3.0 .
# Convert: singularity pull --name quast_5.3.0.sif docker://your-repo/quast:5.3.0
#
# The entry point is quast.py (as installed by bioconda).
FROM mambaorg/micromamba:1-bookworm-slim

ARG MAMBA_DOCKERFILE_ACTIVATE=1

USER root
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
USER $MAMBA_USER

RUN micromamba install -y -n base -c conda-forge -c bioconda \
quast=5.3.0 \
&& micromamba clean -afy

ENV PATH="/opt/conda/bin:$PATH"
19 changes: 19 additions & 0 deletions containers/Dockerfile.samtools
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# SAMtools 1.13 — SAM/BAM processing, indexing, and statistics
# Build: docker build -f Dockerfile.samtools -t samtools:1.13 .
# Convert: singularity pull --name samtools_1.13.sif docker://your-repo/samtools:1.13
FROM mambaorg/micromamba:1-bookworm-slim

ARG MAMBA_DOCKERFILE_ACTIVATE=1

USER root
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
USER $MAMBA_USER

RUN micromamba install -y -n base -c conda-forge -c bioconda \
samtools=1.13 \
&& micromamba clean -afy

ENV PATH="/opt/conda/bin:$PATH"
19 changes: 19 additions & 0 deletions containers/Dockerfile.skesa
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# SKESA 2.5.1 — de novo assembler
# Build: docker build -f Dockerfile.skesa -t skesa:2.5.1 .
# Convert: singularity pull --name skesa_2.5.1.sif docker://your-repo/skesa:2.5.1
FROM mambaorg/micromamba:1-bookworm-slim

ARG MAMBA_DOCKERFILE_ACTIVATE=1

USER root
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
USER $MAMBA_USER

RUN micromamba install -y -n base -c conda-forge -c bioconda \
skesa=2.5.1 \
&& micromamba clean -afy

ENV PATH="/opt/conda/bin:$PATH"
23 changes: 23 additions & 0 deletions containers/Dockerfile.trimmomatic
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Trimmomatic 0.39 — quality trimming for paired-end Illumina reads
# Build: docker build -f Dockerfile.trimmomatic -t trimmomatic:0.39 .
# Convert: singularity pull --name trimmomatic_0.39.sif docker://your-repo/trimmomatic:0.39
#
# Adapter files are located inside the container at:
# /opt/conda/share/trimmomatic/adapters/
# Set singularity.trimmomatic_adapters in your config to this path.
FROM mambaorg/micromamba:1-bookworm-slim

ARG MAMBA_DOCKERFILE_ACTIVATE=1

USER root
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
USER $MAMBA_USER

RUN micromamba install -y -n base -c conda-forge -c bioconda \
trimmomatic=0.39 \
&& micromamba clean -afy

ENV PATH="/opt/conda/bin:$PATH"
18 changes: 1 addition & 17 deletions environment.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,3 @@
name: P_microSALT
channels:
- conda-forge
- bioconda
- defaults
dependencies:
- python=3.6
- blast=2.12.0
- bwa=0.7.17
- picard=2.20.3
- pigz>=2.4
- quast=5.0.2
- samtools=1.13
- trimmomatic=0.39
- r-base=4.1.1
- openjdk=11.0.9.1
- pytest=6.2.5
- pytest-cov=2.12.1
- skesa=2.5.1
- python=3.12
Loading
Loading