Skip to content

v0.34.0 — Robustness & Infrastructure

Latest

Choose a tag to compare

@berntpopp berntpopp released this 16 Feb 13:09
· 2 commits to main since this release
26fa524

v0.34.0 — Robustness & Infrastructure

Format Hardening (#75)

  • Auto-detect plasmid file format via magic bytes (SnapGene vs xDNA vs GenBank vs FASTA)
  • SnapGene .dna file support via BioPython parser
  • Sanitized filename used as record ID (replaces truncated comment field)
  • Actionable error messages for unsupported xDNA versions with conversion suggestions
  • FASTA passthrough with sanitized record IDs

Output Restructuring (#80)

  • OutputPaths frozen dataclass centralizes all path construction
  • Organized subfolder layout: alignments/, references/, data/, reports/, plots/
  • Depth-agnostic summary reader supports both old flat and new subfolder layouts
  • All pipeline components use OutputPaths (no hardcoded path construction)

Cache Infrastructure (#39, #43)

  • Content-addressed CacheManager at ~/.plasmicheck/cache/
  • Within-run plasmid index deduplication
  • Cross-run plasmid index caching with manifest (tool versions, input hashes)
  • Cross-run spliced alignment caching (BAM, spliced reference, cDNA positions)
  • CLI flags: --cache-dir, --no-cache
  • Cache management subcommand: plasmicheck cache info|clean

Splice Junction Metadata (#68, Phase 1)

  • Extract splice junction count and exon count from spliced alignment BAM CIGAR
  • 11-field cDNA_positions.txt format with junction/exon/strand/chromosome metadata
  • InsertRegionData dataclass with backward-compatible tuple unpacking
  • Junction metadata displayed in per-sample and multi-sample reports
  • TSV/Excel exports include junction metadata tables

Summary Visualization (#51)

  • Verdict bar chart grouped by plasmid in summary reports
  • Verdict bar chart grouped by sample in summary reports
  • Matplotlib fallback for both new verdict bar charts
  • Side-by-side Verdict Overview section in summary HTML template

Bug Fixes

  • Fix pandas 2.2+ StringDtype compatibility on Python 3.12 (assign() vs .loc[])
  • Fix temp file leak when plasmid conversion fails (try/finally cleanup)
  • Fix NA cDNA positions creating bogus (0,0) insert region that misclassifies reads as Backbone_Only

Stats

  • 20 requirements delivered across 5 phases (11 plans)
  • 417 tests passing (120+ new tests)
  • All CI checks green (lint, typecheck, Python 3.10 + 3.12)