Skip to content

v2.5.0

Choose a tag to compare

@wenbostar wenbostar released this 23 Jun 21:40
· 17 commits to master since this release

PDV 2.5.0

This release focuses on de novo sequencing visualization for Casanovo: a new per-residue confidence track, correct parsing of ProForma peptidoform modifications in mzTab, refined sequence-fragmentation strips, and an optional control server that lets an external launcher (e.g. CasanovoGUI) drive the PDV window. It also ships a rebuilt annotated-spectrum export pipeline on modern Apache Batik/FOP and a number of PSM-table refinements.

✨ New: per-residue confidence track for Casanovo

PDV can now draw a free-floating, draggable confidence bar track above the annotated spectrum for Casanovo de novo results, using the per-residue scores from the mzTab opt_global_aa_scores column.

  • One bar per residue, aligned to the sequence-fragmentation strip: bar height encodes confidence (tall = high), shaded green (high) → red (low) for redundancy, with the score shown above each bar.
  • Shown in all spectrum views (normal, mirror, and check), drawn at 40% transparency so it never obscures peaks.
  • New confidence-track display settings in the Annotation settings dialog: toggle the track, show/hide residues, and set the score font size.

🧬 Correct ProForma peptidoform modifications in mzTab import

mzTab modifications written in the ProForma peptidoform form (e.g. C[Carbamidomethyl]GC[Carbamidomethyl]..., [Acetyl]-PEPTIDE) are now parsed correctly.

  • PDV reads the ProForma peptidoform column when present (header name differs by Casanovo version — opt_global_cv_MS:1003169_proforma_peptidoform_sequence in 5.2, opt_ms_run[1]_proforma in 5.1.x — both are recognized).
  • ProForma/Unimod interim names are mapped to the underlying modification definitions, including N-terminal modifications — Acetyl (+42.010565), Carbamyl (+43.005814), Ammonia-loss (−17.026549), and Casanovo's numeric combined [+25.980265]- label.
  • Verified end-to-end against real Casanovo 5.1.x / 5.2 output: every modification resolves to the correct mass at the correct residue.

This fixes cases where modifications present in the result were previously dropped, so the modified peptide's theoretical fragment ions are now computed correctly.

🔌 New: control server for external launchers (CasanovoGUI)

The denovo-gui command-line mode gains an optional loopback HTTP control server so an external application can drive the open window.

  • --port <p> starts a localhost-only control server; an external launcher can select a PSM by its spectra_ref via /select?ref=....
  • --hide-psm-table opens a spectrum-only view (the PSM table is collapsed and the spectrum fills the window).
  • Both options are optional and off by default; existing denovo-gui usage is unchanged.

🎨 De novo annotation refinements

  • Sequence-fragmentation strips are right-aligned by their painted edge, measured at the actual display scale (correct on HiDPI displays), and re-anchored on spectrum resize.
  • New strip display settings: ion-label font size and a bold amino acids option for both the strip and the confidence track.
  • Fixed mirror/check de novo track and top/bottom strip placement so strips sit flush to the spectrum container.

📊 PSM table refinements

  • Decimal-places dropdown for numeric columns.
  • Fit-columns-to-content toggle (on by default), with improved default column widths.
  • Index column is labeled # with a clearer "Row number (current page)" tooltip; the Selected column header shows a check-mark glyph.
  • The file-detail panel folds away when the window is restored down.

🖨️ Rebuilt annotated-spectrum export

The image/SVG/PDF export pipeline was overhauled for correctness on modern toolchains:

  • Supports fractional sizes and produces a correctly sized PDF.
  • Migrated from the legacy batik-all / pdf-transcoder to Apache FOP (which brings a matching modern Batik) plus batik-svggen.

🐞 Bug fixes

  • Fixed mzTab re-load failing with "table already exists".
  • Fixed an infinite spinner when opening an unsupported de novo identification file; the database connection is now closed and the supported-format list deduplicated.
  • The spectrum panel now refreshes on container resize.

⬆️ Dependencies

  • Replaced legacy batik-all and pdf-transcoder with Apache FOP 2.10 (org.apache.xmlgraphics:fop) and batik-svggen 1.18 for image/SVG/PDF export.

🔄 Compatibility

  • Existing projects, import formats, and command-line modes continue to work unchanged.
  • The new --port and --hide-psm-table options for denovo-gui are optional and off by default.
  • ProForma modification parsing is additive — non-ProForma mzTab files import exactly as before.

🙌 Contributors

  • Bo Wen (@wenbostar) — Casanovo confidence track, ProForma modification parsing, control server, de novo annotation refinements, PSM-table improvements, export overhaul, and dependency updates
  • Jeroen Van Goey (@BioGeek, InstaDeep) — InstaNovo example-file documentation (#109)

📦 Full changelog

  • Add support for ProForma peptidoform modifications in mzTab import (ef45872)
  • Add a spectra_ref→row index map and an optional loopback control server (--port); add --hide-psm-table spectrum-only mode and a PSM-table toggle; anchor the top sequence strip to the pane top (171dd9c)
  • Add per-residue confidence bar track for Casanovo de novo results (a446770) and confidence-track display settings in the Annotation settings dialog (6f44eb5)
  • Right-align sequence strips by the painted edge measured at the display scale (a04deee); fix HiDPI confidence-track alignment and uniform bar width (6968ecd)
  • Add font-size settings for the sequence strip ion labels (061d0cd) and a bold amino acids setting (754d138)
  • Overhaul annotated-spectrum export: fractional sizes, correct PDF size, modern Batik/FOP (511ccc9)
  • PSM table: decimal-places dropdown (343df65), fit-columns-to-content toggle (b2b4c10), # index header (b37c437), check-mark Selected header (f66bbac)
  • Fix mzTab re-load failing with "table already exists" (3328236)
  • Fix infinite spinner on unsupported de novo files and close the DB connection (a39bd36, 74c0e79)
  • Document InstaNovo example files (4611ae7)
  • Bump version to 2.5.0 (7312697)

Full diff: v2.4.0...v2.5.0