`neighbors` fails with pynndescent 0.7: `'csr_array' object has no attribute 'getnnz'`
I maintainer di solito rispondono entro 1 giorno
Una pull request collegata è già stata integrata.
- #4451 di @eroell — integrata
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 84/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- python
- Ambito
- data, machine-learning
Direzione di ricerca
Leggi _ind_dist_shortcut in scanpy/neighbors/_common.py e segui come gestisce il risultato sparse di PyNNDescentTransformer.fit_transform. Riproduci il problema con l’esempio sc.pp.neighbors dell’issue usando transformer="pynndescent"; i conteggi di np.diff(d.indptr) riportati corrispondono alle righe per entrambi i tipi sparse. Il lavoro è concluso quando l’esempio funziona con pynndescent 0.7 e i test pertinenti continuano a coprire il comportamento esistente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
pynndescent 0.7.0 (released 2026-10-27) returns a scipy.sparse.csr_array from PyNNDescentTransformer.fit_transform (lmcinnes/pynndescent#258). _ind_dist_shortcut in scanpy/neighbors/_common.py calls d.getnnz(axis=1), which sparse arrays don't have, so sc.pp.neighbors fails whenever it uses pynndescent: transformer="pynndescent", or by default from 8192 cells with the euclidean metric.
import anndata as ad, numpy as np, scanpy as sc
adata = ad.AnnData(np.random.default_rng(0).normal(size=(5000, 20)).astype(np.float32))
sc.pp.neighbors(adata, use_rep="X", transformer="pynndescent")
File ".../scanpy/neighbors/_common.py", line 131, in _ind_dist_shortcut
nnzs = d.getnnz(axis=1)
AttributeError: 'csr_array' object has no attribute 'getnnz'. Did you mean: '_getnnz'?
scanpy 1.12.4, pynndescent 0.7.0, scipy 1.18.1, Python 3.12. Pinning pynndescent<0.7 avoids it. The call is unchanged on main; pynndescent 0.6.0 works. np.diff(d.indptr) gives the per-row counts for both csr_matrix and csr_array.
- Lingua principale
- Python
- Stelle
- 2.6k
- Fork
- 808
- Merge medio
- 10h 9m
- PR unite (30g)
- 22
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di scverse/scanpy
-
calculate_qc_metrics gives negative pct_counts_in_top_N_genes for sparse int16 X and fails for sparse unsigned integer XForse già presa @pujitha24 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
`highly_variable_genes(flavor="cell_ranger", n_top_genes=n)` selects 0 genes when the top genes have infinite normalized dispersionForse già presa @jorgoose l’ha presa 17 giorni fa. ApertaTriage 🩺
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
`downsample_counts(total_counts=...)` silently does nothing for Fortran-ordered dense `X`Forse già presa @entity-0-0-2 l’ha presa 22 giorni fa. ApertaTriage 🩺
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
Multi-column `groupby` crashes on non-string observations in dotplot/matrixplot/heatmapForse già presa @barlowa124 l’ha presa 33 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
`highly_variable_genes` with `batch_key` and `subset=True` keeps the wrong genes when `n_top_genes` is not setForse già presa @haeganm l’ha presa 44 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di scverse/scanpy
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
BCDA-APS/polar-bits#93 ·
-
infer_audio_type only recognises one MPEG Layer III frame header, so most MP3 files are rejectedForse già presa @Steve-20-ai l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
[BUG] - ssh_config `Match tagged` statement always appliesForse già presa @AtharvRG l’ha presa oggi. ApertaBug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
paramiko/paramiko#2715 · 1 commento ·
I maintainer di solito rispondono entro 9 giorni
-
auto-rejected intake mcp-intake needs-salvage priority:high type:feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
Ikalus1988/MisakaNet#4221 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno