spatialcell


Namespatialcell JSON
Version 1.1.1 PyPI version JSON
download
home_pagehttps://github.com/Xinyan-C/Spatialcell
SummaryIntegrated pipeline for spatial transcriptomics cell segmentation and annotation using QuPath, Bin2cell, and TopAct
upload_time2025-07-27 14:07:53
maintainerNone
docs_urlNone
authorXinyan
requires_python>=3.10
licenseNone
keywords spatial-transcriptomics cell-segmentation cell-annotation qupath bin2cell topact bioinformatics single-cell
VCS
bugtrack_url
requirements anndata anyio argon2-cffi argon2-cffi-bindings aria2 array_api_compat arrow asttokens async-lru attrs babel beautifulsoup4 bin2cell bleach Bottleneck bypy certifi cffi charset-normalizer comm contourpy cramjam csbdeep cycler debugpy decorator defusedxml dill exceptiongroup executing fastjsonschema fastparquet fonttools fqdn fsspec h11 h5py httpcore httpx idna igraph imageio ipykernel ipython isoduration jedi Jinja2 joblib json5 jsonpointer jsonschema jsonschema-specifications jupyter-events jupyter-lsp jupyter_client jupyter_core jupyter_server jupyter_server_terminals jupyterlab jupyterlab_pygments jupyterlab_server kiwisolver legacy-api-wrap leidenalg llvmlite MarkupSafe matplotlib matplotlib-inline mistune mkl-service mkl_fft mkl_random multiprocess natsort nbclient nbconvert nbformat nest-asyncio networkx notebook notebook_shim numba numexpr numpy opencv-python overrides packaging pandas pandocfilters parso patsy pexpect pillow platformdirs prometheus_client prompt-toolkit psutil ptyprocess pure-eval py_find_1st pycparser Pygments pynndescent pyparsing python-dateutil python-json-logger pytz PyWavelets PyYAML pyzmq referencing requests requests-toolbelt rfc3339-validator rfc3986-validator rpds-py scanpy scikit-image scikit-learn scipy seaborn Send2Trash session-info2 six sniffio soupsieve stack-data stardist statsmodels terminado texttable threadpoolctl tifffile tinycss2 tomli topact tornado tqdm traitlets types-python-dateutil typing_extensions tzdata umap-learn uri-template urllib3 wcwidth webcolors webencodings websocket-client tensorflow
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # SpatialCell: Integrated Spatial Transcriptomics Analysis Pipeline

