New in this version
- Added GPU support for large datasets by @earmingol in #4
- New optional install extra:
pip install pyucell[gpu](addstorch>=2.1). - Vectorised neighbour-weight construction in
smooth_knn_scores: the per-cell
Python loop is replaced by a single sparse matmul, faster even on CPU. - Implement scoring from pre-computed rank matrix. This can be useful to test
new signature without recalculating ranks, but can demand more memory as it
requires storing the full rank matrix (unlike the regular pipeline, which
utilizes chunks of cells). - Fixed some edge cases, e.g. a 1-gene signature with
max_rank=1and
missing_genes="skip"and all signature genes are absent. - Fixed
smooth_knn_scoressilently overwritingadata.obsp["connectivities"]
when called withoutgraph_key. The internally computed graph is now stored
under the dedicated key"smooth_knn_connectivities"to avoid clobbering
pre-existing neighbor graphs used for UMAP/clustering. - Fixed self-loop double-counting in
_build_weight_matrix: diagonal entries
are now stripped from the input graph before computing neighbor weights.
Full Changelog: v0.6.0...v0.7.3