Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

taf-syri

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.

Package Identity

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

What This App Provides

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:

  • syri as 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-snps and nucmer from MUMmer, plus minimap2 and samtools;
  • upstream README, examples, tests, scripts, and MIT license under /opt/syri.

Usage

Show TAFFISH wrapper help:

taf-syri --help

Show 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 --version

Run 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 pseudochrom

Inputs And Outputs

SyRI 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.

Command Mode

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.

Platform Notes

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.

Boundaries

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.

Smoke Coverage

The app smoke metadata checks:

  • syri, chroder, show-snps, nucmer, minimap2, samtools, and python3 exist;
  • syri --version and chroder --version report 1.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 chroder pseudochromosome 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.

Upstream

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages