Releases: EttoreRocchi/combatlearn
Releases · EttoreRocchi/combatlearn
v2.0.0
Added
combatlearn.inspectionmodule: standalonefeature_batch_diagnostics()andsummary()functions for inspecting fitted ComBat models.- Weighted RMS in
feature_batch_diagnostics(): newweightedparameter (defaultTrue) weights batch contributions by sample size for more representative importance scores. - Lazy imports in
combatlearn.visualization: matplotlib, plotly, seaborn, umap, and sklearn reducers are imported at function call time, not at module import.
Changed
- Architecture refactor: composition over mixins.
ComBatMetricsMixinandComBatVisualizationMixinremoved. All metrics, inspection, and visualization functions are now standalone, accepting a fittedComBatinstance as first argument. ComBatclass retains only sklearn-standard methods:fit,transform,fit_transform,get_feature_names_out,set_params,get_params.feature_batch_importance()renamed tofeature_batch_diagnostics()and moved tocombatlearn.inspection.compute_batch_metrics()moved tocombatlearn.metricsas a standalone function:compute_batch_metrics(combat, X, ...).summary()moved tocombatlearn.inspectionas a standalone function:summary(combat).- Visualization functions moved to
combatlearn.visualizationas standalone functions:plot_transformation(combat, X, ...),plot_feature_diagnostics(combat, ...),plot_batch_effect_heatmap(combat, ...).
Removed
compute_metricsparameter fromComBat.__init__().metrics_caching property fromComBat.ComBatMetricsMixinclass.ComBatVisualizationMixinclass.
Migration
| v1.x | v2.0 |
|---|---|
cb.compute_batch_metrics(X) |
compute_batch_metrics(cb, X) |
cb.feature_batch_importance() |
feature_batch_diagnostics(cb) |
cb.summary() |
summary(cb) |
cb.plot_transformation(X) |
plot_transformation(cb, X) |
cb.plot_feature_diagnostics() |
plot_feature_diagnostics(cb) |
cb.plot_batch_effect_heatmap() |
plot_batch_effect_heatmap(cb) |
ComBat(batch, compute_metrics=True) |
metrics = compute_batch_metrics(cb, X) |
cb.metrics_ |
metrics = compute_batch_metrics(cb, X) |
v1.4.0
Added
- Diagnostics table in
summary()(batch variance explained, condition number, convergence info) - Input validation warnings (near-zero variance, imbalanced batches, collinearity)
py.typedmarker and mypy strict compliance- FAQ docs
v1.3.0
Added
nn_algorithmparameter for nearest-neighbor metrics (kBET, LISI, kNN preservation)- Input validation on
fit()andtransform()(NaN/Inf checks on X, batch, covariates) summary()method for fitted model overviewplot_batch_effect_heatmap()via seabornget_feature_names_out()forset_output(transform='pandas')pipeline supportseaborn>=0.12dependency
Bug Fixes
hasattrguard on_modelbefore checking_gamma_starin metrics and feature importance
Docs
- Rendered demo notebook in Sphinx
Chores
examples/directory (switched entirely to demo notebook)
v1.2.0
Features
- Added
feature_batch_importance()for ranking features by location shift (gamma) and scale shift (delta) - Added
plot_feature_importance()for visualizing per-feature batch effect magnitudes
Refactor
- Reorganized package into modules (
core,metrics,visualization,sklearn_api) for clarity but no public API changes
v1.1.2
Fixed a bug in the chen method (CovBat) where PCA centering was handled inconsistently between fit and transform operations
v1.1.1
- Migrated docs to Sphinx
- Added ruff linting to CI
v1.1.0
Quantitative Batch Effect Assessment
New compute_batch_metrics() method for evaluating batch correction quality.
Metrics included:
- Batch effect: Silhouette, Davies-Bouldin, kBET, LISI, variance ratio
- Structure preservation: k-NN preservation, distance correlation
- Alignment: Centroid distance, Levene statistic
See Metrics Guide for more details
v1.0.0
- Improve packaging: separate dev dependencies, dynamic versioning, fixing imports
- Complete MkDocs documentation setup
- Fix all deprecation warnings and expand test coverage
Full documentation is available at combatlearn.readthedocs.io, check it out!
v0.2.2
Ensure color consistency for batch labels in all ComBat().plot_transformation() plots for 'interactive' mode.
v0.2.1
Minor fix for the new feature (the plot_transformation method).