mcp>=1.17.0
numpy>=1.21.0
pandas>=1.3.0
scipy>=1.7.0
scikit-learn>=1.0.0
matplotlib>=3.5.0
seaborn>=0.11.0
Pillow>=8.0.0
scanpy<2.0,>=1.9.0
anndata>=0.11.0
squidpy>=1.2.0
umap-learn>=0.5.0
igraph>=0.9.0
leidenalg>=0.8.0
pydantic<3.0,>=2.0.0
click>=8.0.0
aiohttp>=3.8.0
jinja2>=3.0.0

[cell-communication]
liana
cellphonedb<6.0,>=5.0.0
fastccc>=0.1.0

[deconvolution]
flashdeconv>=0.1.0
cell2location>=0.1.4

[deep-learning]
torch<3.0,>=2.0.0
scvi-tools<2.0,>=1.0.0
mudata>=0.2.0

[dev]
pytest>=8.0.0
pytest-asyncio<2.0,>=0.23.0
black<26.0,>=22.0.0
mypy<2.0,>=1.0.0
ruff>=0.1.0
isort>=5.0.0
pre-commit<5.0,>=3.0.0

[full]
scvi-tools<2.0,>=1.0.0
mudata>=0.2.0
scvelo>=0.2.5
liana
cellphonedb<6.0,>=5.0.0
fastccc>=0.1.0
harmonypy>=0.0.9
bbknn>=1.5.0
flashdeconv>=0.1.0
esda>=2.4.0
libpysal>=4.6.0
gseapy>=1.0.0
torch<3.0,>=2.0.0
GraphST>=1.1.0
cell2location>=0.1.4
cellrank<3.0,>=2.0.0
palantir>=1.0.0
scanorama>=1.7.0
spatialde>=1.1.3
scikit-misc>=0.5.0
tangram-sc>=1.0.0
mllmcelltype>=0.1.0
rpy2<3.7,>=3.5.0
anndata2ri>=1.3.0
pysal>=2.6.0
statsmodels>=0.13.0
networkx>=2.6.0
POT>=0.9.0
paste-bio>=1.0.0
infercnvpy>=0.4.0
pydeseq2>=0.4.0
enrichmap
statannotations>=0.2.0
pygam>=0.8.0
scikit-gstat>=1.0.0
adjustText>=0.8.0
splot>=1.1.0
spatialdata>=0.2.0

[full:sys_platform != "win32"]
singler>=0.4.0
singlecellexperiment>=0.4.0
celldex>=0.3.0

[hpc]

[hpc:sys_platform != "win32"]
petsc4py<4.0,>=3.18.0
slepc4py<4.0,>=3.18.0

[integration]
harmonypy>=0.0.9
bbknn>=1.5.0
scanorama>=1.7.0

[spatial-domains]
SpaGCN<2.0,>=1.2.5
pybanksy>=1.3.4

[spatial-stats]
esda>=2.4.0
libpysal>=4.6.0
pysal>=2.6.0
statsmodels>=0.13.0
networkx>=2.6.0

[velocity]
scvelo>=0.2.5
