Skip to content

v0.22.1

Latest

Choose a tag to compare

@EttoreRocchi EttoreRocchi released this 26 Oct 18:03
· 1 commit to main since this release

Added

  • Group-aware single split: stratified_species_drug_split accepts groups=.

Changed

  • Results that change: censored MICs and conflicting breakpoints can have no category, the species-drug splitters honour groups, and keep_all/average rename only the duplicated IDs.
  • New errors: adaptive binning of several spectra in a MaldiSet, repeated spectrum IDs, ambiguous stage folders or metadata rows, and invalid inputs to several encoders, metrics and splitters now raise ValueError instead of silently giving unexpected results.
  • Splitter signature: SpeciesDrugStratifiedKFold.split(X, y, groups, *, species=None) follows scikit-learn's argument order.
  • numba is a declared dependency (it was already installed with tslearn).

Fixed

  • Susceptibility and metrics: censored MICs, conflicting breakpoints, MICs at a breakpoint, string labels and multi-drug inputs no longer give wrong categories, scores or rows.
  • Dataset loading: each metadata row is matched to its own spectrum file, so replicates, duplicates, year folders, numeric IDs and MARISMa specimens load correctly, and preprocessed stages are no longer preprocessed twice.
  • Feature grid: every spectrum of a MaldiSet is binned on the set's m/z grid, including stages written by DatasetBuilder, and RawWarping learns its adaptive bins in fit.
  • Leakage: splits, peak-set caches, drift baselines and the documentation examples no longer let evaluated spectra shape their own features, references or folds.
  • Alignment: DTW memory grows linearly with the spectrum length (with the same result), and aligners pickled with 0.21 or earlier raise a clear error asking to refit them.
  • Precision: DatasetBuilder writes full-precision spectra, text spectra are read back exactly, and MAD noise estimates use the exact Gaussian factor.
  • Other fixes: align_peaks keeps peak scores, MaldiPeakDetector.set_params takes effect, MaldiSet.filter keeps the isolate grouping, and QualityFilter(min_peaks=...) reads the quality report.