Skip to content

impg syng2gfa: failed to find symbol N offset 0 in linear rskip #175

Description

@MarsicoFL

impg syng2gfa fails with failed to find symbol 515 offset 0 in linear rskip

Affected: impg 0.4.1 (this main branch) and pangenome/impg:1778787077 Docker image.

impg syng2gfa aborts immediately after loading the GBWT with a fatal error
in syng's rskip (run-length compressed skip list) lookup. The error is
deterministic across inputs of any size — reproduces on as little as 2
yeast haplotypes × chrI
(124 kB). The companion impg syng index build
runs cleanly; only the GFA export step is broken.

Reproduction

# Get two yeast S. cerevisiae chrI sequences (any small FASTA pair works,
# this is just what we used).
agc getctg yeast235.agc S288C#0#chrI W303#0#chrI > yeast2_chrI.fa
bgzip yeast2_chrI.fa
samtools faidx yeast2_chrI.fa.gz

# Build index — succeeds.
impg syng -f yeast2_chrI.fa.gz -o yeast2_chrI

# Export GFA — fails.
impg syng2gfa -a yeast2_chrI --sequence-files yeast2_chrI.fa.gz -o out.gfa

Expected

A valid GFA 1.0 (or 1.1 with --gfa-version 1.1) written to out.gfa.

Actual

[2026-05-14T20:51:38Z INFO  impg::commands::syng2gfa] [syng2gfa] loading syng index from prefix 'yeast2_chrI'
[2026-05-14T20:51:38Z INFO  impg::commands::syng2gfa] [syng2gfa] building sequence index for 1 file(s) (gap fill)
read GBWT with 10349 vertices and 20944 edges from yeast2_chrI.1gbwt
Linear max 16 nSym 2 free 13
    DIR  0 sym 511 offset 42 count 4
    DIR  1 sym 515 offset 42 count 2
    1: i 15 iSym 0 count 4 sum 4 sSum 4
    2: i 14 iSym 1 count 2 sum 6 sSum 2
[2026-05-14T20:51:38Z INFO  impg::commands::syng2gfa] [syng2gfa] 10349 syncmer segments (length 63 bp), GFA 1.0, gap fill: FASTA/AGC
FATAL ERROR: failed to find symbol 515 offset 0 in linear rskip

out.gfa is created but empty (0 bytes).

What I tried (no effect)

  • --gfa-version 1.0 vs --gfa-version 1.1 — both fail at the same point.
  • Subsampling: same error with 6 strains × chrI (1.35 MB) and 2 strains ×
    chrI (124 kB). Error is independent of dataset size.
  • --parallel-dictionary on the index build — index still builds, GFA
    export still fails identically.
  • Local build (cargo install from main, Rust 1.95 + conda-provided htslib)
    vs Docker image pangenome/impg:1778787077 — same bug in both, so this
    isn't a build artifact.

Adjacent observation (possibly related)

impg syng -f yeast6.fa.gz (6 yeast haplotypes, whole genomes, ~72 MB)
fails during the index build itself on chrIV with:

FATAL ERROR: syngBWTadd -ve output retVal -3 callCount 139595 k 262830

Both errors are inside the GBWT/rskip layer and may share a root cause.

Environment

  • impg: 0.4.1 (this main, commit pinned by submodule) and Docker
    pangenome/impg:1778787077
  • syng vendor submodule SHA: dc18190342c32349a060816f1fafcc51185d2922
  • OS: Ubuntu 24.04.1, glibc 2.39
  • gcc 13.3.0, cmake 3.28.3, Rust 1.95.0
  • Data: yeast 1011 dataset (yeast235.agc from garrisonlab S3 bucket),
    chr-I extracted via agc getctg.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions