TAFFISH wrapper for SyRI, the Synteny and Rearrangement Identifier for pairwise whole-genome assembly comparisons. SyRI identifies syntenic regions, inversions, translocations, duplications, local variants, and unaligned regions from whole-genome alignment coordinates.
| Field | Value |
|---|---|
| name | syri |
| command | taf-syri |
| version | 1.8.2-r1 |
| kind | tool |
| container | ghcr.io/taffish/syri:1.8.2-r1 |
| upstream | SyRI v1.8.2 |
| runtime version | 1.8.2 from syri --version |
This app builds SyRI 1.8.2 from the official GitHub release tarball, pinned
by SHA256. It installs the upstream Python package and Cython extensions in a
container-local virtual environment on python:3.11-slim-bookworm. Scientific
Python dependencies are installed as pinned PyPI wheels for both native
linux/amd64 and linux/arm64 builds.
SyRI v1.8.2 is an upstream bugfix release after v1.8.0; the upstream
release note says it fixes inconsistent output ordering in certain scenarios.
This TAFFISH release keeps the existing Python 3.11 and pandas 2.2.x runtime
strategy while moving to the latest upstream tag.
The image includes:
syrias the default upstream command;chroder, SyRI's pseudochromosome helper command;- Python runtime modules used by SyRI: NumPy, pandas, SciPy, psutil, igraph,
pysam, Cython-built SyRI extensions, and
longestrunsubsequence; - convenience alignment/helper tools commonly used with SyRI inputs:
show-snpsandnucmerfrom MUMmer, plusminimap2andsamtools; - upstream README, examples, tests, scripts, and MIT license under
/opt/syri.
Show TAFFISH wrapper help:
taf-syri --helpShow upstream help and version:
taf-syri -- --help
taf-syri -- --version
taf-syri syri --help
taf-syri syri --version
taf-syri chroder --help
taf-syri chroder --versionRun SyRI on a tabular coordinate file and skip local SNP/indel calling:
taf-syri syri \
-c alignments.tsv \
-F T \
--nosnp \
--nosv \
--novcf \
-k \
--prefix sample.Run SyRI with SAM/BAM/PAF input generated by an external aligner. Minimap2
PAF/SAM should include CIGAR with --eqx:
taf-syri minimap2 -cx asm5 --eqx ref.fa qry.fa > alignments.paf
taf-syri syri -c alignments.paf -F P --cigar -r ref.fa -q qry.fa --prefix sample.Run the MUMmer-style path where SyRI calls show-snps for SNP/indel detection:
taf-syri nucmer --maxmatch -c 100 -b 500 -l 50 ref.fa qry.fa
taf-syri syri \
-c out.filtered.coords \
-d out.filtered.delta \
-r ref.fa \
-q qry.fa \
--prefix sample.Run chroder:
taf-syri chroder alignments.tsv ref.fa qry.fa -F T -o pseudochromSyRI expects a whole-genome assembly alignment that has already been generated.
Accepted input formats are table (-F T), SAM (-F S), BAM (-F B), and PAF
(-F P). For local SNP/indel identification from non-CIGAR table/MUMmer input,
SyRI also needs a MUMmer .delta file and show-snps.
Typical SyRI outputs include syri.out, syri.vcf, syri.summary,
synOut.txt, invOut.txt, translocation/duplication files, sv.txt,
snps.txt, and notAligned.txt, depending on --novcf, -k, --nosr,
--nosv, and --nosnp.
This is a normal TAFFISH tool app with command mode enabled. The wrapper is intentionally thin:
<taf-app:container:ghcr.io/taffish/syri:1.8.2-r1>
syri ::*ARGV*::
Because command mode treats a first non-option argument as an executable inside
the container, use taf-syri syri ... for explicit SyRI calls and
taf-syri chroder ..., taf-syri minimap2 ..., taf-syri nucmer ..., or
taf-syri samtools ... for bundled helper tools. The form taf-syri -- --help
passes option-leading arguments to the default syri command.
The image is intended for native linux/amd64 and linux/arm64 builds. SyRI is
a Python/Cython package; this app compiles the SyRI extensions during image
build and installs pinned wheels for NumPy, SciPy, pandas, igraph, pysam,
psutil, Cython, and longestrunsubsequence. Debian packages are used for
the compiler toolchain and external helper commands: MUMmer, minimap2, and
samtools.
This app does not bundle reference genomes, query assemblies, precomputed
whole-genome alignments, plotsr, Nextflow pipelines, or downstream plotting and
reporting workflows. Plotsr is maintained as a separate upstream package and is
not part of SyRI v1.8.2.
The stable command surface is the upstream syri and chroder console scripts
plus bundled alignment/helper executables. The upstream source tree also
contains auxiliary scripts that are copied for provenance under /opt/syri, but
scripts that are not installed as upstream entry points are not treated as
stable TAFFISH commands or used to expand the default dependency set.
minimap2, nucmer, and samtools are bundled for convenience and command-mode
use, but SyRI itself normally consumes their alignment outputs rather than
running a complete alignment pipeline automatically. Large genomes can require
substantial memory and runtime, especially for many translocations,
duplications, or local variant calling.
Chromosome IDs should be non-numeric strings, and homologous chromosomes should represent the same strand unless the query is corrected first. These are upstream biological/input assumptions, not container limitations.
The app smoke metadata checks:
syri,chroder,show-snps,nucmer,minimap2,samtools, andpython3exist;syri --versionandchroder --versionreport1.8.2;- SyRI and chroder help text is reachable;
- Python imports cover SyRI and its runtime dependency set;
- bundled alignment helpers are callable;
- a tiny tabular coordinate fixture runs through a minimal SyRI structural region path;
- a tiny
chroderpseudochromosome fixture produces output files.
These tests validate packaging, version binding, Cython extension imports, helper availability, and a minimal deterministic run. They do not validate large-genome performance, all structural rearrangement classes, full MUMmer delta SNP calling, or biological correctness on real assemblies.
- Source: https://github.com/schneebergerlab/syri
- Documentation: https://schneebergerlab.github.io/syri/
- License: MIT
- Citation: Goel et al. 2019, "SyRI: finding genomic rearrangements and local
sequence differences from whole-genome assemblies", DOI
10.1186/s13059-019-1911-0