Skip to content
 
 

Repository files navigation

brucemoran/Singularity

A curated collection of Apptainer/Singularity recipes for bioinformatics and cancer genomics on HPC systems.

Containers are built, tested, scanned, signed, and published to GitHub Container Registry from versioned recipes in recipes/.

Quick Start

Pull a published image:

apptainer pull bwa.sif oras://ghcr.io/brucemoran/singularity/bwa--0-7-17:latest
apptainer exec bwa.sif bwa mem ref.fa r1.fastq.gz r2.fastq.gz > aligned.sam

Build locally from the canonical recipes/ tree:

git clone https://github.com/brucemoran/Singularity
cd Singularity
sudo apptainer build bwa.sif recipes/aligners/bwa/bwa_0.7.17.def

Inspect metadata and provenance:

apptainer inspect bwa.sif
apptainer verify bwa.sif

Repository Layout

  • recipes/: canonical, versioned recipe source tree for all new work
  • catalogue.md: auto-generated published container catalogue
  • tests/: smoke tests, tiny FASTA/FASTQ fixtures, and tooling tests
  • examples/: Nextflow, Snakemake, SLURM, and WDL usage examples
  • utilities/: helper scripts for labels, linting, catalogue generation, and module generation
  • docs/: cluster, security, and base-image policy documentation
  • scs/: legacy active recipe tree retained for compatibility and migration
  • shub/: archived Singularity Hub-era definitions

Catalogue

The authoritative published image list lives in catalogue.md.

It is generated from %labels in recipes/**/*.def, so image metadata, pull commands, and documentation stay aligned.

To refresh locally:

python utilities/generate_catalogue.py --output catalogue.md

CI/CD Pipeline

Recipe changes flow through these stages:

  1. lint.yml: validates naming, labels, pinning, and recipe policy before build.
  2. build.yml: builds changed recipes with Apptainer.
  3. test.yml: runs smoke tests and tooling tests.
  4. security-scan.yml: generates SBOMs and scans for CVEs with Syft and Grype.
  5. publish.yml: pushes signed .sif artifacts to GHCR via ORAS and verifies the published artifact by pulling it back.
  6. catalogue.yml: refreshes catalogue.md from recipe metadata.

Cluster Usage

Contributing

See CONTRIBUTING.md for recipe conventions, label schema, policy checks, and local validation steps.

Legacy Trees

scs/ and shub/ are retained to preserve the original repository history and to support staged migration. New recipes should be added under recipes/, and new automation should target recipes/ first.

About

Singularity recipes

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages