Skip to content

Releases: scverse/decoupler

v2.3.1

Choose a tag to compare

@PauBadiaM PauBadiaM released this 26 Oct 20:53
Immutable release. Only release title and notes can be modified.
27a1be7

2.3.1

Bugfixes

  • Fixed mt.zscore swapping the KSEA and RoKAI flavors, restoring the behaviour of decoupler<2. Scores from the default RoKAI flavor change (#382)
  • Fixed mt.gsea giving p-values of 0 when no permutation reached the observed score. The observed score is now counted as one of the permutations, as in mt.waggr (#383)
  • Fixed mt.waggr aborting the Python process with numba's workqueue threading layer (default when TBB/OpenMP are unavailable, e.g. macOS arm64) due to nested parallel regions

v2.3.0

Choose a tag to compare

@PauBadiaM PauBadiaM released this 24 Oct 00:02
Immutable release. Only release title and notes can be modified.
f78f5be

2.3.0

Changes

  • Updated the bundled decoupler Agent Skill, and decoupler-install-skills now supports multiple agent frameworks
  • pp.filter_by_prop now defaults to min_prop=0.1 (was 0.2) to match the value used in the vignettes
  • ds.msvisium now returns log-normalized data (sc.pp.normalize_total + sc.pp.log1p), with the log-normalized matrix also stored in adata.layers["norm"], instead of raw counts
  • Dropped support for Python 3.11; decoupler now requires Python 3.12 or newer
  • Updated to the scverse cookiecutter template v0.8.0 (hash-pinned GitHub Actions checked by zizmor, prek instead of pre-commit, sphinx-design instead of sphinx-tabs, shared Sphinx extensions from scverse-misc)

Bugfixes

  • Fixed mt.ora selecting the bottom nvar - n_up features instead of the top n_up ones. Ranks are ascending, so the threshold is now nvar - n_up, restoring the behaviour of decoupler<2. With the default n_up (top 5%) this selected 95% of the features as observed, which also made mt.ora fail with invalid contingency table whenever nvar - n_up exceeded n_bg (#346)
  • Fixed n_bm in mt.ora selecting the bottom n_bm - 1 features instead of n_bm
  • mt.ora now validates that n_up and n_bm do not overlap and that n_bg is large enough for the number of selected features, instead of failing inside the Fisher exact test
  • mt.query_set now raises an informative error when n_bg is smaller than the number of features to test, instead of failing inside scipy.stats.fisher_exact
  • Fixed mt.gsea not shuffling the permutation indices when seed=0, which produced identical permutations and invalid p-values (#355)
  • Fixed mt.waggr folding its already two-sided permutation p-values as one-sided, which gave scores near 0 the smallest p-value (#373)
  • Fixed pl.dotplot showing an empty size legend when all dots have the same size (#370)
  • Fixed ds.msvisium failing with HTTP 403 by fetching the spot metadata from cells.ucsc.edu instead of the cells-test.gi.ucsc.edu mirror

v2.2.0

Choose a tag to compare

@PauBadiaM PauBadiaM released this 11 Jul 00:57
7e8e957

2.2.0

Added

  • Bundled a Claude Code Agent Skill that teaches coding agents to use decoupler correctly (method selection, calling conventions, output locations, priors, datasets, and benchmarking)
  • Added the decoupler-install-skills console script to install the skill into ~/.claude/skills/decoupler/ (use --force to refresh after upgrading, or --print-path to point CLAUDE_SKILLS_PATH at the bundled copy in place)

v2.1.6

Choose a tag to compare

@PauBadiaM PauBadiaM released this 13 Apr 06:19

Bugfixes

  • Fixed op.translate (and every op.resource call for non-human organisms) failing with HTTP 404 after HGNC dropped the genenames/ subtree from the EBI FTP mirror; the HCOP fifteen-column files are now fetched from the new HGNC Google Cloud Storage bucket (#303)
  • Removed a redundant pd.read_csv call in op.translate that re-downloaded the HCOP file a second time and bypassed the retry logic in _download
  • Fixed bm.benchmark ground-truth matrix row order not matching score matrix after pivot, which silently misaligned perturbation labels when obs names sort differently from their original order (#302)

v2.1.5

Choose a tag to compare

@PauBadiaM PauBadiaM released this 06 Apr 20:35

Added

  • pl.volcano now accepts a gene name (str) or list of gene names (list[str]) for the top parameter to annotate specific features on volcano plots

Changes

  • Refactored ds.ensmbl_to_symbol to reuse _download and fixed mirror fallback to actually switch between Ensembl mirrors
  • Made tqdm progress bar compact in _download

Bugfixes

  • Fixed pl.dotplot ignoring vcenter=0 due to falsy check (#293)
  • Fixed _log setting the root logging level to INFO for all packages (#296)

v2.1.4

Choose a tag to compare

@PauBadiaM PauBadiaM released this 16 Jan 22:52
093554f

2.1.4

Changes

  • Added alternative argument to decoupler.mt.query_set. By default 'greater', before it was 'two-sided'
  • Unpinned scipy version limit

Bugfixes

  • Fixed missing progressbar for decoupler._download._download
  • Added missing decoupler.mt.query_set documentation

v2.1.3

Choose a tag to compare

@PauBadiaM PauBadiaM released this 06 Jan 19:12
b232862
  • pp.adjmat now returns the same features as used as input instead of the subset of net
  • pp.pseudobulk now returns the same order features as used as input instead of shuffling them
  • Added a dedicated header and 5 attempts to _download to mitigate 429 Client Error from Zenodo downloads

v2.1.2

Choose a tag to compare

@PauBadiaM PauBadiaM released this 07 Nov 19:31
5b8f9e0

Added

  • pp.query_set to test overlap between a given feature set against a database of sets

Changes

  • tl.rankby_obsm now accepts AnnData.obs column names specified in the obs_keys argument
  • Most plotting functions now accept extra arguments through kw_ arguments.
  • p-values now are corrected using a custom numba-optimized version of scipy.stats.false_discovery_control called _fdr_bh_axis1_numba

v2.1.1

Choose a tag to compare

@PauBadiaM PauBadiaM released this 18 Jul 05:11
545c96a

2.1.1

Added

  • mypy checks in CI
  • notebook checks in CI

Bugfixes

  • Fixed error in decoupler.pp.pseudobulk when adata.obs_names were not unique, now throws verbose error
  • Fixed corner case in decoupler.mt.gsea when p-values were infitite and could not be corrected

v2.1.0

Choose a tag to compare

@PauBadiaM PauBadiaM released this 09 Jul 06:57
38b50dc

Changes

  • Updated logo
  • decoupler._download._download now returns bytes instead of a dataframe. To transform to pandas.DataFrame use decoupler._download._bytes_to_pandas
  • Enrichment methods and pseudobulking now work with backed AnnData objects, useful when working with big datasets and memory is limited

Bugfixes

  • Fixed error in pl.obsm where default value of cmap_obs was not properly set.