Changelog
All notable changes to mioXpektron are documented here.
The format follows Keep a Changelog.
0.0.3 (2026-03-31)
Added
adaptivemodule with opt-in data-driven parameterization. Newauto_tune=Trueflag onFlexibleCalibConfig,PipelineConfig,ScanForFlatRegion, andcompare_methods_in_windows()replaces hardcoded thresholds with values estimated from spectra.10 individual estimator functions:
estimate_autodetect_tolerance,estimate_outlier_threshold,estimate_screening_thresholds,estimate_multisegment_breakpoints,estimate_normalization_target,estimate_mz_tolerance,estimate_flat_params,estimate_denoise_params,estimate_bootstrap_heuristics, andauto_tune_calib_config.DEFAULT_REFERENCE_MASSEScanonical 18-ion reference mass list exported from the pipeline module, replacing divergent inline fallback lists.Bootstrap heuristics in
_models.pynow accept an optionalbootstrap_overridesdict to inject data-derived constants.autodetect_fallback_policy={"max", "nan", "raise"}forAutoCalibratorandFlexibleCalibratorso refined peak-picking failures can either fall back, returnNaN, or stop the run.centroid_rawas an explicit recalibration peak-picking mode for direct comparison against the new baseline-awarecentroidimplementation.Two-pass reference-mass screening in
FlexibleCalibratorwith explicit exclusions, per-mass stability summaries, and run diagnostics exposed vialast_reference_masses_used,last_reference_masses_screened_out, andlast_reference_mass_screening.noise_model="mz_binned"for detection entry points andPeakAlignIntensityAreato support m/z-dependent noise thresholds.Per-spectrum autodetect diagnostics in the calibration comparison notebook, including actual methods used, fallback counts, and screening exports.
Changed
Recalibration peak-picking methods now return fractional channel positions for refined fits instead of snapping all refined centers back to integer bins.
centroidnow uses baseline-aware local apex support; the previous raw local centroid is preserved ascentroid_raw.Bootstrap autodetection now estimates a channel mapping of the form
channel = t0 + k*sqrt(m)and performs final peak selection in the raw local channel window, substantially improving agreement with themzautodetection path.quad_sqrtparameter validation is now local to the calibrated mass range, avoiding false rejections nearH+.PeakAlignIntensityAreanow exposes the underlying detection method and noise-model options instead of hard-wiring a single detector configuration.Detection noise masking now excludes the measured peak width plus a configurable margin instead of using only a fixed point-count window.
detect_peaks_with_area_v2()now uses the same shared noise-model helper as the other detection entry points, reducing method-to-method threshold inconsistencies.Overlapping-peak deconvolution in
robust_peak_detection()now requires a BIC improvement over a single-peak fit and validates fitted component widths against the configured peak-width bounds before accepting a two-Gaussian solution.Analytic peak-fitting detection now emits one warning-level summary per spectrum when single-peak or deconvolution fits raise exceptions, instead of silently skipping all failed fit windows unless verbose debug logging is on.
Wavelet
variance_stabilize="anscombe"is now documented and enforced as the classical pure-Poisson Anscombe transform with the Mäkitalo-Foi unbiased inverse, and negative-input handling is now explicit viaanscombe_negative_policyinstead of silent clipping.Bootstrap autodetection heuristics now use named documented constants in the shared recalibration backend instead of unexplained inline literals.
Fixed
Guarded robust noise estimation against empty or non-positive background samples so detection thresholds no longer silently become
NaN.Corrected Simpson baseline integration to use the true floating peak endpoints and updated the integration call for current SciPy expectations.
Fixed
collect_peak_properties_batch()to forward the user-providedmin_intensitywhen using the default local-maximum detector.Fixed off-by-one slice limits in local peak windows and removed redundant
locals()checks in combined detection paths.Fixed notebook result-table broadcasting for list-valued screening metadata and made the calibration comparison notebook reload local recalibration modules explicitly to avoid stale imports.
0.0.2 (2026-03-12)
Changed
Synchronized package and documentation release metadata to
0.0.2Updated maintainer attribution to
Data Analysis Team @KaziLab.seStandardized contact metadata to
mioxpektron@kazilab.se
0.0.1 (2025)
Added
14 normalization methods: TIC, median, RMS, max, vector, SNV, Poisson, sqrt, log, VSN, MinMax, selected-ion, PQN, and median-of-ratios
normalize()unified dispatcher for all normalization methodsNormalizationEvaluatorfor data-driven method comparison using spectral-quality, clustering, and supervised metrics with composite scoringNormalizationMethodsorchestrator for visual comparison and evaluationnormalization_method_names()to list available methods
Changed
Consolidated 3 inline TIC implementations to canonical
tic_normalization()Replaced
multiprocessing.Poolwithconcurrent.futures.ProcessPoolExecutorinBatchTicNormfor consistency with rest of codebaseStandardised logging: converted
print()tologging.getLogger(__name__)across 13+ modulesRefactored
FlexibleCalibratorDebugto inherit fromFlexibleCalibrator(reduced ~1145 to ~280 lines)
0.0.0.post1 (2025)
Added
End-to-end
run_pipelinewithPipelineConfigfor batch processingFlexibleCalibratorandAutoCalibratorfor mass spectrum calibrationBaselineMethodEvaluatorfor systematic baseline method comparisonBatchDenoisingandbatch_denoisefor parallel denoisingBatchTicNormwith Polars-based parallel normalizationPeakAlignIntensityAreafor cross-sample peak alignmentPlotPeaksandPlotPeaksConfigfor multi-sample visualizationScanForFlatRegionfor automated flat region detectionColumn name alias system for flexible data input
Debug calibrator with diagnostic logging
Method comparison and Pareto-front ranking for denoising
0.0.0 (2025)
Added
Initial release
Baseline correction with pybaselines integration
Wavelet, Gaussian, median, and Savitzky-Golay denoising
Local maximum and CWT peak detection with area integration
TIC normalization
Data import with auto-detection of file formats
Basic spectrum plotting