Releases: theislab/scvelo
Releases · theislab/scvelo
v0.3.2
What's Changed
- Remove hard
scvi-tools
dependency by @michalk8 in #1185 - Unpin scikit-learn by @Zethson in #1194
- Update
scatter
andupdate_axes
by @WeilerP in #1205 - Update
plotting/utils.py::hist
by @WeilerP in #1217 - Update
VELOVI::train
by @WeilerP in #1219 - Update
release.yml
by @WeilerP in #1221 - Remove
debug.py
by @WeilerP in #1222 - Update
pyptoject.toml
by @WeilerP in #1224 - Update
pyproject.toml
by @WeilerP in #1226
New Contributors
Full Changelog: v0.3.1...v0.3.2
v0.3.1
v0.3.0
v0.2.5
Release `0.2.5` (#934) * Add .editorconfig (#529) * Add TestCleanObsNames (#530) Add test class for `scvelo/core/_anndata.py::clean_obs_names`. * Refactor `clean_obs_names` (#532) * Rename input arguments from `data` to `adata`, `copy` to `inplace`, `ID_length` to `id_length`, `base` to `alphabet`. * Rename variables to something more meaningful and use snake as well as lower case, consistently. * Make use of Pandas functionality. * Use regex expression. * Move unit tests to `tests/` (#535) * Move `scvelo/core/tests` to `tests/core` Moves unit tests `scvelo/core/tests` to `tests/core`. This will, for example, prevent installation files becoming large when including data or ground truth figures. * Add `tests/__init__.py` Makes `tests/` a package. This is needed to e.g. import from `tests/core` later on. * Update pytest.ini Remove `scvelo` from testpaths. * Fix and refactor `filter_genes` (#537) * Add `multiply` Adds function to calculate the element-wise product of two arrays or an array and a sparse matrix. * Fix and refactor `filter_genes` The original implementation fails when `adata.layers['unspliced']` is sparse but `adata.layers['spliced']` dense. The element-wise multiplication is now performend using `multiply`. * Add column generation for adata.obs/.var (#544) * Fix and update docstrings Update docstrings to follow codebase style. * Add option to add columns to adata.obs * Adds `obs_col_names`, `min_obs_cols`, `max_obs_cols` to composite strategy `get_adata`. Using `obs_col_names`, the column names can be set manually, the other arguments allow setting the minimum and maximum number of columns generated. * Updates unit tests to encounter for and test changes. * Add option to add columns to adata.var * Adds `var_col_names`, `min_var_cols`, `max_var_cols` to composite strategy `get_adata`. Using `var_col_names`, the column names can be set manually, the other arguments allow setting the minimum and maximum number of columns generated. * Updates unit tests to encounter for and test changes. * Add unit tests for `cleanup` (#548) * Add method `_subset_columns` to `TestBase` Adds method to sample from column names in `adata.obs` and `adata.var`. * Add `TestCleanup` Adds test class to unit test `scvelo/core/_anndata.py::cleanup`. * Fix TestCleanup::test_cleanup_some (#550) * Refactor `cleanup` (#552) * Rename argument `data` to `adata` * Rename argument `copy` to `inplace` * Update type hint in `cleanup` * Rename variables Rename variables to use more informative names. * Add `TestGetInitialSize` (#554) * Add `TestGetSize` (#556) * Refactor module import (#560) * Delete `pl.py`, `pp.py` and `tl.py`. * Update `__init__.py` to no longer rely on `pl.py`, `pp.py` and `tl.py`. * Update `get_modality` (#567) * Update `get_modality` Support passing `None` for argument `modality`. In this case, `adata.X` is returned. * Add `TestGetModality::test_modality_equals_none` Add unit test to check that correct modality is extracted if `None` is passed for `modality` in `get_modality`. * Refactor and generalize `get_size` (#569) * Rename `layer` to `modality` Rename argument `layer` to `modality` in `get_size`. This unifies naming convention for the argument across the code base and prepares generalizing `get_size` to arbitrary modalities. * Generalize `get_size` to arbitrary modalities This allows calculating the size per observation for any modality, from `adata.X`, `adata.layers` or `adata.obsm`. * Update docstrings * Add TestObsDf (#579) Unit tests `scvelo.core._anndata.py::obs_df`. * Add TestVarDf (#583) Unit tests `scvelo.core._anndata.py::var_df`. * Update TestObsDf (#585) The addition assert statement checks that the index of the returned data frame is correct. * Fix typo in default layer names (#587) * Add `TestShowProportions` (#589) Unit tests `scvelo.core._anndata.py`::show_proportions`. * Add `TestSetInitialSize` (#591) * Reduce maximum number of obs/vars (#593) Reduce maximum size of generated AnnData objects in some tests. * Update ci.yml (#546) * Run tests on ubuntu-latest using both Python 3.7 and 3.8. * Increase verbosity of pytest. * Add timeout to tests. * Update `.gitignore` [ci skip] (#595) Add files and directories created by `pytest-cov`. * Update `_anndata.py` (#596) Change order of default layers to match temporal ordering in biological process. * Fix TestShowProportions (#598) In TestShowProportions::test_layers_not_specified, layers should not be specified but `layers=None` passed instead. * Update `TestCleanObsNames` (#600) Check that `inplace` argument is working correctly. * Test modality passed as string (#602) Add unit tests to `TestMakeDense` and `TestMakeSparse` when `modality` is passed as a string. * Fix `test_not_existing_modality` (#605) Generate layer names with at least two characters to exclude the case `layer='X'`. * Refactor unit test for `l2_norm` (#607) Converts unit test to a test class. 2D arrays and sparse matrices are now generated as well to increase coverage to 100%. * Add `varm` to AnnData strategy (#609) * Add `varm` to AnnData strategy Strategy can now also add entries to `adata.varm`. This is tested by extending the existing unit tests. * Set `max_obs` and `max_vars` to `5` This is an attempt to make the unit tests not in the CI on GitHub due to a time out error by Hypothesis. * Add `TestMerge` (#611) Add test class to unit test `scvelo/core/_anndata.py::merge`. * Update `TestVarDf` (#615) Reduce maximum size of generated AnnData. * Catch error in steady state calculation (#614) * Fix steady state calculation Raise ValueError when `beta` and `gamma` are not positive. * Update `TestSplicingDynamics` Add unit test to verify ValueError is raised when calculating steady states with inadmissible parameter values. * Fix AnnData strategy (#616) Reset `min_varm` and `max_varm` if `varm_keys` is specified. * Update `TestSplicingDynamics` (#618) Add unit tests to * test 2d time points, * verify correct initial states are set/returned, * verify correct steady states are returned. * Fix `TestCleanup` (#620) * Update `DynamicsBase` (#622) Remove redundant return statements to increase test coverage. The abstract methods cannot be tested. * Add `TestGetDf` (#624) Unit tests for `scvelo/core/_anndata.py::get_df`. * Add module `datasets` (#636) * Add module `datasets` The file `datasets.py` is moved to the module and renamed to `_datasets.py`. * Deprecate `pancreatic_endocrinogenesis` * Add `datasets/_simulate.py` Adds file `datasets/_simulate.py` and moves `simulation`, `unspliced`, `spliced` and `vectorize` from `datasets/_datasets.py` to the new file. * Cleanup `datasets/_datasets.py` (#638) * Sort functions alphabetically * Add TODO * Fix `DeprecationWarning` [ci skip] (#640) * Add argument `file_path` (#642) Allow saving/reading datasets to/from custom paths. * Fix gillespie simulation (#644) * Add unit tests for `scvelo.datasets` (#646) * Add `test_datasets.py` Add unit tests for datasets accessible through scvelo. * Add `test_simulate.py` Add unit tests for `scvelo.datasets.simulation`. * Add new datasets to `datasets/__init__.py` (#677) * Fix `csr_vcorrcoef` (#679) * Fix `csr_vcorrcoef` Fixes calculation of Pearson's correlation in `csr_vcorrcoef`. * Add `tests/preprocessing` * Add `TestCsrVcorrcoef` Test class for unit testing `csr_vcorrcoef`. * Update Python versions in CI (#680) * Run linting check in Python 3.8 * Run unit tests in Python 3.9 * Fix and unit test `get_mean_var` (#698) * Fix passing `perc` not affecting result Up to now, passing `perc` does not affect the output as only `data` but not `X` is manipulated. * Fix different size parameters Mean and variance calculation use different size parameters instead of one and the same. * Fix sparse input with `ignore_zeros` or nan values Mean and variance cannot be calculated due to a shape mismatch. * Add `TestGetMeanVar` Unit test `test_get_mean_var`. * Add unit tests for `preprocessing/utils.py` (#700) * Add `TestCheckIfValidDtype` Unit tests `check_if_valid_dtype`. * Add `TestFilter` Unit tests `_filter`. * Add `TestLog1p` Unit tests `log1p`. * Add `TestMaterializeAsNdarray` Unit tests `materialize_as_ndarray`. * Add `TestNotYetNormalized` Unit tests `not_yet_normalized`. * Add `TestFilterGenes` Unit tests `filter_genes`. * Add `TestCountsPerCellQuantile` * Add `TestNormalizePerCell` * Add `tests/_data/` Add subsetted datasets to use in unit tests. * Add `confest.py` Add file to declare fixture for entire testing directory. * Add `TestFilterGenesDispersion` Unit test `filter_genes_dispersion`. * Add `TestFilterAndNormalize` Unit test `filter_and_normalize`. * Add `TestRecipeVelocity` Unit test `recipe_velocity`. * Update AnnData generation for testing (#785) * Update `test_base.py::get_adata` Exclude `"X"` as key of `.layers`, `.obsm` and `.varm`. * Update `test_base.py::TestAdataGeneration` Check that `"X"` is not a key in `.layers`, `.obsm`, `.varm`. * Update `test_anndata.py` Remove redundant statements in `TestCleanup::test_cleanup_some` and `TestSetInitialSize::test_added_columns` according to changes in AnnData generation for tests. * Add `pull_request_template.md` [ci skip] (#787) Add template for pull requests. * Speed up CI (#789) * Update `ci.yml` Remove testing of dataset download from job `test`. Instead, a new job `test-dataset-downloads` is added. * Update `ci.yml` Print execution time of 25 slowest tests. * Update `test_datasets.py` Skip `test_datasets.py::TestDataSets` if Python version is not 3.8 and OS is not Linux. * Refactor `neighbors` (#795) * Split body of `neighbors` over several functions Split body of `neighbors` over several function for easier unit testing. * Add type hints to arguments of `neighbors` * Fix typo in docstrings * Fix `_get_rep` (#797) The variable `rep` is referenced before assignment if the if-else case is not entered. This is fixed by adding a final `else` case. In the following, only the variable `rep` is used. * Refactor testing in CI (#801) * Update `requirements-dev.txt` Add `pytest-cov` to the installed libraries. * Update `ci.yml` Update how dependencies are installed in the `test` job. * Increase Hypothesis deadline in CI (#804) To prevent test failure due to exceeding deadlines, the default deadline of Hypothesis is increased to 500 milliseconds when running the tests in the CI. * Unit test `neighbors.py` (#799) * Add `test_neighbors.py` Add file to host unit tests for `preprocessing/neighbors.py`. * Add `TestGetNeighs` * Add `TestGetNNeighs` * Add `TestGetDuplicateCells` * Add `TestRemoveDuplicateCells` * Add preprocessed adata for testing Add preprocessed versions of `dentategyrus_50obs.h5ad`, `dentategyurs_100obs.h5ad`, `pancreas_50obs.h5ad`, and `pancreas_100obs.h5ad`. * Add fixtures for preprocessed datasets Add fixtures to use preprocessed datasets in unit tests. * Add fixture `adata` The fixture `adata` is used to easily load raw or preprocessed datasets in unit tests. This allows running one and the same unit test on all available datasets. * Add `TestSelectConnectivities` Add unit tests for `select_connectivities`. * Add `TestSelectDistances` Add unit tests for `select_distances`. * Add `TestSetDiagonal` Add unit tests for `set_diagonal`. * Add `TestNeighborsToBeRecomputed` Add unit tests for `neighbors_to_be_recomputed`. * Add `TestVerifyNeighbors` Add unit tests for `verify_neighbors`. * Add `TestGetConnectivities` and accompanying files Add unit tests for `get_connectivities` and saved CSR matrices to verify results. * Add `TestGetCsrFromIndices` Add unit tests for `get_csr_from_indices`. * Add `TestComputeConnectivitiesUmap` Add unit tests for `compute_connectivities_umap` * Add `TestGetRep` Add unit tests for `_get_rep`. * Add `TestSetPCA` Add unit tests for `_set_pca`. * Add `TestGetHnswNeighbors` Add unit tests for `_get_hnsw_neighbors` and corresponding CSR matrices saved using `.npz` format. * Add `TestGetScanpyNeighbors` Add unit tests for `_get_scanpy_neighbors` and corresponding CSR matrices saved using `.npz` format. * Add `TestGetSklearnNeighbors` Add unit tests for `_get_sklearn_neighbors` and corresponding CSR matrices saved using `.npz` format. * Add `TestNeighbors` Adds unit tests for the function `neighbors`. * Unit test `moments.py` (#806) * Add `test_moments.py` Add file to host unit tests of functions in `moments.py`. * Add `TestGetMoments` Add unit tests for `get_moments` and corresponding ground truth moments saved using `.npy` format. * Add `TestSecondOrderMomentsU` Add unit tests for `second_order_moments_u`. * Add `TestSecondOrderMoments` Add unit tests for `second_order_moments` and corresponding moments saved using `.npy` format. * Add `TestMagicImpute` Add unit tests for `magic_imput` and corresponding imputed data saved using `.npy` format. * Add `TestMoments` Add unit tests for `moments` and corresponding first order moments saved using `.npy` format. * Update `requirements-dev.txt` Add `magic-impute` to run unit tests on CI. * Update `docs/` [ci skip] (#810) Recommend `kb count` instead of `loompy fromfq`. * Update `requirements.txt` (#838) Excludes `pandas==1.4.0` to prevent failure as reported in #811. * Fix `optimization.py::get_weight` (#839) Fix `scvelo.tools.optimization.py::get_weight` to work correctly when `perc` is numeric. * Fix inference with `fit_scaling=False` (#848) * Update `DynamicsRecovery` Fix parameter inference to not fit scaling when `fit_scaling=False`. * Update `pre-commit` setup (#855) * Update `requirements-dev.txt` Update versions of `black` and `isort`. * Update `.pre-commit-config.yaml` Update repo paths and versions. * Run `black` Run code formatting with latest version of `black`. * Add argument `file_path` (#853) Adds argument `file_path` to datasets added in `scvelo=0.2.4.`. * Update `CONTRIBUTING.rst` [ci skip] (#911) Details workaround to issue where `pip install -e '.[dev]'` leads to errors on Windows. * Fix saving stream embedding figure (#900) * Fix missing write_key for embedding stream plot. * Set save instead of wire_key when saving embedding stream plot. * Fix `clean_obs_names` (#921) * Fix bug with clean_obs_names Switched implementation to use the previously ignored id_length parameter. New approach finds a substring of length id_length where each of the letters are in the alphabet * Extend tests to cover more cases for clean_obs_names * Fix Pandas display precision (#907) * Update `core/_anndata.py` Update how Pandas displayed precision is set. * Update `core/_anndata.py` Add TODO comment to add a unit test to test the `precision` argument. * Fix documentation issues [ci skip] (#929) * Update `CONTRIBUTING.rst` [ci skip] Update branch name convention. * Update `docs/requirements.txt` [ci skip] Pin `Jinja` version. * Update `docs/source/conf.py` [ci skip] Update `add_stylesheet` with `add_css_file`. The former is deprecated. * Fix typo in `index.rst` [ci skip] * Fix link to bone marrow dataset [ci skip] * Fix `velocity_embedding` docs [ci skip] * Add key contributors section [ci skip] (#930) * Add `_key_contributors.rst` [ci skip] Add file with key contributors and their roles. * Show key contributors on index page [ci skip] * Fix deprecation of keyword argument `copy` (#932) * Add `core/_utils.py` * Add `core/_utils.py::deprecated_arg_names` Modify wrapper from Scanpy to replace old with new keyword argument. The wrapper is modified s.t. `copy=True` corresponds to `inplace=False`, and vice versa. * Make `deprecated_arg_names` importable from `core` * Update import of `deprecated_arg_names` Import local version instead of the Scanpy version s.t. the keyword argument `copy` is handled correctly. * Update `CONTRIBUTING.rst` [ci skip] (#938) Remove reference to `develop` branch as it will be removed in the next release. * Fix linear regression unit tests (#940) * Fix `TestLinearRegression::test_perfect_fit` Replace `array` strategy to generate `x` with `sampled_from`. * Fix `TestLinearRegression::test_perfect_fit_2d` Replace `array` strategy to generate `x` with `sampled_from`. * Update `test_neighbors.py` (#941) Remove failing and non-essential unit tests. See https://github.com/theislab/scvelo/issues/922. * Update release notes [ci skip] (#945) * Remove trailing white spaces * Add notes for `0.2.5` release Co-authored-by: Isaac Virshup <[email protected]> Co-authored-by: Oisin-M <[email protected]> Co-authored-by: Dries Schaumont <[email protected]>