All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- latent stat (n_vanished) logs during training
- Disentanglement metric logs during training
- Allow sparse input as X
- Allow generating memory efficient sparse tensors as latent
- Added within distribution interpretability
- An efficient implementation of out-of-distribution interpretability is added
- plotting and getting relevant genes is now possible in DRVI model interface.
- Setting latent dimension stats is now done in model interface. Previous util functions still work, but will show a deprecation warning.
- Add tutorial for query to reference mapping
- The default value for vanished threshold in new the interface of
set_latent_dimension_statsis 0.5 (previously 0.1). - Interpretability scores for the other direction of a non-vanished dimension is not shown if that direction is meaningless.
- Main tutorial updated with the new interpretability interface
- Added "tutorials" optional dependency that was accidentally removed.
- Code to allow loading models from previous versions with no problem
- Add dispersion parameter to allow modeling batch dependent dispersion
- Removed "x_loglib", "div_lib_x_loglib", "x_loglib_all" library normalization techniques
- Removed Vamp prior and GMM prior
- Removed Legacy likelihood functions. Will raise error if used.
- gene_likelihood parameter now accepts different values compared to before. gene_likelihood parameter from old models will be mapped properly, but new users should look into the docs.
- Add support for Python 3.13
- Allow subset reconstruction
- Allow gradient scaling in the last layer
- Allow setting vector size after mapping in "split_map@k" and "power@k" splitting functions.
- Add support for Python 3.14
- Remove restrict dependencies. To ensure compatibility with old packages run for example:
uvx --exclude-newer 2024-01-01 hatch run pytest
- Minor code improvements
- Update to scverse template version 0.7.0
- Update upper bound of all dependencies
- Align with the latest changes of scvi-tools
- Use cruft for scverse template management
- Add RnaSeqMixin from scvi-tools for RNA-seq specific methods (get_normalized_expression, differential_expression, posterior_predictive_sample, get_likelihood_parameters)
- Fix bug in decode space handling where library size was not considered (issue #46)
- Update decode_latent_samples logic (decode in log space by default)
- Code improvements and bug fixes
- Remove merlin data support and all related code
- Remove merlin-dataloader dependency
- Add dependabot for dependency update notification (not used now, for next releases)
- Add DRVI-APnoEXP baseline
- Imorove documnetation for all classes and functions in repository
- Discretize latent dimension values in MI for benchmarking due to this bug.
- Fix a minor issue with
drvi.utils.tl.traverse_latent
- Fix categorical lookup for reconstruction
- Allow kwargs to pass through in plot_relevant_genes_on_umap
- Update project CI structure
- Extract tutorial notebooks to another repo to keep this repo clean
- Refactor benchmarking code for better reusability
- Revert callable for mean and var activation
- Limit anndata version for compatibility with old scvi-tools
- Introduce mean activation to make non-negative latents possible (docs will come later)
- Better communication when Merlin is not installed
- Raise error when interpretability is called on model with continues covariates
- No change in DRVI code
- Fix github workflow, tests, docs, and pypi publishing pipelines
- Moved all files from repo to scverse cookiecutter project template