sc.tl.leiden, restrict_to function not properly working
Open
Nobody has claimed this yet.
Area - Topology 🍩
Needs info❔
- Dominant language
- Python
- Stars
- 2.6k
- Forks
- 779
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 27
Description
Please make sure these conditions are met
- I have checked that this issue has not already been reported.
- I have confirmed this bug exists on the latest version of scanpy.
- (optional) I have confirmed this bug exists on the main branch of scanpy.
What happened?
Tried to run this function:
sc.tl.leiden(test, resolution = 0.1, restrict_to = ('leiden', ['5']))
and instead it is subsetting cluster 5 into over 400 new subsets, even with my resolution set to 0.1. I've also tried different resolutions and none of them work, it ignores the resolution altogether.
Minimal code sample
sc.tl.leiden(test, resolution = 0.1, restrict_to = ('leiden', ['5']))
Error output
No response
Versions
-----
anndata 0.10.3
scanpy 1.9.6
-----
PIL 10.0.1
appnope 0.1.2
asttokens NA
attr 23.1.0
bottleneck 1.3.5
brotli NA
celltypist 1.6.2
certifi 2023.11.17
cffi 1.16.0
chardet 4.0.0
charset_normalizer 2.0.4
cloudpickle 2.2.1
colorama 0.4.6
comm 0.1.2
cycler 0.10.0
cython_runtime NA
cytoolz 0.12.2
dask 2022.7.0
dateutil 2.8.2
debugpy 1.6.7
decorator 5.1.1
decoupler 1.5.0
defusedxml 0.7.1
dill 0.3.7
docrep 0.3.2
entrypoints 0.4
exceptiongroup 1.2.0
executing 0.8.3
fsspec 2023.10.0
h5py 3.7.0
idna 3.4
igraph 0.10.8
inflect NA
ipykernel 6.28.0
ipython_genutils 0.2.0
jedi 0.18.1
jinja2 3.1.3
joblib 1.3.2
jupyter_server 1.23.4
kiwisolver 1.4.4
leidenalg 0.10.1
llvmlite 0.42.0
louvain 0.8.1
lz4 4.3.2
markupsafe 2.1.3
matplotlib 3.8.0
matplotlib_inline 0.1.6
mpl_toolkits NA
natsort 8.4.0
numba 0.59.0
numexpr 2.8.7
numpy 1.26.3
omnipath 1.0.8
packaging 23.1
pandas 2.1.4
parso 0.8.3
patsy 0.5.6
pexpect 4.8.0
pickleshare 0.7.5
pkg_resources NA
platformdirs 3.10.0
plotly 5.9.0
prompt_toolkit 3.0.43
psutil 5.9.0
ptyprocess 0.7.0
pure_eval 0.2.2
pycparser 2.21
pydantic 1.10.12
pydev_ipython NA
pydevconsole NA
pydevd 2.9.5
pydevd_file_utils NA
pydevd_plugins NA
pydevd_tracing NA
pygments 2.15.1
pynndescent 0.5.11
pyparsing 3.0.9
pytz 2023.3.post1
requests 2.31.0
ruamel NA
scipy 1.11.4
seaborn 0.12.2
session_info 1.0.0
setuptools 65.6.3
six 1.16.0
sklearn 1.4.1.post1
snappy NA
socks 1.7.1
sparse 0.14.0
sphinxcontrib NA
stack_data 0.2.0
statsmodels 0.14.1
tblib 1.7.0
texttable 1.7.0
threadpoolctl 2.2.0
tlz 0.12.2
toolz 0.12.0
torch 1.12.1
tornado 6.1
tqdm 4.65.0
traitlets 5.7.1
typing_extensions NA
umap 0.5.5
urllib3 1.26.18
wcwidth 0.2.5
wrapt 1.14.1
yaml 6.0.1
zipp NA
zmq 25.1.2
zoneinfo NA
zope NA
zstandard 0.19.0
-----
IPython 8.20.0
jupyter_client 7.3.4
jupyter_core 5.5.0
jupyterlab 3.5.3
notebook 6.5.2
-----
Python 3.10.13 (main, Sep 11 2023, 08:16:02) [Clang 14.0.6 ]
macOS-14.1.2-arm64-arm-64bit
-----
Session information updated at 2024-03-12 14:52
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the sc.tl.leiden call and minimal code sample in the issue, then trace the restrict_to behavior in Scanpy's Leiden implementation. Reproduce the reported case and verify that the selected cluster is not split into hundreds of subsets and that the resolution value affects the result.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100