Skip to content

BrucellaID 1.2.1

Choose a tag to compare

@duceppemo duceppemo released this 02 Nov 06:14
· 56 commits to main since this release

A patch release: what a full review of the code and an audit of the documentation caught after 1.2.0.

Concatenated gzip files are sized honestly. The coverage estimate trusted the gzip trailer, which names only the last member of a file — so lane files joined with cat read as a fraction of their size, and a bgzf file (what bgzip and every htslib tool write) as almost nothing. A deep library could estimate under 1x, keep the k-mer copy threshold at its floor of 2, and let the error k-mers back into the sketch: the very failure 1.2.0 exists to prevent. The head of the file is now decompressed member by member, several members mean the trailer is ignored, and a trailer that contradicts the measured compression ratio is ignored too. This is the fix to have if you feed BrucellaID merged or bgzipped fastq files.

A run is harder to lose. The TSV, JSON and MultiQC reports are written in UTF-8 whatever the locale, so a sample name with an accent no longer costs a finished run its reports under LC_ALL=C; and a gzip file with a corrupt stream inside fails that one sample with the real error instead of crashing the whole --parallel run.

The reports read better. Tables are only as wide as their content instead of being stretched across the page, every column is left-aligned, and a rule opens and closes each table — in the HTML and the PDF alike. A coverage below 10x is written with one decimal ("7.5x", "under 0.1x"), never "roughly 0x". The coverage log line names the sample it describes, so parallel samples stay apart. See the example report.

The documentation agrees with the code again, down to the methods text inside the generated report: the last biovar ghosts are gone (BrucellaID has reported none since 1.1.0), the k-mer filter is described as the depth-derived threshold everywhere, and Output-files documents min_kmer_copies and estimated_coverage.

The full list is in the changelog.