Skip to content

Install

GoliathAlign's toolchain is the pixi environment in the repository root. The lockfile covers two hosts:

Platform Machines
linux-64 Linux x86-64
linux-aarch64 Linux ARM64

Pixi installs Mojo / MAX (modular 26.6), Python (≥ 3.11 and < 3.14; the lock solves 3.13), pytest, and Pyrefly. It does not install samtools, bwa, or vg.

curl -fsSL https://pixi.sh/install.sh | bash   # once, if pixi is not on PATH
cd /path/to/GoliathAlign
pixi install
./bin/methylGrapher help

pixi.toml names the workspace mojo-align and sets version = "0.1.0". That version is the project version. The published host-runtime label is 0.1.0-jammy (Release).

Which launcher you are running

A git checkout and the jammy tarball do not start the same way.

Tree Default process Other process
Checkout bin/methylGrapher pixi run python -m engine.cli METHYLGRAPHER_ENGINE=mojo runs mojo run --target-accelerator … methylgrapher/src/main.mojo
Jammy goliath-align/bin/methylGrapher Bundled mojo src/main.mojo when mojo-env/bin/mojo exists METHYLGRAPHER_MCALL_ENGINE=python runs python -m engine.cli. The same Python command is the fallback when mojo is absent

MojoFq2bamMeth on either launcher ends in fq2bam-meth/python/fq2bam_meth.py (copied to engine/fq2bam_meth.py in a flat tree or in the tarball). The map kernel is still linear_mapper.mojo.

The checkout's Mojo launch defaults --target-accelerator to nvidia:sm_90. If METHYLGRAPHER_AMDGPU_ARCH is set and METHYLGRAPHER_TARGET_ACCELERATOR is empty, the target is amdgpu:$METHYLGRAPHER_AMDGPU_ARCH. Set METHYLGRAPHER_TARGET_ACCELERATOR to pick a label yourself (nvidia:sm_90 or amdgpu:gfx942).

Tools the commands call

Tool When the code requires it
samtools Every MojoFq2bamMeth run (index, and flagstat / stats; fixmate / sort / markdup for non-fm mappers)
bwa METHYLGRAPHER_LINEAR_MAPPER=bwa, or Mojo failure when GPU require is off
vg PrepareGenome, vg_check, and align_engine=cpu_vg
pigz or gzip FM mapper, when -fq1 / -fq2 end in .gz (linear_fastq.mojo shells out to decompress)

Checks

pixi run typecheck          # Pyrefly, config in pyrefly.toml
pixi run python -m pytest   # full Python suite
pixi run help               # Mojo CLI help text

Python on PYTHONPATH for a checkout is methylgrapher, giraffe/scripts, giraffe/python, fq2bam-meth/python, and gpu-common/python. bin/methylGrapher exports that path before it starts.

Names the runtime still accepts

gpu-common/src/mojo_align_env.mojo and methylgrapher/engine/mojo_align_env.py read GOLIATH_ALIGN_<SUFFIX> first. If that variable is empty they read MOJO_ALIGN_<SUFFIX>, then METHYLGRAPHER_MOJO_<SUFFIX>, and print a deprecation warning.

Install-prefix probes, in order: /opt/goliath-align, /opt/mojo-align, /opt/methylgrapher-mojo. A missing directory does not create it; the fallback returns /opt/goliath-align as the prefix string.