A tool for HIV drug resistance analysis and visualization developed by the National Microbiology Laboratory, Public Health Agency of Canada
HyRISE (HIV Resistance Interpretation & Scoring Engine) is a command-line tool for HIV drug resistance interpretation and reporting.
It supports two primary workflows:
process: convert Sierra JSON results into MultiQC custom content (*_mqc.json,*_mqc.html), with built-in report generation support.sierra: run SierraLocal on FASTA input and optionally chain directly intoprocess.
The CLI is deterministic by default (no implicit interactive mode), with optional guided mode via --interactive.
pip install hyrisegit clone https://github.com/phac-nml/HyRISE
cd HyRISE
pip install -e .conda create -n hyrise python=3.11
conda activate hyrise
pip install hyriseUse de-identified fixtures from example_data/public/.
hyrise process -i example_data/public/DEMO_IN_NGS_results.json --out outhyrise process \
example_data/public/DEMO_IN_NGS_results.json \
example_data/public/DEMO_PRRT_NGS_results.json \
--out outhyrise sierra example_data/public/DEMO_IN_NGS.fasta --process --process-dir out--report(-r): generate report configuration assets.--run-multiqc: run MultiQC and generate the final report.--run-multiqcautomatically enables--report.
Example (full report generation):
hyrise process -i example_data/public/DEMO_IN_NGS_results.json --out out --run-multiqchyrise process supports the following inputs and flags:
-i, --input: single Sierra JSON input file.- positional
inputs: one or more Sierra JSON input files. -o, --output-dir, --output_dir, --out: output directory (required).-s, --sample_name: override sample name in outputs/report.-r, --report: generate report configuration assets.--run-multiqc: run MultiQC and generate final report (--reportis implied).--guide: include interpretation guide content.--sample-info: include sample information section.-e, --email: contact email for report header.-l, --logo: custom logo path (PNG/SVG).--container: force container execution.--no-container: force native execution.--container-path: explicit.sifpath.--container-runtime {apptainer,singularity}: choose runtime explicitly.--config: custom HyRISE TOML config path.-I, --interactive: guided interactive prompt mode.
hyrise process: process Sierra JSON into report-ready outputs.hyrise sierra: run SierraLocal on FASTA input.hyrise container: pull/build/extract container assets.hyrise resources: update/list HIVdb resource files.hyrise check-deps: show native/container dependency status.
Help:
hyrise --help
python -m hyrise --help
hyrise process --help
hyrise sierra --help
hyrise container --help
hyrise resources --help
hyrise check-deps --helpHyRISE is CLI-first. For Python usage, keep imports explicit:
from hyrise.core.processor import process_filesStable top-level API is intentionally minimal:
import hyrise
print(hyrise.__version__)process: one or more Sierra JSON filessierra: one or more FASTA files
*_mqc.json*_mqc.html- MultiQC report output when
--run-multiqcis enabled (--run-multiqcimplies--report)
hyrise container --pull --output hyrise.sif --image ghcr.io/phac-nml/hyrise:latest
hyrise process -i example_data/public/DEMO_IN_NGS_results.json --out out --container --container-path ./hyrise.sifhyrise container --extract-def container_build
apptainer build hyrise.sif container_build/hyrise.def
# or: singularity build hyrise.sif container_build/hyrise.defhyrise container --extract-dockerfile container_build
docker build -f container_build/Dockerfile -t hyrise:local container_build
docker run --rm -v "$PWD:/data" hyrise:local --helpdocker build -f src/hyrise/Dockerfile -t hyrise:local .If the repository is private but the package is published on PyPI, pip install hyrise still works without repository access.
Container pull depends on registry access:
- public registry image: no extra credentials required
- private registry image: users must authenticate
- offline or restricted environments: provide a local
.sifand use--container-path
Interactive mode is explicit and optional:
hyrise --interactive
hyrise process --interactive
hyrise sierra --interactive
hyrise container --interactive
hyrise check-deps --interactiveConfiguration precedence:
- CLI flags
- config file
- optional environment overrides
- built-in defaults
Default config path:
~/.config/hyrise/config.toml
Example:
[container]
path = "/path/to/hyrise.sif"
runtime = "apptainer"
search_paths = ["/shared/containers/hyrise.sif"]
[resources]
dir = "/path/to/hyrise/resources"- Normal analysis runs do not download resources.
- Downloads occur only when explicitly requested:
hyrise resources --update-hivdbhyrise resources --update-apobechyrise resources --update-all
- After resource update,
hyrise sierraautomatically prefers the newest downloadedHIVDB_*.xmlwhen default--xmlis used.
hyrise resources --list
hyrise resources --update-hivdb- Install natively:
pip install sierralocal post-align - Or use container mode:
hyrise sierra <input.fasta> --container --container-path /path/to/hyrise.sif - For HPC:
apptainer pull hyrise.sif docker://ghcr.io/phac-nml/hyrise:latest
multiqc is installed with hyrise by default. If it is missing, reinstall HyRISE in a clean environment:
pip install --upgrade --force-reinstall hyriseInstall Apptainer/Singularity, or pass an explicit runtime with --container-runtime.
- Python: 3.9, 3.10, 3.11, 3.12
- Container runtimes: Apptainer and Singularity
- Entry points:
hyriseandpython -m hyrise
If you use HyRISE in your research, please cite it as follows:
Osahan, G., Ji, H., et al. (2026). HyRISE: HIV Resistance Interpretation & Scoring Engine — A pipeline for HIV drug resistance analysis and visualization. National Microbiology Laboratory, Public Health Agency of Canada. https://github.com/phac-nml/hyrise
For BibTeX:
@software{hyrise_2026,
author = {Osahan, Gurasis and Ji, Hezhao},
title = {HyRISE: HIV Resistance Interpretation \& Scoring Engine — A pipeline for HIV drug resistance analysis and visualization},
year = {2026},
publisher = {Public Health Agency of Canada},
version = {0.2.1},
url = {https://github.com/phac-nml/hyrise},
organization = {National Microbiology Laboratory, Public Health Agency of Canada},
}HyRISE is distributed under the GNU General Public License v3.0. Refer to the GNU GPL v3.0 for the full terms and conditions.
- Issue Tracking: Report issues and feature requests on your project tracker
- Email Support: Gurasis Osahan
