spateo-release


Namespateo-release JSON
Version 1.1.0 PyPI version JSON
download
home_pagehttps://github.com/aristoteleo/spateo-release
SummarySpateo: multidimensional spatiotemporal modeling of single-cell spatial transcriptomics
upload_time2024-09-18 23:06:19
maintainerNone
docs_urlNone
authorXiaojie Qiu
requires_python>=3.7
licenseBSD
keywords spatial-transcriptomics stereo-seq visium seqfish merfish slide-seq dbit-seq hdst-seq osmfish spatiotemporal
VCS
bugtrack_url
requirements adjustText anndata colorcet cvxopt csbdeep descartes dynamo-release folium geopandas gpytorch ipywidgets kneed kornia leidenalg loompy mapclassify matplotlib nbconvert networkx numba numpy opencv-python pandana pandas paste-bio plotly POT psutil pynndescent pysal pyro-ppl python-igraph pyvista scipy scikit-image scikit-learn seaborn setuptools Shapely statsmodels tensorflow tqdm torch trame trame-server typing_extensions umap-learn vtk
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <img height="150" src="https://raw.githubusercontent.com/aristoteleo/spateo-release/main/docs/_static/logo.png" />
</p

[![documentation](https://readthedocs.org/projects/spateo-release/badge/?version=latest)](https://spateo-release.readthedocs.io/en/latest/)


[Installation](https://spateo-release.readthedocs.io/en/latest/installation.html) - [Tutorials](https://spateo-release.readthedocs.io/en/latest/tutorials/index.html) - [API](https://spateo-release.readthedocs.io/en/latest/autoapi/spateo/index.html) - [Citation](https://www.biorxiv.org/content/10.1101/2022.12.07.519417v1) - [Technical](https://spateo-release.readthedocs.io/en/latest/technicals/index.html)

# Citation
Xiaojie Qiu1$\*, Daniel Y. Zhu3$, Jiajun Yao2, 4, 5, 6$, Zehua Jing2, 4,7$, Lulu Zuo8$, Mingyue Wang2, 4, 9, 10$, Kyung Hoi (Joseph) Min11, Hailin Pan2, 4, Shuai Wang2, 4, 7, Sha Liao4, Yiwei Lai4, Shijie Hao2, 4, 7, Yuancheng Ryan Lu1, Matthew Hill17, Jorge D. Martin-Rufino17, Chen Weng1, Anna Maria Riera-Escandell18, Mengnan Chen2, 4, Liang Wu4, Yong Zhang4, Xiaoyu Wei2, 4, Mei Li4, Xin Huang4, Rong Xiang2, 4, 7, Zhuoxuan Yang4, 12, Chao Liu4, Tianyi Xia4, Yingxin Liang10, Junqiang Xu4,7, Qinan Hu9, 10, Yuhui Hu9, 10, Hongmei Zhu8, Yuxiang Li4, Ao Chen4, Miguel A. Esteban4, Ying Gu2, 4,7, Douglas A. Lauffenburger3, Xun Xu2, 4, 13, Longqi Liu2, 4, 14, 15\*, Jonathan S. Weissman1,19, 20\*, Shiping Liu2, 4, 14, 15, 16\*, Yinqi Bai2, 4\*  $Co-first authors; *:Corresponding authors

Spateo: multidimensional spatiotemporal modeling of single-cell spatial transcriptomics 

https://www.biorxiv.org/content/10.1101/2022.12.07.519417v1

# Abstract

<p align="justify">
Cells do not live in a vacuum, but in a milieu defined by cell–cell communication that can be measured via emerging high-resolution spatial transcriptomics approaches. However, analytical tools that fully leverage such data for kinetic modeling remain lacking. Here we present Spateo (aristoteleo/spateo-release), a general framework for quantitative spatiotemporal modeling of single-cell resolution spatial transcriptomics. Spateo delivers novel methods for digitizing spatial layers/columns to identify spatially-polar genes, and develops a comprehensive framework of cell-cell interaction to reveal spatial effects of niche factors and cell type-specific ligand-receptor interactions. Furthermore, Spateo reconstructs 3D models of whole embryos, and performs 3D morphometric analyses. Lastly, Spateo introduces the concept of “morphometric vector field” of cell migrations, and integrates spatial differential geometry to unveil regulatory programs underlying various organogenesis patterns of Drosophila. Thus, Spateo enables the study of the ecology of organs at a molecular level in 3D space, beyond isolated single cells. 
</p

![Spateo](https://user-images.githubusercontent.com/7456281/206298806-eb7df755-5fc4-46b6-80cc-baab86f0611f.png)

## Highlights of Spateo:

*  <p align="justify"> Spateo introduces a sophisticated approach, Starro, to segment single cells based purely on RNA signal, unsupervisedly identifies continuous tissue domains via spatially-constrained clustering, and dissect the intricate spatial cell type distribution and tissue composition;

* <p align="justify"> Spateo identifies spatial polarity/gradient genes (e.g. neuronal layer specific genes) by solving a partial differential equation to digitize layers and columns of a spatial domain. </p

* <p align="justify"> Spateo implements a full suite of spatially-aware modules for differential expression inference, including novel parametric models for spatially-informed prediction of cell-cell interactions and interpretable estimation of downstream effects. </p

* <p align="justify"> Spateo enables reconstruction of 3D whole-organ models from 2D slices, identifying different “organogenesis modes” (patterns of cell migration during organogenesis) for each organ and quantifying morphometric properties (such as organ surface area, volume, length and cell density) over time. </p

* <p align="justify"> Spateo brings in the concept of the “morphometric vector field” that predicts migration paths for each cell within an organ in a 3D fashion and reveals principles of cell migration by exploring various differential geometry quantities. </p

## Spateo Development Process
- Follow feature-staging-main review process
    - create a specific branch for new feature
    - implement and test on your branch; add unit tests
    - create pull request
    - discuss with lab members and merge into the main branch once all checks pass
- Follow python [Google code style](https://google.github.io/styleguide/pyguide.html)

## Code quality
- File and function docstrings should be written in [Google style](https://google.github.io/styleguide/pyguide.html)
- We use `black` to automatically format code in a standardized format. To ensure that any code changes are up to standard, use `pre-commit` as such.
```
# Run the following two lines ONCE.
pip install pre-commit
pre-commit install
```
Then, all future commits will call `black` automatically to format the code. Any code that does not follow the standard will cause a check to fail.

## Unit testing
Unit-tests should be written for most functions. To run unit tests, simply run the following.
```
# Install ONCE.
pip install -r dev-requirements.txt

# Run test
make test
```
Any failing tests will cause a check to fail.

## Documentation
We use `sphinx` to generate documentation. 
Importantly, we used the submodule functionality to import documentation from a separate repository (https://github.com/aristoteleo/spateo-tutorials).
It is important to keep the submodule up to date with the main repository and the following commands will help you do so.


### Update All Submodules at Once:

1. **Fetch and Merge Changes for All Submodules**:

   You can fetch the latest changes for all submodules and merge them into your current checkouts of the submodules:

   ```bash
   git submodule update --remote --merge
   ```

2. **Commit the Updated Submodules**:

   This step is important because the parent repository tracks a specific commit of the submodule. By updating the submodule, the parent repository needs to be informed of the new commit to track.

   ```bash
   git add .
   git commit -m "Updated all submodules"
   git push
   ```
Once you are done the above, check the link directory (something like spateo-tutorials @ 8e372ee) under the `docs` folder to make sure the related commit (such as 8e372ee) is the same as the latest one in the spateo-tutorials repository. If not, you may need to redo the above procedure again. 
```



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/aristoteleo/spateo-release",
    "name": "spateo-release",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "spatial-transcriptomics, stereo-seq, Visium, seqFish, MERFISH, slide-seq, DBiT-seq, HDST-seq, osmFISH, spatiotemporal",
    "author": "Xiaojie Qiu",
    "author_email": "xqiu@wi.mit.edu",
    "download_url": "https://files.pythonhosted.org/packages/77/2d/a58dad63d9aca089ec249169b22a3c52ff9f6eea9a6edc0bd68251f13b3a/spateo-release-1.1.0.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n  <img height=\"150\" src=\"https://raw.githubusercontent.com/aristoteleo/spateo-release/main/docs/_static/logo.png\" />\n</p\n\n[![documentation](https://readthedocs.org/projects/spateo-release/badge/?version=latest)](https://spateo-release.readthedocs.io/en/latest/)\n\n\n[Installation](https://spateo-release.readthedocs.io/en/latest/installation.html) - [Tutorials](https://spateo-release.readthedocs.io/en/latest/tutorials/index.html) - [API](https://spateo-release.readthedocs.io/en/latest/autoapi/spateo/index.html) - [Citation](https://www.biorxiv.org/content/10.1101/2022.12.07.519417v1) - [Technical](https://spateo-release.readthedocs.io/en/latest/technicals/index.html)\n\n# Citation\nXiaojie Qiu1$\\*, Daniel Y. Zhu3$, Jiajun Yao2, 4, 5, 6$, Zehua Jing2, 4,7$, Lulu Zuo8$, Mingyue Wang2, 4, 9, 10$, Kyung Hoi (Joseph) Min11, Hailin Pan2, 4, Shuai Wang2, 4, 7, Sha Liao4, Yiwei Lai4, Shijie Hao2, 4, 7, Yuancheng Ryan Lu1, Matthew Hill17, Jorge D. Martin-Rufino17, Chen Weng1, Anna Maria Riera-Escandell18, Mengnan Chen2, 4, Liang Wu4, Yong Zhang4, Xiaoyu Wei2, 4, Mei Li4, Xin Huang4, Rong Xiang2, 4, 7, Zhuoxuan Yang4, 12, Chao Liu4, Tianyi Xia4, Yingxin Liang10, Junqiang Xu4,7, Qinan Hu9, 10, Yuhui Hu9, 10, Hongmei Zhu8, Yuxiang Li4, Ao Chen4, Miguel A. Esteban4, Ying Gu2, 4,7, Douglas A. Lauffenburger3, Xun Xu2, 4, 13, Longqi Liu2, 4, 14, 15\\*, Jonathan S. Weissman1,19, 20\\*, Shiping Liu2, 4, 14, 15, 16\\*, Yinqi Bai2, 4\\*  $Co-first authors; *:Corresponding authors\n\nSpateo: multidimensional spatiotemporal modeling of single-cell spatial transcriptomics \n\nhttps://www.biorxiv.org/content/10.1101/2022.12.07.519417v1\n\n# Abstract\n\n<p align=\"justify\">\nCells do not live in a vacuum, but in a milieu defined by cell\u2013cell communication that can be measured via emerging high-resolution spatial transcriptomics approaches. However, analytical tools that fully leverage such data for kinetic modeling remain lacking. Here we present Spateo (aristoteleo/spateo-release), a general framework for quantitative spatiotemporal modeling of single-cell resolution spatial transcriptomics. Spateo delivers novel methods for digitizing spatial layers/columns to identify spatially-polar genes, and develops a comprehensive framework of cell-cell interaction to reveal spatial effects of niche factors and cell type-specific ligand-receptor interactions. Furthermore, Spateo reconstructs 3D models of whole embryos, and performs 3D morphometric analyses. Lastly, Spateo introduces the concept of \u201cmorphometric vector field\u201d of cell migrations, and integrates spatial differential geometry to unveil regulatory programs underlying various organogenesis patterns of Drosophila. Thus, Spateo enables the study of the ecology of organs at a molecular level in 3D space, beyond isolated single cells. \n</p\n\n![Spateo](https://user-images.githubusercontent.com/7456281/206298806-eb7df755-5fc4-46b6-80cc-baab86f0611f.png)\n\n## Highlights of Spateo:\n\n*  <p align=\"justify\"> Spateo introduces a sophisticated approach, Starro, to segment single cells based purely on RNA signal, unsupervisedly identifies continuous tissue domains via spatially-constrained clustering, and dissect the intricate spatial cell type distribution and tissue composition;\n\n* <p align=\"justify\"> Spateo identifies spatial polarity/gradient genes (e.g. neuronal layer specific genes) by solving a partial differential equation to digitize layers and columns of a spatial domain. </p\n\n* <p align=\"justify\"> Spateo implements a full suite of spatially-aware modules for differential expression inference, including novel parametric models for spatially-informed prediction of cell-cell interactions and interpretable estimation of downstream effects. </p\n\n* <p align=\"justify\"> Spateo enables reconstruction of 3D whole-organ models from 2D slices, identifying different \u201corganogenesis modes\u201d (patterns of cell migration during organogenesis) for each organ and quantifying morphometric properties (such as organ surface area, volume, length and cell density) over time. </p\n\n* <p align=\"justify\"> Spateo brings in the concept of the \u201cmorphometric vector field\u201d that predicts migration paths for each cell within an organ in a 3D fashion and reveals principles of cell migration by exploring various differential geometry quantities. </p\n\n## Spateo Development Process\n- Follow feature-staging-main review process\n    - create a specific branch for new feature\n    - implement and test on your branch; add unit tests\n    - create pull request\n    - discuss with lab members and merge into the main branch once all checks pass\n- Follow python [Google code style](https://google.github.io/styleguide/pyguide.html)\n\n## Code quality\n- File and function docstrings should be written in [Google style](https://google.github.io/styleguide/pyguide.html)\n- We use `black` to automatically format code in a standardized format. To ensure that any code changes are up to standard, use `pre-commit` as such.\n```\n# Run the following two lines ONCE.\npip install pre-commit\npre-commit install\n```\nThen, all future commits will call `black` automatically to format the code. Any code that does not follow the standard will cause a check to fail.\n\n## Unit testing\nUnit-tests should be written for most functions. To run unit tests, simply run the following.\n```\n# Install ONCE.\npip install -r dev-requirements.txt\n\n# Run test\nmake test\n```\nAny failing tests will cause a check to fail.\n\n## Documentation\nWe use `sphinx` to generate documentation. \nImportantly, we used the submodule functionality to import documentation from a separate repository (https://github.com/aristoteleo/spateo-tutorials).\nIt is important to keep the submodule up to date with the main repository and the following commands will help you do so.\n\n\n### Update All Submodules at Once:\n\n1. **Fetch and Merge Changes for All Submodules**:\n\n   You can fetch the latest changes for all submodules and merge them into your current checkouts of the submodules:\n\n   ```bash\n   git submodule update --remote --merge\n   ```\n\n2. **Commit the Updated Submodules**:\n\n   This step is important because the parent repository tracks a specific commit of the submodule. By updating the submodule, the parent repository needs to be informed of the new commit to track.\n\n   ```bash\n   git add .\n   git commit -m \"Updated all submodules\"\n   git push\n   ```\nOnce you are done the above, check the link directory (something like spateo-tutorials @ 8e372ee) under the `docs` folder to make sure the related commit (such as 8e372ee) is the same as the latest one in the spateo-tutorials repository. If not, you may need to redo the above procedure again. \n```\n\n\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "Spateo: multidimensional spatiotemporal modeling of single-cell spatial transcriptomics",
    "version": "1.1.0",
    "project_urls": {
        "Homepage": "https://github.com/aristoteleo/spateo-release"
    },
    "split_keywords": [
        "spatial-transcriptomics",
        " stereo-seq",
        " visium",
        " seqfish",
        " merfish",
        " slide-seq",
        " dbit-seq",
        " hdst-seq",
        " osmfish",
        " spatiotemporal"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8924cb010342a12cbb7c01361f42d8573a212707735674d73d2cd489d7e678eb",
                "md5": "782ec90b2585fa6ed807740ce490365f",
                "sha256": "01161a47cf0ad5fe30e69c97351a3b70842b2367d004692fbf3c8b8aea2d2684"
            },
            "downloads": -1,
            "filename": "spateo_release-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "782ec90b2585fa6ed807740ce490365f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 741983,
            "upload_time": "2024-09-18T23:06:17",
            "upload_time_iso_8601": "2024-09-18T23:06:17.207185Z",
            "url": "https://files.pythonhosted.org/packages/89/24/cb010342a12cbb7c01361f42d8573a212707735674d73d2cd489d7e678eb/spateo_release-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "772da58dad63d9aca089ec249169b22a3c52ff9f6eea9a6edc0bd68251f13b3a",
                "md5": "c12238436a435a52fdb9be57cf264e93",
                "sha256": "b1f540aef39bc91a487b63fcd42e3e61cddb9179bf4198e13000fd31f27edcef"
            },
            "downloads": -1,
            "filename": "spateo-release-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c12238436a435a52fdb9be57cf264e93",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 621426,
            "upload_time": "2024-09-18T23:06:19",
            "upload_time_iso_8601": "2024-09-18T23:06:19.228284Z",
            "url": "https://files.pythonhosted.org/packages/77/2d/a58dad63d9aca089ec249169b22a3c52ff9f6eea9a6edc0bd68251f13b3a/spateo-release-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-18 23:06:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "aristoteleo",
    "github_project": "spateo-release",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "adjustText",
            "specs": []
        },
        {
            "name": "anndata",
            "specs": [
                [
                    ">=",
                    "0.8.0"
                ]
            ]
        },
        {
            "name": "colorcet",
            "specs": [
                [
                    ">=",
                    "2.0.1"
                ]
            ]
        },
        {
            "name": "cvxopt",
            "specs": [
                [
                    ">=",
                    "1.2.3"
                ]
            ]
        },
        {
            "name": "csbdeep",
            "specs": [
                [
                    ">=",
                    "0.6.3"
                ]
            ]
        },
        {
            "name": "descartes",
            "specs": []
        },
        {
            "name": "dynamo-release",
            "specs": [
                [
                    ">=",
                    "1.4.1"
                ]
            ]
        },
        {
            "name": "folium",
            "specs": [
                [
                    ">=",
                    "0.12.1"
                ]
            ]
        },
        {
            "name": "geopandas",
            "specs": [
                [
                    ">=",
                    "0.10.2"
                ]
            ]
        },
        {
            "name": "gpytorch",
            "specs": []
        },
        {
            "name": "ipywidgets",
            "specs": [
                [
                    ">=",
                    "7.7.1"
                ]
            ]
        },
        {
            "name": "kneed",
            "specs": [
                [
                    ">=",
                    "0.7.0"
                ]
            ]
        },
        {
            "name": "kornia",
            "specs": [
                [
                    ">=",
                    "0.6.4"
                ]
            ]
        },
        {
            "name": "leidenalg",
            "specs": [
                [
                    ">=",
                    "0.10.0"
                ]
            ]
        },
        {
            "name": "loompy",
            "specs": [
                [
                    ">=",
                    "3.0.5"
                ]
            ]
        },
        {
            "name": "mapclassify",
            "specs": [
                [
                    ">=",
                    "2.4.2"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    ">=",
                    "3.7.5"
                ]
            ]
        },
        {
            "name": "nbconvert",
            "specs": []
        },
        {
            "name": "networkx",
            "specs": [
                [
                    ">=",
                    "2.6.3"
                ]
            ]
        },
        {
            "name": "numba",
            "specs": [
                [
                    ">=",
                    "0.46.0"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.18.1"
                ]
            ]
        },
        {
            "name": "opencv-python",
            "specs": [
                [
                    ">=",
                    "4.5.4.60"
                ]
            ]
        },
        {
            "name": "pandana",
            "specs": []
        },
        {
            "name": "pandas",
            "specs": [
                [
                    ">=",
                    "0.25.1"
                ]
            ]
        },
        {
            "name": "paste-bio",
            "specs": [
                [
                    ">=",
                    "1.4.0"
                ]
            ]
        },
        {
            "name": "plotly",
            "specs": [
                [
                    ">=",
                    "5.1.0"
                ]
            ]
        },
        {
            "name": "POT",
            "specs": [
                [
                    ">=",
                    "0.8.1"
                ]
            ]
        },
        {
            "name": "psutil",
            "specs": [
                [
                    ">=",
                    "5.6.3"
                ]
            ]
        },
        {
            "name": "pynndescent",
            "specs": [
                [
                    ">=",
                    "0.4.8"
                ]
            ]
        },
        {
            "name": "pysal",
            "specs": [
                [
                    ">=",
                    "1.14.4"
                ]
            ]
        },
        {
            "name": "pyro-ppl",
            "specs": []
        },
        {
            "name": "python-igraph",
            "specs": [
                [
                    ">=",
                    "0.7.1"
                ]
            ]
        },
        {
            "name": "pyvista",
            "specs": [
                [
                    ">=",
                    "0.39.1"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    ">=",
                    "1.0"
                ]
            ]
        },
        {
            "name": "scikit-image",
            "specs": [
                [
                    ">=",
                    "0.18.0"
                ]
            ]
        },
        {
            "name": "scikit-learn",
            "specs": [
                [
                    ">=",
                    "0.19.1"
                ]
            ]
        },
        {
            "name": "seaborn",
            "specs": [
                [
                    ">=",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "setuptools",
            "specs": [
                [
                    ">=",
                    "58.0.4"
                ]
            ]
        },
        {
            "name": "Shapely",
            "specs": [
                [
                    ">=",
                    "1.8.0"
                ]
            ]
        },
        {
            "name": "statsmodels",
            "specs": [
                [
                    ">=",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "tensorflow",
            "specs": []
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    ">=",
                    "4.62.3"
                ]
            ]
        },
        {
            "name": "torch",
            "specs": []
        },
        {
            "name": "trame",
            "specs": [
                [
                    ">=",
                    "2.2.5"
                ]
            ]
        },
        {
            "name": "trame-server",
            "specs": [
                [
                    ">=",
                    "2.7.0"
                ]
            ]
        },
        {
            "name": "typing_extensions",
            "specs": [
                [
                    ">=",
                    "4.0.1"
                ]
            ]
        },
        {
            "name": "umap-learn",
            "specs": [
                [
                    ">=",
                    "0.5.1"
                ]
            ]
        },
        {
            "name": "vtk",
            "specs": [
                [
                    ">=",
                    "9.2.2"
                ]
            ]
        }
    ],
    "lcname": "spateo-release"
}
        
Elapsed time: 0.88406s