v0.6.1
Patch rather than minor: no public API changed (every helper involved is
crate-private), no new flag or entry point was added, and the on-disk format is
untouched — group sizes 3 and 4 were always valid and always reachable via
--interleaved, so this only changes when they are chosen. Archives already on
disk are unaffected, and both cross-release compatibility directions are
unchanged.
Fixed
- Single-cell interleaving is no longer archived as paired. Layout detection
only ever compared records pairwise, so a 4-member spot whose members share one
read name — 10x R1/R2/I1/I2 asfasterq-dumpandsrachaemit it, where the
members differ only inlength=— looked like a mate pair at every offset and
was recorded as paired.fqxv inforeported twice the real spot count, and
--splitwrote two mate files that each interleaved two different slots at two
different read lengths, with no warning. Detection now cuts the peeked records
into runs of consecutive same-spot names and infers the common run length (up to
4), so 3- and 4-member layouts are detected and restored to one file per slot.
Archives written before this are unaffected: the stream itself was always
byte-lossless, only the recorded grouping was wrong. - Interleaved SRA deflines are detected as paired.
@RUN.5 5 length=150repeats
the spot name on both mates, and its leading digit was read as a Casava mate
number — so both mates looked like member 5, and since members must be distinct
that vetoed the pairing and the stream was archived single-end, leaving--split
unable to restore the mate files. A leading description digit now counts as a mate
field only when followed by:(1:N:0:…), which is what distinguishes it from a
numeric spot name. This is the defline the documented
sracha get -Z … | fqxv compress -pipeline produces. - Out-of-step inputs warn instead of silently mis-pairing. With
G > 1member
assignment is positional, so a stream missing one member mid-file shifts every
later read into the wrong mate file while the read count stays a clean multiple of
G— invisible to the spot-multiple check and to every CRC. Compression now
compares the members' names within each spot and warns with the count and the
first offending spot. This is the shapefasterq-dump --split-filesproduces for a
spot whoseREAD_LENslot is 0: it writes no record at all for the empty slot. - Two FASTQ shapes SRA conversion produces now have container-level tests, having
been covered only at the codec level: a zero-length read inside aG > 1spot
surviving--splitin its own slot, and.plus the full IUPAC ambiguity set and
lowercase bases round-tripping (SRA's 4na→text map is.ACMGRSVTWYHKDBN, so
converted FASTQ carries more thanN).