[![SpatialCell](https://raw.githubusercontent.com/Xinyan-C/Spatialcell/main/SpatialCell.png)](https://github.com/Xinyan-C/Spatialcell)

[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![GitHub issues](https://img.shields.io/github/issues/Xinyan-C/Spatialcell)](https://github.com/Xinyan-C/Spatialcell/issues)

**SpatialCell** is an integrated computational pipeline for spatial transcriptomics analysis that combines cell segmentation and automated cell type annotation. It seamlessly integrates **Stardist (applied as QuPath plugin for cell detection)** for histological image analysis, **Bin2cell** for spatial cell segmentation, and **TopAct** for machine learning-based cell classification.

## 🚀 Key Features

- **Multi-scale Cell Segmentation**: Stardist-enabled QuPath cell detection with Bin2cell spatial segmentation  
- **Automated Cell Annotation**: TopAct-based machine learning classification  
- **ROI-aware Processing**: Region-of-interest focused analysis for large datasets  
- **Scalable Pipeline**: Support for multiple developmental time points (e.g., E14.5, E18.5, P3) and samples  
- **Visualization Tools**: Comprehensive plotting and export capabilities  
- **Modular Design**: Easy to customize and extend for specific research needs  

## 🔧 Installation

### Prerequisites

- Python 3.10 or higher  
- QuPath (for histological image analysis)  
- Git  
- Operating Systems tested: Ubuntu 22.04.03, MacOS 15.5  
- Hardware: Standard desktop CPU; GPU not required but optional for accelerated image processing  
- Additional Python dependencies are listed in `requirements.txt`

### Typical installation time

Installation usually completes within 5 minutes on a stable internet connection and a typical desktop computer.

### Quick Install (Recommended)
To enable full functionality including TopAct classification, please install TopAct separately:

```bash
pip install spatialcell
pip install git+https://gitlab.com/kfbenjamin/topact.git
```

### Alternative: Install from Source

```bash
# Clone the repository
git clone https://github.com/Xinyan-C/Spatialcell.git
cd Spatialcell

# Install dependencies
pip install -r requirements.txt

# Install the package in editable mode
pip install -e .
```

## 📋 Demo Data and tutorial notebook

The `examples/` directory contains the tutorial notebook to quickly test and understand SpatialCell. 
Demo datasets for E14.5, E18.5, and P3 are archived on Zenodo (https://zenodo.org/records/16400171)


### Expected output

- **ROI coordinates** saved as a `.txt` file  
  - e.g. `examples/demo_data/E18.5_ranges.txt`  

- **Binary segmentation masks** saved as `.npz` files  
  - e.g. `examples/demo_data/E18.5_qupath.npz`  

- **Spatial segmentation results** under `examples/demo_data/demo_output/`(more information at https://github.com/Teichlab/bin2cell.git):  
  - **Data/**  
    - `E18.5_2um.h5ad` — AnnData containing 2 μm‐bin counts and coordinates for the entire sample  
    - `E18.5_b2c.h5ad` — Bin2cell‐reconstructed cell‐level AnnData for the entire sample  
  - **ROI_Data/** (one subfolder per ROI: CS1, CS2, WT1)  
    - `{ROI}_adata.h5ad` — Spot‐level AnnData extracted for that specific region  
    - `{ROI}_cdata.h5ad` — Cell‐level AnnData (Bin2cell output) for that region  
  - **destripe/**, **expanded_labels/**, **gex_labels/**, **joint_labels/**, **joint_labels_all/**, **npz_labels/**, **render_gex/**, **render_labels/**, **segmentation/**  
    - PDF reports (quality‐control and visualization overlays) for each processing step  
  - **Log file**  
    - `spatial_processing.log` — Records parameters (e.g. `prob_thresh`, `nms_thresh`), runtime info, and warnings  

- **Cell annotation outputs** under `examples/demo_data/demo_output/cell_annotation/`:  
  - `outfile_<sample>_<sample>_-_<ROI>.npy`  
    - NumPy arrays of per-cell feature matrices (e.g. classification probabilities or aggregated counts) for each ROI (CS1, CS2, WT1)  
  - `sd_<sample>_<sample>_-_<ROI>.joblib`  
    - Serialized TopACT classifier models saved after training or calibration on each ROI  
  - `spatial_data_<sample>_roi.joblib`  
    - Serialized AnnData object containing spatially indexed spot‐level and cell‐level data passed into TopACT for classification  

- **Visualization outputs** under `examples/demo_data/demo_output/visualizations/`:  
  For each ROI (CS1, CS2, WT1):  
  - `Spatial_Classification_<sample>_-_<ROI>_overlay.pdf`  
    - Cell type predictions overlaid directly on the high‐resolution tissue image  
  - `Spatial_Classification_<sample>_-_<ROI>_side_by_side.pdf`  
    - Side-by-side panels showing (left) raw segmentation mask and (right) classification overlay for comparison  
  - `Spatial_Classification_<sample>_-_<ROI>.pdf`  
    - High-resolution, publication-ready map of predicted cell types (colored segmentation)  

### Runtime estimate

Approximately 30-45 minutes on a standard desktop for the demo dataset.

## 📖 Usage Instructions

The easiest way to accomplish the pipeline is with our Jupyter notebook tutorial, the tutorial covers the complete workflow from ROI extraction to visualization.

## 🗂️ Project Structure

```
Spatialcell/
├── spatialcell/                    # Main package
│   ├── qupath_scripts/             # QuPath-Stardist integration scripts
│   ├── preprocessing/              # Data preprocessing modules
│   ├── spatial_segmentation/       # Bin2cell integration
│   ├── cell_annotation/            # TopAct classification
│   └── utils/                      # Utility functions
├── examples/                       # Tutorial notebook
│   └── SpatialCell_Demo.ipynb      # Jupyter notebooks for tutorial and article reproducibility
├── requirements.txt                # Python dependencies
├── setup.py                       # Package installation script
└── README.md                      # This file
```


## 🔬 Workflow Overview

1. **ROI Coordinate Extraction**: Extract region-of-interest coordinates from Loupe Browser exports
2. **Nucleus detection**: StarDist-based nucleus detection via QuPath with SVG export
3. **Data Preprocessing**: SVG to NPZ conversion and label mask generation
4. **Spatial Segmentation**: Bin2cell integration with nucleus boundaries and label expansion
5. **Reference Data Processing**: Extract training data from Seurat RDS files 
6. **Classifier Training**: Train TopAct machine learning models for cell type annotation
7. **Cell Type Classification**: Apply TopAct classifiers for spatial cell type prediction
8. **Comprehensive Visualization**: Multi-scale plotting, overlay generation, and result export


## 📝 License

SpatialCell is licensed under the **Apache License 2.0**, which includes patent protection and allows commercial use.

### Dependency Licenses:

- **bin2cell**: MIT License (automatically installed)  
- **TopAct**: GPL v3 License (optional, user installs separately)  

Note: Users should be aware of GPL license requirements when installing TopAct.

For full license text, see the [LICENSE](https://github.com/Xinyan-C/Spatialcell/blob/main/LICENSE) file.

## 📚 Article reproducibility

Jupyter notebooks (e.g. `examples/SpatialCell_Demo.ipynb`) needed to reproduce our analyses in the article *Spatiotemporal Single-Cell Atlas of Suture Stem Cell Dynamics in Craniosynostosis* are included in the `examples/` directory. A minimal example dataset for E14.5, E18.5, and P3 is archived on Zenodo (https://zenodo.org/records/16400171).

## 📄 Citation

If you use SpatialCell in your research, please cite:

```bibtex
@software{spatialcell2025,
  author = {Xinyan},
  title = {SpatialCell: Integrated Spatial Transcriptomics Analysis Pipeline},
  url = {https://github.com/Xinyan-C/Spatialcell},
  year = {2025}
}
```

## 📧 Contact

- **Author**: Xinyan  
- **Email**: keepandon@gmail.com  
- **GitHub**: [@Xinyan-C](https://github.com/Xinyan-C)  

## 🔗 References

- **QuPath**: Bankhead P, Loughrey MB, Fernández JA, et al. QuPath: Open source software for digital pathology image analysis. Sci Rep. 2017;7(1):16878. doi:10.1038/s41598-017-17204-5  
- **Stardist**: Schmidt U, Weigert M, Broaddus C, Myers G. Cell detection with star-convex polygons. MICCAI 2018: 265-273. doi:10.1007/978-3-030-00934-2_30  
- **Bin2cell**: Polański K, Bartolomé-Casado R, Sarropoulos I, et al. Bin2cell reconstructs cells from high resolution visium HD data. Bioinformatics. 2024;40(9):btae546. doi:10.1093/bioinformatics/btae546  
- **TopAct**: Benjamin K, Bhandari A, Kepple JD, et al. Multiscale topology classifies cells in subcellular spatial transcriptomics. Nature. 2024;630(8018):943-949. doi:10.1038/s41586-024-07563-1  
- **Scanpy**: Wolf FA, Angerer P, Theis FJ. SCANPY: large-scale single-cell gene expression data analysis. Genome Biology. 2018;19(1):15. doi:10.1186/s13059-017-1382-0  

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Xinyan-C/Spatialcell",
    "name": "spatialcell",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "spatial-transcriptomics, cell-segmentation, cell-annotation, QuPath, Bin2cell, TopAct, bioinformatics, single-cell",
    "author": "Xinyan",
    "author_email": "Xinyan <keepandon@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/13/e3/4e2f22d5519552df9dd68ebbcc39b75fced3faf650b35f5e3302925fb0d0/spatialcell-1.1.1.tar.gz",
    "platform": null,
    "description": "# SpatialCell: Integrated Spatial Transcriptomics Analysis Pipeline\n\n[![SpatialCell](https://raw.githubusercontent.com/Xinyan-C/Spatialcell/main/SpatialCell.png)](https://github.com/Xinyan-C/Spatialcell)\n\n[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![GitHub issues](https://img.shields.io/github/issues/Xinyan-C/Spatialcell)](https://github.com/Xinyan-C/Spatialcell/issues)\n\n**SpatialCell** is an integrated computational pipeline for spatial transcriptomics analysis that combines cell segmentation and automated cell type annotation. It seamlessly integrates **Stardist (applied as QuPath plugin for cell detection)** for histological image analysis, **Bin2cell** for spatial cell segmentation, and **TopAct** for machine learning-based cell classification.\n\n## \ud83d\ude80 Key Features\n\n- **Multi-scale Cell Segmentation**: Stardist-enabled QuPath cell detection with Bin2cell spatial segmentation  \n- **Automated Cell Annotation**: TopAct-based machine learning classification  \n- **ROI-aware Processing**: Region-of-interest focused analysis for large datasets  \n- **Scalable Pipeline**: Support for multiple developmental time points (e.g., E14.5, E18.5, P3) and samples  \n- **Visualization Tools**: Comprehensive plotting and export capabilities  \n- **Modular Design**: Easy to customize and extend for specific research needs  \n\n## \ud83d\udd27 Installation\n\n### Prerequisites\n\n- Python 3.10 or higher  \n- QuPath (for histological image analysis)  \n- Git  \n- Operating Systems tested: Ubuntu 22.04.03, MacOS 15.5  \n- Hardware: Standard desktop CPU; GPU not required but optional for accelerated image processing  \n- Additional Python dependencies are listed in `requirements.txt`\n\n### Typical installation time\n\nInstallation usually completes within 5 minutes on a stable internet connection and a typical desktop computer.\n\n### Quick Install (Recommended)\nTo enable full functionality including TopAct classification, please install TopAct separately:\n\n```bash\npip install spatialcell\npip install git+https://gitlab.com/kfbenjamin/topact.git\n```\n\n### Alternative: Install from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/Xinyan-C/Spatialcell.git\ncd Spatialcell\n\n# Install dependencies\npip install -r requirements.txt\n\n# Install the package in editable mode\npip install -e .\n```\n\n## \ud83d\udccb Demo Data and tutorial notebook\n\nThe `examples/` directory contains the tutorial notebook to quickly test and understand SpatialCell. \nDemo datasets for E14.5, E18.5, and P3 are archived on Zenodo (https://zenodo.org/records/16400171)\n\n\n### Expected output\n\n- **ROI coordinates** saved as a `.txt` file  \n  - e.g. `examples/demo_data/E18.5_ranges.txt`  \n\n- **Binary segmentation masks** saved as `.npz` files  \n  - e.g. `examples/demo_data/E18.5_qupath.npz`  \n\n- **Spatial segmentation results** under `examples/demo_data/demo_output/`(more information at https://github.com/Teichlab/bin2cell.git):  \n  - **Data/**  \n    - `E18.5_2um.h5ad` \u2014 AnnData containing 2 \u03bcm\u2010bin counts and coordinates for the entire sample  \n    - `E18.5_b2c.h5ad` \u2014 Bin2cell\u2010reconstructed cell\u2010level AnnData for the entire sample  \n  - **ROI_Data/** (one subfolder per ROI: CS1, CS2, WT1)  \n    - `{ROI}_adata.h5ad` \u2014 Spot\u2010level AnnData extracted for that specific region  \n    - `{ROI}_cdata.h5ad` \u2014 Cell\u2010level AnnData (Bin2cell output) for that region  \n  - **destripe/**, **expanded_labels/**, **gex_labels/**, **joint_labels/**, **joint_labels_all/**, **npz_labels/**, **render_gex/**, **render_labels/**, **segmentation/**  \n    - PDF reports (quality\u2010control and visualization overlays) for each processing step  \n  - **Log file**  \n    - `spatial_processing.log` \u2014 Records parameters (e.g. `prob_thresh`, `nms_thresh`), runtime info, and warnings  \n\n- **Cell annotation outputs** under `examples/demo_data/demo_output/cell_annotation/`:  \n  - `outfile_<sample>_<sample>_-_<ROI>.npy`  \n    - NumPy arrays of per-cell feature matrices (e.g. classification probabilities or aggregated counts) for each ROI (CS1, CS2, WT1)  \n  - `sd_<sample>_<sample>_-_<ROI>.joblib`  \n    - Serialized TopACT classifier models saved after training or calibration on each ROI  \n  - `spatial_data_<sample>_roi.joblib`  \n    - Serialized AnnData object containing spatially indexed spot\u2010level and cell\u2010level data passed into TopACT for classification  \n\n- **Visualization outputs** under `examples/demo_data/demo_output/visualizations/`:  \n  For each ROI (CS1, CS2, WT1):  \n  - `Spatial_Classification_<sample>_-_<ROI>_overlay.pdf`  \n    - Cell type predictions overlaid directly on the high\u2010resolution tissue image  \n  - `Spatial_Classification_<sample>_-_<ROI>_side_by_side.pdf`  \n    - Side-by-side panels showing (left) raw segmentation mask and (right) classification overlay for comparison  \n  - `Spatial_Classification_<sample>_-_<ROI>.pdf`  \n    - High-resolution, publication-ready map of predicted cell types (colored segmentation)  \n\n### Runtime estimate\n\nApproximately 30-45 minutes on a standard desktop for the demo dataset.\n\n## \ud83d\udcd6 Usage Instructions\n\nThe easiest way to accomplish the pipeline is with our Jupyter notebook tutorial, the tutorial covers the complete workflow from ROI extraction to visualization.\n\n## \ud83d\uddc2\ufe0f Project Structure\n\n```\nSpatialcell/\n\u251c\u2500\u2500 spatialcell/                    # Main package\n\u2502   \u251c\u2500\u2500 qupath_scripts/             # QuPath-Stardist integration scripts\n\u2502   \u251c\u2500\u2500 preprocessing/              # Data preprocessing modules\n\u2502   \u251c\u2500\u2500 spatial_segmentation/       # Bin2cell integration\n\u2502   \u251c\u2500\u2500 cell_annotation/            # TopAct classification\n\u2502   \u2514\u2500\u2500 utils/                      # Utility functions\n\u251c\u2500\u2500 examples/                       # Tutorial notebook\n\u2502   \u2514\u2500\u2500 SpatialCell_Demo.ipynb      # Jupyter notebooks for tutorial and article reproducibility\n\u251c\u2500\u2500 requirements.txt                # Python dependencies\n\u251c\u2500\u2500 setup.py                       # Package installation script\n\u2514\u2500\u2500 README.md                      # This file\n```\n\n\n## \ud83d\udd2c Workflow Overview\n\n1. **ROI Coordinate Extraction**: Extract region-of-interest coordinates from Loupe Browser exports\n2. **Nucleus detection**: StarDist-based nucleus detection via QuPath with SVG export\n3. **Data Preprocessing**: SVG to NPZ conversion and label mask generation\n4. **Spatial Segmentation**: Bin2cell integration with nucleus boundaries and label expansion\n5. **Reference Data Processing**: Extract training data from Seurat RDS files \n6. **Classifier Training**: Train TopAct machine learning models for cell type annotation\n7. **Cell Type Classification**: Apply TopAct classifiers for spatial cell type prediction\n8. **Comprehensive Visualization**: Multi-scale plotting, overlay generation, and result export\n\n\n## \ud83d\udcdd License\n\nSpatialCell is licensed under the **Apache License 2.0**, which includes patent protection and allows commercial use.\n\n### Dependency Licenses:\n\n- **bin2cell**: MIT License (automatically installed)  \n- **TopAct**: GPL v3 License (optional, user installs separately)  \n\nNote: Users should be aware of GPL license requirements when installing TopAct.\n\nFor full license text, see the [LICENSE](https://github.com/Xinyan-C/Spatialcell/blob/main/LICENSE) file.\n\n## \ud83d\udcda Article reproducibility\n\nJupyter notebooks (e.g. `examples/SpatialCell_Demo.ipynb`) needed to reproduce our analyses in the article *Spatiotemporal Single-Cell Atlas of Suture Stem Cell Dynamics in Craniosynostosis* are included in the `examples/` directory. A minimal example dataset for E14.5, E18.5, and P3 is archived on Zenodo (https://zenodo.org/records/16400171).\n\n## \ud83d\udcc4 Citation\n\nIf you use SpatialCell in your research, please cite:\n\n```bibtex\n@software{spatialcell2025,\n  author = {Xinyan},\n  title = {SpatialCell: Integrated Spatial Transcriptomics Analysis Pipeline},\n  url = {https://github.com/Xinyan-C/Spatialcell},\n  year = {2025}\n}\n```\n\n## \ud83d\udce7 Contact\n\n- **Author**: Xinyan  \n- **Email**: keepandon@gmail.com  \n- **GitHub**: [@Xinyan-C](https://github.com/Xinyan-C)  \n\n## \ud83d\udd17 References\n\n- **QuPath**: Bankhead P, Loughrey MB, Fern\u00e1ndez JA, et al. QuPath: Open source software for digital pathology image analysis. Sci Rep. 2017;7(1):16878. doi:10.1038/s41598-017-17204-5  \n- **Stardist**: Schmidt U, Weigert M, Broaddus C, Myers G. Cell detection with star-convex polygons. MICCAI 2018: 265-273. doi:10.1007/978-3-030-00934-2_30  \n- **Bin2cell**: Pola\u0144ski K, Bartolom\u00e9-Casado R, Sarropoulos I, et al. Bin2cell reconstructs cells from high resolution visium HD data. Bioinformatics. 2024;40(9):btae546. doi:10.1093/bioinformatics/btae546  \n- **TopAct**: Benjamin K, Bhandari A, Kepple JD, et al. Multiscale topology classifies cells in subcellular spatial transcriptomics. Nature. 2024;630(8018):943-949. doi:10.1038/s41586-024-07563-1  \n- **Scanpy**: Wolf FA, Angerer P, Theis FJ. SCANPY: large-scale single-cell gene expression data analysis. Genome Biology. 2018;19(1):15. doi:10.1186/s13059-017-1382-0  \n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Integrated pipeline for spatial transcriptomics cell segmentation and annotation using QuPath, Bin2cell, and TopAct",
    "version": "1.1.1",
    "project_urls": {
        "Bug Reports": "https://github.com/Xinyan-C/Spatialcell/issues",
        "Changelog": "https://github.com/Xinyan-C/Spatialcell/releases",
        "Documentation": "https://github.com/Xinyan-C/Spatialcell#readme",
        "Homepage": "https://github.com/Xinyan-C/Spatialcell",
        "Repository": "https://github.com/Xinyan-C/Spatialcell",
        "Source Code": "https://github.com/Xinyan-C/Spatialcell"
    },
    "split_keywords": [
        "spatial-transcriptomics",
        " cell-segmentation",
        " cell-annotation",
        " qupath",
        " bin2cell",
        " topact",
        " bioinformatics",
        " single-cell"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1c7072f41a7310fc3eada9c405386d002fa780d8e7d0046b4ed9a6630e986252",
                "md5": "88e80bb74b8582bc2155245a43f2e8a9",
                "sha256": "882994973478fa68069544635e5b1f33cb28dbb68e93ccda327182744753299d"
            },
            "downloads": -1,
            "filename": "spatialcell-1.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "88e80bb74b8582bc2155245a43f2e8a9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 76836,
            "upload_time": "2025-07-27T14:07:51",
            "upload_time_iso_8601": "2025-07-27T14:07:51.460156Z",
            "url": "https://files.pythonhosted.org/packages/1c/70/72f41a7310fc3eada9c405386d002fa780d8e7d0046b4ed9a6630e986252/spatialcell-1.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "13e34e2f22d5519552df9dd68ebbcc39b75fced3faf650b35f5e3302925fb0d0",
                "md5": "07402db6d72935e2f3165668e9a6479b",
                "sha256": "2093f599fd956db23b7f3f29879a37f35c03b335e3babf171bba9ec66010b749"
            },
            "downloads": -1,
            "filename": "spatialcell-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "07402db6d72935e2f3165668e9a6479b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 74250,
            "upload_time": "2025-07-27T14:07:53",
            "upload_time_iso_8601": "2025-07-27T14:07:53.302030Z",
            "url": "https://files.pythonhosted.org/packages/13/e3/4e2f22d5519552df9dd68ebbcc39b75fced3faf650b35f5e3302925fb0d0/spatialcell-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-27 14:07:53",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Xinyan-C",
    "github_project": "Spatialcell",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "anndata",
            "specs": [
                [
                    "==",
                    "0.11.3"
                ]
            ]
        },
        {
            "name": "anyio",
            "specs": [
                [
                    "==",
                    "4.9.0"
                ]
            ]
        },
        {
            "name": "argon2-cffi",
            "specs": [
                [
                    "==",
                    "23.1.0"
                ]
            ]
        },
        {
            "name": "argon2-cffi-bindings",
            "specs": [
                [
                    "==",
                    "21.2.0"
                ]
            ]
        },
        {
            "name": "aria2",
            "specs": [
                [
                    "==",
                    "0.0.1b0"
                ]
            ]
        },
        {
            "name": "array_api_compat",
            "specs": [
                [
                    "==",
                    "1.11.1"
                ]
            ]
        },
        {
            "name": "arrow",
            "specs": [
                [
                    "==",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "asttokens",
            "specs": []
        },
        {
            "name": "async-lru",
            "specs": [
                [
                    "==",
                    "2.0.5"
                ]
            ]
        },
        {
            "name": "attrs",
            "specs": [
                [
                    "==",
                    "25.3.0"
                ]
            ]
        },
        {
            "name": "babel",
            "specs": [
                [
                    "==",
                    "2.17.0"
                ]
            ]
        },
        {
            "name": "beautifulsoup4",
            "specs": [
                [
                    "==",
                    "4.13.3"
                ]
            ]
        },
        {
            "name": "bin2cell",
            "specs": [
                [
                    "==",
                    "0.3.3"
                ]
            ]
        },
        {
            "name": "bleach",
            "specs": [
                [
                    "==",
                    "6.2.0"
                ]
            ]
        },
        {
            "name": "Bottleneck",
            "specs": []
        },
        {
            "name": "bypy",
            "specs": [
                [
                    "==",
                    "1.8.9"
                ]
            ]
        },
        {
            "name": "certifi",
            "specs": [
                [
                    "==",
                    "2025.1.31"
                ]
            ]
        },
        {
            "name": "cffi",
            "specs": [
                [
                    "==",
                    "1.17.1"
                ]
            ]
        },
        {
            "name": "charset-normalizer",
            "specs": [
                [
                    "==",
                    "3.4.1"
                ]
            ]
        },
        {
            "name": "comm",
            "specs": []
        },
        {
            "name": "contourpy",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "cramjam",
            "specs": []
        },
        {
            "name": "csbdeep",
            "specs": [
                [
                    "==",
                    "0.8.1"
                ]
            ]
        },
        {
            "name": "cycler",
            "specs": [
                [
                    "==",
                    "0.12.1"
                ]
            ]
        },
        {
            "name": "debugpy",
            "specs": []
        },
        {
            "name": "decorator",
            "specs": []
        },
        {
            "name": "defusedxml",
            "specs": [
                [
                    "==",
                    "0.7.1"
                ]
            ]
        },
        {
            "name": "dill",
            "specs": [
                [
                    "==",
                    "0.4.0"
                ]
            ]
        },
        {
            "name": "exceptiongroup",
            "specs": []
        },
        {
            "name": "executing",
            "specs": []
        },
        {
            "name": "fastjsonschema",
            "specs": [
                [
                    "==",
                    "2.21.1"
                ]
            ]
        },
        {
            "name": "fastparquet",
            "specs": []
        },
        {
            "name": "fonttools",
            "specs": [
                [
                    "==",
                    "4.56.0"
                ]
            ]
        },
        {
            "name": "fqdn",
            "specs": [
                [
                    "==",
                    "1.5.1"
                ]
            ]
        },
        {
            "name": "fsspec",
            "specs": []
        },
        {
            "name": "h11",
            "specs": [
                [
                    "==",
                    "0.14.0"
                ]
            ]
        },
        {
            "name": "h5py",
            "specs": [
                [
                    "==",
                    "3.13.0"
                ]
            ]
        },
        {
            "name": "httpcore",
            "specs": [
                [
                    "==",
                    "1.0.7"
                ]
            ]
        },
        {
            "name": "httpx",
            "specs": [
                [
                    "==",
                    "0.28.1"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.10"
                ]
            ]
        },
        {
            "name": "igraph",
            "specs": [
                [
                    "==",
                    "0.11.8"
                ]
            ]
        },
        {
            "name": "imageio",
            "specs": [
                [
                    "==",
                    "2.37.0"
                ]
            ]
        },
        {
            "name": "ipykernel",
            "specs": []
        },
        {
            "name": "ipython",
            "specs": []
        },
        {
            "name": "isoduration",
            "specs": [
                [
                    "==",
                    "20.11.0"
                ]
            ]
        },
        {
            "name": "jedi",
            "specs": []
        },
        {
            "name": "Jinja2",
            "specs": [
                [
                    "==",
                    "3.1.6"
                ]
            ]
        },
        {
            "name": "joblib",
            "specs": [
                [
                    "==",
                    "1.4.2"
                ]
            ]
        },
        {
            "name": "json5",
            "specs": [
                [
                    "==",
                    "0.10.0"
                ]
            ]
        },
        {
            "name": "jsonpointer",
            "specs": [
                [
                    "==",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "jsonschema",
            "specs": [
                [
                    "==",
                    "4.23.0"
                ]
            ]
        },
        {
            "name": "jsonschema-specifications",
            "specs": [
                [
                    "==",
                    "2024.10.1"
                ]
            ]
        },
        {
            "name": "jupyter-events",
            "specs": [
                [
                    "==",
                    "0.12.0"
                ]
            ]
        },
        {
            "name": "jupyter-lsp",
            "specs": [
                [
                    "==",
                    "2.2.5"
                ]
            ]
        },
        {
            "name": "jupyter_client",
            "specs": []
        },
        {
            "name": "jupyter_core",
            "specs": []
        },
        {
            "name": "jupyter_server",
            "specs": [
                [
                    "==",
                    "2.15.0"
                ]
            ]
        },
        {
            "name": "jupyter_server_terminals",
            "specs": [
                [
                    "==",
                    "0.5.3"
                ]
            ]
        },
        {
            "name": "jupyterlab",
            "specs": [
                [
                    "==",
                    "4.3.6"
                ]
            ]
        },
        {
            "name": "jupyterlab_pygments",
            "specs": [
                [
                    "==",
                    "0.3.0"
                ]
            ]
        },
        {
            "name": "jupyterlab_server",
            "specs": [
                [
                    "==",
                    "2.27.3"
                ]
            ]
        },
        {
            "name": "kiwisolver",
            "specs": [
                [
                    "==",
                    "1.4.8"
                ]
            ]
        },
        {
            "name": "legacy-api-wrap",
            "specs": [
                [
                    "==",
                    "1.4.1"
                ]
            ]
        },
        {
            "name": "leidenalg",
            "specs": [
                [
                    "==",
                    "0.10.2"
                ]
            ]
        },
        {
            "name": "llvmlite",
            "specs": [
                [
                    "==",
                    "0.44.0"
                ]
            ]
        },
        {
            "name": "MarkupSafe",
            "specs": [
                [
                    "==",
                    "3.0.2"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    "==",
                    "3.10.1"
                ]
            ]
        },
        {
            "name": "matplotlib-inline",
            "specs": []
        },
        {
            "name": "mistune",
            "specs": [
                [
                    "==",
                    "3.1.3"
                ]
            ]
        },
        {
            "name": "mkl-service",
            "specs": [
                [
                    "==",
                    "2.4.0"
                ]
            ]
        },
        {
            "name": "mkl_fft",
            "specs": []
        },
        {
            "name": "mkl_random",
            "specs": []
        },
        {
            "name": "multiprocess",
            "specs": [
                [
                    "==",
                    "0.70.18"
                ]
            ]
        },
        {
            "name": "natsort",
            "specs": [
                [
                    "==",
                    "8.4.0"
                ]
            ]
        },
        {
            "name": "nbclient",
            "specs": [
                [
                    "==",
                    "0.10.2"
                ]
            ]
        },
        {
            "name": "nbconvert",
            "specs": [
                [
                    "==",
                    "7.16.6"
                ]
            ]
        },
        {
            "name": "nbformat",
            "specs": [
                [
                    "==",
                    "5.10.4"
                ]
            ]
        },
        {
            "name": "nest-asyncio",
            "specs": []
        },
        {
            "name": "networkx",
            "specs": [
                [
                    "==",
                    "3.4.2"
                ]
            ]
        },
        {
            "name": "notebook",
            "specs": [
                [
                    "==",
                    "7.3.3"
                ]
            ]
        },
        {
            "name": "notebook_shim",
            "specs": [
                [
                    "==",
                    "0.2.4"
                ]
            ]
        },
        {
            "name": "numba",
            "specs": [
                [
                    "==",
                    "0.61.0"
                ]
            ]
        },
        {
            "name": "numexpr",
            "specs": []
        },
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "opencv-python",
            "specs": [
                [
                    "==",
                    "4.11.0.86"
                ]
            ]
        },
        {
            "name": "overrides",
            "specs": [
                [
                    "==",
                    "7.7.0"
                ]
            ]
        },
        {
            "name": "packaging",
            "specs": []
        },
        {
            "name": "pandas",
            "specs": [
                [
                    "==",
                    "1.5.3"
                ]
            ]
        },
        {
            "name": "pandocfilters",
            "specs": [
                [
                    "==",
                    "1.5.1"
                ]
            ]
        },
        {
            "name": "parso",
            "specs": []
        },
        {
            "name": "patsy",
            "specs": [
                [
                    "==",
                    "1.0.1"
                ]
            ]
        },
        {
            "name": "pexpect",
            "specs": []
        },
        {
            "name": "pillow",
            "specs": [
                [
                    "==",
                    "11.1.0"
                ]
            ]
        },
        {
            "name": "platformdirs",
            "specs": []
        },
        {
            "name": "prometheus_client",
            "specs": [
                [
                    "==",
                    "0.21.1"
                ]
            ]
        },
        {
            "name": "prompt-toolkit",
            "specs": []
        },
        {
            "name": "psutil",
            "specs": []
        },
        {
            "name": "ptyprocess",
            "specs": []
        },
        {
            "name": "pure-eval",
            "specs": []
        },
        {
            "name": "py_find_1st",
            "specs": [
                [
                    "==",
                    "1.1.7"
                ]
            ]
        },
        {
            "name": "pycparser",
            "specs": [
                [
                    "==",
                    "2.22"
                ]
            ]
        },
        {
            "name": "Pygments",
            "specs": []
        },
        {
            "name": "pynndescent",
            "specs": [
                [
                    "==",
                    "0.5.13"
                ]
            ]
        },
        {
            "name": "pyparsing",
            "specs": [
                [
                    "==",
                    "3.2.1"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": []
        },
        {
            "name": "python-json-logger",
            "specs": [
                [
                    "==",
                    "3.3.0"
                ]
            ]
        },
        {
            "name": "pytz",
            "specs": []
        },
        {
            "name": "PyWavelets",
            "specs": [
                [
                    "==",
                    "1.8.0"
                ]
            ]
        },
        {
            "name": "PyYAML",
            "specs": [
                [
                    "==",
                    "6.0.2"
                ]
            ]
        },
        {
            "name": "pyzmq",
            "specs": []
        },
        {
            "name": "referencing",
            "specs": [
                [
                    "==",
                    "0.36.2"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.32.3"
                ]
            ]
        },
        {
            "name": "requests-toolbelt",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "rfc3339-validator",
            "specs": [
                [
                    "==",
                    "0.1.4"
                ]
            ]
        },
        {
            "name": "rfc3986-validator",
            "specs": [
                [
                    "==",
                    "0.1.1"
                ]
            ]
        },
        {
            "name": "rpds-py",
            "specs": [
                [
                    "==",
                    "0.23.1"
                ]
            ]
        },
        {
            "name": "scanpy",
            "specs": [
                [
                    "==",
                    "1.11.0"
                ]
            ]
        },
        {
            "name": "scikit-image",
            "specs": [
                [
                    "==",
                    "0.19.3"
                ]
            ]
        },
        {
            "name": "scikit-learn",
            "specs": [
                [
                    "==",
                    "1.5.2"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    "==",
                    "1.15.2"
                ]
            ]
        },
        {
            "name": "seaborn",
            "specs": [
                [
                    "==",
                    "0.13.2"
                ]
            ]
        },
        {
            "name": "Send2Trash",
            "specs": [
                [
                    "==",
                    "1.8.3"
                ]
            ]
        },
        {
            "name": "session-info2",
            "specs": [
                [
                    "==",
                    "0.1.2"
                ]
            ]
        },
        {
            "name": "six",
            "specs": []
        },
        {
            "name": "sniffio",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "soupsieve",
            "specs": [
                [
                    "==",
                    "2.6"
                ]
            ]
        },
        {
            "name": "stack-data",
            "specs": []
        },
        {
            "name": "stardist",
            "specs": [
                [
                    "==",
                    "0.9.1"
                ]
            ]
        },
        {
            "name": "statsmodels",
            "specs": [
                [
                    "==",
                    "0.14.4"
                ]
            ]
        },
        {
            "name": "terminado",
            "specs": [
                [
                    "==",
                    "0.18.1"
                ]
            ]
        },
        {
            "name": "texttable",
            "specs": [
                [
                    "==",
                    "1.7.0"
                ]
            ]
        },
        {
            "name": "threadpoolctl",
            "specs": [
                [
                    "==",
                    "3.6.0"
                ]
            ]
        },
        {
            "name": "tifffile",
            "specs": [
                [
                    "==",
                    "2025.3.13"
                ]
            ]
        },
        {
            "name": "tinycss2",
            "specs": [
                [
                    "==",
                    "1.4.0"
                ]
            ]
        },
        {
            "name": "tomli",
            "specs": [
                [
                    "==",
                    "2.2.1"
                ]
            ]
        },
        {
            "name": "topact",
            "specs": []
        },
        {
            "name": "tornado",
            "specs": []
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    "==",
                    "4.67.1"
                ]
            ]
        },
        {
            "name": "traitlets",
            "specs": []
        },
        {
            "name": "types-python-dateutil",
            "specs": [
                [
                    "==",
                    "2.9.0.20241206"
                ]
            ]
        },
        {
            "name": "typing_extensions",
            "specs": []
        },
        {
            "name": "tzdata",
            "specs": []
        },
        {
            "name": "umap-learn",
            "specs": [
                [
                    "==",
                    "0.5.7"
                ]
            ]
        },
        {
            "name": "uri-template",
            "specs": [
                [
                    "==",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "2.3.0"
                ]
            ]
        },
        {
            "name": "wcwidth",
            "specs": [
                [
                    "==",
                    "0.2.13"
                ]
            ]
        },
        {
            "name": "webcolors",
            "specs": [
                [
                    "==",
                    "24.11.1"
                ]
            ]
        },
        {
            "name": "webencodings",
            "specs": [
                [
                    "==",
                    "0.5.1"
                ]
            ]
        },
        {
            "name": "websocket-client",
            "specs": [
                [
                    "==",
                    "1.8.0"
                ]
            ]
        },
        {
            "name": "tensorflow",
            "specs": [
                [
                    "==",
                    "2.19.0"
                ]
            ]
        }
    ],
    "lcname": "spatialcell"
}
        
Elapsed time: 2.10236s