Skip to content

DASMixer v0.7.4

Latest

Choose a tag to compare

@Glucksistemi Glucksistemi released this 23 Oct 19:20

v0.7.4

Date: 2026-10-23


New Features

  • PRIDE repository import — import datasets directly from the PRIDE repository (pridepy extra) with a 3-step GUI wizard (Import From PRIDE on the Samples tab) and CLI command dasmixer-cli import pride. Supports downloading and importing MGF spectra, identifications (mzTab / CasaNovo) in single (multi-file mzTab) or per_sample modes, optional FASTA protein import, and automatic temporary file cleanup.
  • New identification parsers: mzTab, CasaNovo, Pi-PrimeNovo:
    • mzTab — full PSM & metadata parser with ProForma reconstruction (UNIMOD, PSI-MOD, CHEMMOD), protein accession collection, and multi-file import mode (Import multi-file mzTab in GUI) that resolves ms_run[N]-location to multiple spectral files automatically;
    • CasaNovo — mzTab-based de novo parser reading ProForma sequences and amino acid positional scores;
    • Pi-PrimeNovo — TSV de novo parser with modification conversion and spectrum matching by title.
  • Spectrum matching by title — identification parsers and TableImporter (ColumnRenames.title) can now link PSMs to spectra using case-insensitive normalized spectrum titles in addition to scans and seq_no.
  • Automatic PTM configuration updates — built-in PTM definitions and parser PTM renames are non-destructively merged into user CSV files in {app_dir}/ptm/ on version upgrades (LASTRUN_VERSION marker) or manually via dasmixer-cli update-ptm-list.
  • Reports architecture overhaul & UX improvements:
    • Reports moved to standalone packages in dasmixer.reports with typed ReportParams dataclasses (PROJECT_VERSION bumped to 0.7.4); demo SampleReport and ToolCoverageReport moved out of built-ins into standalone plugins;
    • Custom report naming via Name format template on report cards ({date}, {time}, and parameter placeholders), stored in generated_reports.name;
    • New Export Dialog with output directory picker, selectable formats (DOCX, HTML, XLSX), and Excel table scope (All tables / Large tables only);
    • Save and generate button in parameter dialogs, automatic selection of the newest generated report, reordered HTML report sections, and whitelisted project parameters in exports.
  • Temporary files management — new Temporary Files section in Settings to configure, browse, open, or clear standard (tempdir) and large-file (large_file_tempdir) cache directories used for HTML previews, MaxQuant, and PRIDE downloads.
  • Peptides tab UX improvements — "Has PTM" and "AA Substitution" columns now display checkmarks instead of 1/0; "Calculate peptides" actions reordered so Ion Coverage runs before peptide matching.

Performance & Refactoring

  • 6x–24x faster Peptide table queries — rewrote JoinedPeptideDataMixin (get_joined_peptide_data / count_joined_peptide_data) from materialized subqueries to flat LEFT JOINs, allowing SQLite to use existing indexes and stop early on LIMIT.
  • Chunk queue for Ion Coverage & parallel Protein Mapping — replaced static sub-batch splitting with run_identification_queue (semaphore-bounded worker chunks with periodic DB flushes) and parallelized per-row de novo protein mapping / sequence correction via ProcessPoolExecutor.
  • Code quality — codebase-wide Ruff cleanup for E701, E721, E402, and E731.

Bug Fixes

  • Default PTM selection in de novo correction & protein mapping — leaving PTM selection at default (ptm_list=None) now properly uses DEFAULT_PTM_CODES configured in GUI instead of iterating over all ~43 PTMs.
  • Peptides table display with unidentified spectra — fixed NaN/float coercion issues when spectra without identifications were present on the same page (preferred erroneously showing "yes", identification_id rendering as "1.0000" and breaking click-to-filter, and similar formatting glitches).
  • Open Recent dialog — fixed uncancelable "Open recent" popup window.