Changelog#
All notable changes to this project will be documented here.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased#
0.0.5 - 2026-03-06#
Added#
Documentation hosted on Read the Docs with interactive examples gallery and benchmark results
Python 3.14 support
observation/subpackage with full probabilistic hierarchy: hyperpriors, priors withsample()methods, posterior classes, and realization containersstate/subpackage with probabilistic hierarchy:LatentsPriorStatic,LatentsPosteriorStaticwithsample()andposterior_mean, andLatentsRealizationplotting/subpackage:hinton_diagram()for matrix visualization,plot_dimensionalities(),plot_var_exp(), and pair-plot variants for observation model resultsGFAFitConfigandGFASimConfigfrozen dataclasses for immutable configurationGFASimulationResultdataclass bundling simulation outputs with persistence functions (save_simulation(),load_simulation(),save_simulation_recipe(),load_simulation_recipe())Callback system for model fitting:
ProgressCallback(tqdm),LoggingCallback(structured logging),CheckpointCallback(periodic safetensors checkpoints)GFAModel.recompute_latents(Y)andGFAModel.recompute_loadings(Y)to restore cleared parameters after loading saved models
Changed#
Package reorganized:
observation_model/→observation/andlatents.data,state_model/→state/,plotting.py→plotting/, internal utilities →_internal/GFA fitting loop optimized to reduce temporary memory allocations via
np.einsumand pre-computed intermediate arrays. 10–65% faster per-iteration runtime depending on problem dimensions.GFA inference iteration order changed from d → X → C → α → φ to d → C → α → φ → X, enabling exact latent reconstruction from saved observation parameters (
resume_fit()andcompute_lower_bound()now work withsave_x=False)simulate()signature changed tosimulate(config, hyperprior)returningGFASimulationResultMethods with
in_place=Truenow returnselfinstead ofNonerandom_seednow acceptsint | Sequence[int] | Nonefor structured seeding in parallel experimentsMinimum Python version raised from 3.9 to 3.10
Removed#
Python 3.9 support
pandasdependencyGFAFitArgsclass (replaced byGFAFitConfig),HyperPriorParams(replaced byObsParamsHyperPrior),StateParamsStatic(absorbed intoLatentsPosteriorStatic)verboseparameter from fitting config (useProgressCallbackinstead)notebookoptional extra; install Jupyter separately if needed
0.0.4 - 2024-10-31#
Added#
mDLAG (Delayed Latents Across Multiple Groups) module shell
Contributing guide and community documentation
Code of Conduct (Contributor Covenant 2.1)
Issue templates and pull request template
GitHub Actions workflows for testing and documentation
Changed#
Refactored package structure for extensibility
0.0.3 - 2024-02-16#
Added#
Group Factor Analysis (GFA) implementation
Initial documentation and Sphinx setup
Unit tests for GFA module
0.0.2 - 2024-02-15#
Added#
Initial project structure
Package scaffolding with setuptools