Read the Docs build information Build id: 202061 Project: icb-scanpy Version: latest Commit: 0401341877e586e36412db1e178601bf1f545037 Date: 2019-04-17T16:54:09.776654Z State: finished Success: True [rtd-command-info] start-time: 2019-04-17T16:56:35.178231Z, end-time: 2019-04-17T16:56:35.189295Z, duration: 0, exit-code: 0 git remote set-url origin https://github.com/theislab/scanpy.git [rtd-command-info] start-time: 2019-04-17T16:56:35.249618Z, end-time: 2019-04-17T16:56:36.777352Z, duration: 1, exit-code: 0 git fetch --tags --prune --prune-tags --depth 50 From https://github.com/theislab/scanpy - [deleted] (none) -> origin/cli - [deleted] (none) -> origin/return-formatting 5a2003a..0401341 master -> origin/master [rtd-command-info] start-time: 2019-04-17T16:56:37.453855Z, end-time: 2019-04-17T16:56:37.473054Z, duration: 0, exit-code: 0 git checkout --force origin/master Previous HEAD position was 5a2003a Implemented a CLI (#604) HEAD is now at 0401341 Doc overhaul (#610) [rtd-command-info] start-time: 2019-04-17T16:56:37.535310Z, end-time: 2019-04-17T16:56:37.545687Z, duration: 0, exit-code: 0 git clean -d -f -f [rtd-command-info] start-time: 2019-04-17T16:56:38.245884Z, end-time: 2019-04-17T16:56:42.006639Z, duration: 3, exit-code: 0 python3.6 -mvirtualenv --no-site-packages --no-download Using base prefix '/home/docs/.pyenv/versions/3.6.4' New python executable in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/bin/python3.6 Not overwriting existing python script /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/bin/python (you must use /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/bin/python3.6) Installing setuptools, pip, wheel... done. [rtd-command-info] start-time: 2019-04-17T16:56:42.069787Z, end-time: 2019-04-17T16:56:42.948727Z, duration: 0, exit-code: 0 python -m pip install --upgrade --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/.cache/pip pip Requirement already up-to-date: pip in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (19.0.3) [rtd-command-info] start-time: 2019-04-17T16:56:43.009015Z, end-time: 2019-04-17T16:56:50.405299Z, duration: 7, exit-code: 0 python -m pip install --upgrade --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/.cache/pip Pygments==2.3.1 setuptools<41 docutils==0.14 mock==1.0.1 pillow==5.4.1 alabaster>=0.7,<0.8,!=0.7.5 commonmark==0.8.1 recommonmark==0.5.0 sphinx<2 sphinx-rtd-theme<0.5 readthedocs-sphinx-ext<0.6 Requirement already up-to-date: Pygments==2.3.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (2.3.1) Requirement already up-to-date: setuptools<41 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (40.9.0) Requirement already up-to-date: docutils==0.14 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (0.14) Collecting mock==1.0.1 Requirement already up-to-date: pillow==5.4.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (5.4.1) Requirement already up-to-date: alabaster!=0.7.5,<0.8,>=0.7 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (0.7.12) Requirement already up-to-date: commonmark==0.8.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (0.8.1) Requirement already up-to-date: recommonmark==0.5.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (0.5.0) Collecting sphinx<2 Using cached https://files.pythonhosted.org/packages/7d/66/a4af242b4348b729b9d46ce5db23943ce9bca7da9bbe2ece60dc27f26420/Sphinx-1.8.5-py2.py3-none-any.whl Requirement already up-to-date: sphinx-rtd-theme<0.5 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (0.4.3) Requirement already up-to-date: readthedocs-sphinx-ext<0.6 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (0.5.17) Requirement already satisfied, skipping upgrade: future in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from commonmark==0.8.1) (0.17.1) Requirement already satisfied, skipping upgrade: requests>=2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx<2) (2.21.0) Requirement already satisfied, skipping upgrade: packaging in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx<2) (19.0) Requirement already satisfied, skipping upgrade: imagesize in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx<2) (1.1.0) Requirement already satisfied, skipping upgrade: sphinxcontrib-websupport in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx<2) (1.1.0) Requirement already satisfied, skipping upgrade: Jinja2>=2.3 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx<2) (2.10.1) Requirement already satisfied, skipping upgrade: babel!=2.0,>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx<2) (2.6.0) Requirement already satisfied, skipping upgrade: six>=1.5 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx<2) (1.12.0) Requirement already satisfied, skipping upgrade: snowballstemmer>=1.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx<2) (1.2.1) Requirement already satisfied, skipping upgrade: idna<2.9,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx<2) (2.8) Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx<2) (2019.3.9) Requirement already satisfied, skipping upgrade: urllib3<1.25,>=1.21.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx<2) (1.24.1) Requirement already satisfied, skipping upgrade: chardet<3.1.0,>=3.0.2 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx<2) (3.0.4) Requirement already satisfied, skipping upgrade: pyparsing>=2.0.2 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from packaging->sphinx<2) (2.4.0) Requirement already satisfied, skipping upgrade: MarkupSafe>=0.23 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from Jinja2>=2.3->sphinx<2) (1.1.1) Requirement already satisfied, skipping upgrade: pytz>=0a in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from babel!=2.0,>=1.3->sphinx<2) (2019.1) tables 3.5.1 has requirement mock>=2.0, but you'll have mock 1.0.1 which is incompatible. Installing collected packages: mock, sphinx Found existing installation: mock 2.0.0 Uninstalling mock-2.0.0: Successfully uninstalled mock-2.0.0 Found existing installation: Sphinx 1.8.3 Uninstalling Sphinx-1.8.3: Successfully uninstalled Sphinx-1.8.3 Successfully installed mock-1.0.1 sphinx-1.8.5 [rtd-command-info] start-time: 2019-04-17T16:56:50.530295Z, end-time: 2019-04-17T16:56:54.061959Z, duration: 3, exit-code: 0 python -m pip install --exists-action=w --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/.cache/pip -r docs/requirements.txt Requirement already satisfied: sphinx_rtd_theme>=0.3.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 2)) (0.4.3) Collecting sphinx>=2.0.1 (from -r docs/requirements.txt (line 5)) Using cached https://files.pythonhosted.org/packages/9a/b0/a8cf1d35237aebefd63f05543ed49ea24d302239828ca89409b0c1a35b27/Sphinx-2.0.1-py2.py3-none-any.whl Requirement already satisfied: sphinx-autodoc-typehints in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 6)) (1.6.0) Requirement already satisfied: scanpydoc>=0.3.2 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 7)) (0.3.3) Requirement already satisfied: anndata>=0.6.18 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 9)) (0.6.19) Requirement already satisfied: matplotlib>=2.2 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 10)) (3.0.3) Requirement already satisfied: pandas>=0.21 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 11)) (0.24.2) Requirement already satisfied: scipy in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 12)) (1.2.1) Requirement already satisfied: seaborn in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 13)) (0.9.0) Requirement already satisfied: h5py in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 14)) (2.9.0) Requirement already satisfied: tables in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 15)) (3.5.1) Requirement already satisfied: scikit-learn>=0.19.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 16)) (0.20.3) Requirement already satisfied: networkx in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 18)) (2.3) Requirement already satisfied: natsort in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 19)) (6.0.0) Requirement already satisfied: joblib in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 20)) (0.13.2) Requirement already satisfied: numba in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 21)) (0.43.1) Requirement already satisfied: tqdm in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requirements.txt (line 22)) (4.31.1) Requirement already satisfied: alabaster<0.8,>=0.7 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (0.7.12) Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (40.9.0) Requirement already satisfied: Jinja2>=2.3 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (2.10.1) Collecting sphinxcontrib-devhelp (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) Using cached https://files.pythonhosted.org/packages/b0/a3/fea98741f0b2f2902fbf6c35c8e91b22cd0dd13387291e81d457f9a93066/sphinxcontrib_devhelp-1.0.1-py2.py3-none-any.whl Requirement already satisfied: Pygments>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (2.3.1) Requirement already satisfied: babel!=2.0,>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (2.6.0) Requirement already satisfied: imagesize in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (1.1.0) Collecting sphinxcontrib-applehelp (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) Using cached https://files.pythonhosted.org/packages/13/9a/4428b3114d654cb1cd34d90d5e6fab938d5436f94a571155187ea1dd78b4/sphinxcontrib_applehelp-1.0.1-py2.py3-none-any.whl Collecting sphinxcontrib-htmlhelp (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) Using cached https://files.pythonhosted.org/packages/e4/35/80a67cc493f4a8a9634ab203a77aaa1b84d79ccb1c02eca72cb084d2c7f7/sphinxcontrib_htmlhelp-1.0.2-py2.py3-none-any.whl Collecting sphinxcontrib-qthelp (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) Using cached https://files.pythonhosted.org/packages/ce/5b/4747c3ba98b3a3e21a66faa183d8f79b9ded70e74212a7988d236a6eb78a/sphinxcontrib_qthelp-1.0.2-py2.py3-none-any.whl Requirement already satisfied: packaging in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (19.0) Requirement already satisfied: snowballstemmer>=1.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (1.2.1) Requirement already satisfied: requests>=2.5.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (2.21.0) Requirement already satisfied: docutils>=0.12 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (0.14) Collecting sphinxcontrib-serializinghtml (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) Using cached https://files.pythonhosted.org/packages/57/b3/3648e48fa5682e61e9839d62de4e23af1795ceb738d68d73bd974257a95c/sphinxcontrib_serializinghtml-1.1.3-py2.py3-none-any.whl Collecting sphinxcontrib-jsmath (from sphinx>=2.0.1->-r docs/requirements.txt (line 5)) Using cached https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl Requirement already satisfied: future-fstrings in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from scanpydoc>=0.3.2->-r docs/requirements.txt (line 7)) (1.0.0) Requirement already satisfied: get_version in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from scanpydoc>=0.3.2->-r docs/requirements.txt (line 7)) (2.0.6) Requirement already satisfied: numpy~=1.14 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from anndata>=0.6.18->-r docs/requirements.txt (line 9)) (1.16.2) Requirement already satisfied: cycler>=0.10 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from matplotlib>=2.2->-r docs/requirements.txt (line 10)) (0.10.0) Requirement already satisfied: python-dateutil>=2.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from matplotlib>=2.2->-r docs/requirements.txt (line 10)) (2.8.0) Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from matplotlib>=2.2->-r docs/requirements.txt (line 10)) (2.4.0) Requirement already satisfied: kiwisolver>=1.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from matplotlib>=2.2->-r docs/requirements.txt (line 10)) (1.0.1) Requirement already satisfied: pytz>=2011k in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from pandas>=0.21->-r docs/requirements.txt (line 11)) (2019.1) Requirement already satisfied: six in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from h5py->-r docs/requirements.txt (line 14)) (1.12.0) Requirement already satisfied: numexpr>=2.6.2 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from tables->-r docs/requirements.txt (line 15)) (2.6.9) Collecting mock>=2.0 (from tables->-r docs/requirements.txt (line 15)) Using cached https://files.pythonhosted.org/packages/e6/35/f187bdf23be87092bd0f1200d43d23076cee4d0dec109f195173fd3ebc79/mock-2.0.0-py2.py3-none-any.whl Requirement already satisfied: decorator>=4.3.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from networkx->-r docs/requirements.txt (line 18)) (4.4.0) Requirement already satisfied: llvmlite>=0.28.0dev0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from numba->-r docs/requirements.txt (line 21)) (0.28.0) Requirement already satisfied: MarkupSafe>=0.23 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from Jinja2>=2.3->sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (1.1.1) Requirement already satisfied: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from requests>=2.5.0->sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (2019.3.9) Requirement already satisfied: idna<2.9,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from requests>=2.5.0->sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (2.8) Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from requests>=2.5.0->sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (3.0.4) Requirement already satisfied: urllib3<1.25,>=1.21.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from requests>=2.5.0->sphinx>=2.0.1->-r docs/requirements.txt (line 5)) (1.24.1) Requirement already satisfied: pbr>=0.11 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from mock>=2.0->tables->-r docs/requirements.txt (line 15)) (5.1.3) Installing collected packages: sphinxcontrib-devhelp, sphinxcontrib-applehelp, sphinxcontrib-htmlhelp, sphinxcontrib-qthelp, sphinxcontrib-serializinghtml, sphinxcontrib-jsmath, sphinx, mock Found existing installation: Sphinx 1.8.5 Uninstalling Sphinx-1.8.5: Successfully uninstalled Sphinx-1.8.5 Found existing installation: mock 1.0.1 Uninstalling mock-1.0.1: Successfully uninstalled mock-1.0.1 Successfully installed mock-2.0.0 sphinx-2.0.1 sphinxcontrib-applehelp-1.0.1 sphinxcontrib-devhelp-1.0.1 sphinxcontrib-htmlhelp-1.0.2 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-1.0.2 sphinxcontrib-serializinghtml-1.1.3 [rtd-command-info] start-time: 2019-04-17T16:56:54.576142Z, end-time: 2019-04-17T16:56:54.637065Z, duration: 0, exit-code: 0 cat docs/conf.py import sys from pathlib import Path from datetime import datetime import matplotlib # noqa # Don’t use tkinter agg when importing scanpy → … → matplotlib matplotlib.use('agg') HERE = Path(__file__).parent sys.path.insert(0, str(HERE.parent)) import scanpy # noqa # -- General configuration ------------------------------------------------ needs_sphinx = '1.7' # autosummary bugfix # General information project = 'Scanpy' author = scanpy.__author__ copyright = f'{datetime.now():%Y}, {author}.' version = scanpy.__version__.replace('.dirty', '') release = version # default settings templates_path = ['_templates'] source_suffix = '.rst' master_doc = 'index' default_role = 'literal' exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] pygments_style = 'sphinx' extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.doctest', 'sphinx.ext.coverage', 'sphinx.ext.mathjax', 'sphinx.ext.napoleon', 'sphinx.ext.autosummary', # 'plot_generator', # 'plot_directive', 'sphinx_autodoc_typehints', # needs to be after napoleon # 'ipython_directive', # 'ipython_console_highlighting', 'scanpydoc', ] # Generate the API documentation when building autosummary_generate = True autodoc_member_order = 'bysource' # autodoc_default_flags = ['members'] napoleon_google_docstring = False napoleon_numpy_docstring = True napoleon_include_init_with_doc = False napoleon_use_rtype = True # having a separate entry generally helps readability napoleon_use_param = True napoleon_custom_sections = [('Params', 'Parameters')] todo_include_todos = False intersphinx_mapping = dict( anndata=('https://anndata.readthedocs.io/en/latest/', None), bbknn=('https://bbknn.readthedocs.io/en/latest/', None), leidenalg=('https://leidenalg.readthedocs.io/en/latest/', None), louvain=('https://louvain-igraph.readthedocs.io/en/latest/', None), matplotlib=('https://matplotlib.org/', None), networkx=('https://networkx.github.io/documentation/networkx-1.10/', None), numpy=('https://docs.scipy.org/doc/numpy/', None), pandas=('http://pandas.pydata.org/pandas-docs/stable/', None), python=('https://docs.python.org/3', None), scipy=('https://docs.scipy.org/doc/scipy/reference/', None), sklearn=('https://scikit-learn.org/stable/', None), ) # -- Options for HTML output ---------------------------------------------- html_theme = 'sphinx_rtd_theme' html_theme_options = dict( navigation_depth=4, logo_only=True, # Only show the logo ) html_context = dict( display_github=True, # Integrate GitHub github_user='theislab', # Username github_repo='scanpy', # Repo name github_version='master', # Version conf_py_path='/docs/', # Path in the checkout to the docs root ) html_static_path = ['_static'] html_logo = '_static/img/Scanpy_Logo_RGB.png' def setup(app): app.add_stylesheet('css/custom.css') app.connect('autodoc-process-docstring', insert_function_images) # -- Options for other output formats ------------------------------------------ htmlhelp_basename = f'{project}doc' doc_title = f'{project} Documentation' latex_documents = [ (master_doc, f'{project}.tex', doc_title, author, 'manual'), ] man_pages = [ (master_doc, project, doc_title, [author], 1) ] texinfo_documents = [ (master_doc, project, doc_title, author, project, 'One line description of project.', 'Miscellaneous'), ] # -- Images for plot functions ------------------------------------------------- def insert_function_images(app, what, name, obj, options, lines): path = Path(__file__).parent / 'api' / f'{name}.png' if what != 'function' or not path.is_file(): return lines[0:0] = [f'.. image:: {path.name}', ' :width: 200', ' :align: right', ''] print(*lines, sep='\n') # -- Test for new scanpydoc functionality -------------------------------------- import re from sphinx.ext.napoleon import NumpyDocstring def process_return(lines): for line in lines: m = re.fullmatch(r'(?P\w+)\s+:\s+(?P[\w.]+)', line) if m: # Once this is in scanpydoc, we can use the fancy hover stuff yield f'**{m["param"]}** : :class:`~{m["type"]}`' else: yield line def scanpy_parse_returns_section(self, section): lines_raw = list(process_return(self._dedent(self._consume_to_next_section()))) lines = self._format_block(':returns: ', lines_raw) if lines and lines[-1]: lines.append('') return lines NumpyDocstring._parse_returns_section = scanpy_parse_returns_section # -- Debug code ---------------------------------------------------------------- # Just do the following to see the rst of a function: # rm -f _build/doctrees/api/scanpy..doctree; DEBUG=1 make html import os if os.environ.get('DEBUG') is not None: import sphinx.ext.napoleon pd = sphinx.ext.napoleon._process_docstring def pd_new(app, what, name, obj, options, lines): pd(app, what, name, obj, options, lines) print(*lines, sep='\n') sphinx.ext.napoleon._process_docstring = pd_new ########################################################################### # auto-created readthedocs.org specific configuration # ########################################################################### # # The following code was added during an automated build on readthedocs.org # It is auto created and injected for every build. The result is based on the # conf.py.tmpl file found in the readthedocs.org codebase: # https://github.com/rtfd/readthedocs.org/blob/master/readthedocs/doc_builder/templates/doc_builder/conf.py.tmpl # import importlib import sys import os.path from six import string_types from sphinx import version_info # Get suffix for proper linking to GitHub # This is deprecated in Sphinx 1.3+, # as each page can have its own suffix if globals().get('source_suffix', False): if isinstance(source_suffix, string_types): SUFFIX = source_suffix elif isinstance(source_suffix, (list, tuple)): # Sphinx >= 1.3 supports list/tuple to define multiple suffixes SUFFIX = source_suffix[0] elif isinstance(source_suffix, dict): # Sphinx >= 1.8 supports a mapping dictionary for mulitple suffixes SUFFIX = list(source_suffix.keys())[0] # make a ``list()`` for py2/py3 compatibility else: # default to .rst SUFFIX = '.rst' else: SUFFIX = '.rst' # Add RTD Static Path. Add to the end because it overwrites previous files. if not 'html_static_path' in globals(): html_static_path = [] if os.path.exists('_static'): html_static_path.append('_static') # Add RTD Theme only if they aren't overriding it already using_rtd_theme = ( ( 'html_theme' in globals() and html_theme in ['default'] and # Allow people to bail with a hack of having an html_style 'html_style' not in globals() ) or 'html_theme' not in globals() ) if using_rtd_theme: theme = importlib.import_module('sphinx_rtd_theme') html_theme = 'sphinx_rtd_theme' html_style = None html_theme_options = {} if 'html_theme_path' in globals(): html_theme_path.append(theme.get_html_theme_path()) else: html_theme_path = [theme.get_html_theme_path()] if globals().get('websupport2_base_url', False): websupport2_base_url = 'https://readthedocs.com/websupport' websupport2_static_url = 'https://media.readthedocs.com/' #Add project information to the template context. context = { 'using_theme': using_rtd_theme, 'html_theme': html_theme, 'current_version': "latest", 'version_slug': "latest", 'MEDIA_URL': "https://media.readthedocs.com/media/", 'STATIC_URL': "https://media.readthedocs.com/", 'PRODUCTION_DOMAIN': "readthedocs.com", 'versions': [ ("latest", "/en/latest/"), ("stable", "/en/stable/"), ], 'downloads': [ ("htmlzip", "//readthedocs.com/projects/icb-scanpy/downloads/htmlzip/latest/"), ], 'subprojects': [ ], 'slug': 'icb-scanpy', 'name': u'scanpy', 'rtd_language': u'en', 'programming_language': u'py', 'canonical_url': 'https://icb-scanpy.readthedocs-hosted.com/en/stable/', 'analytics_code': 'None', 'single_version': False, 'conf_py_path': '/docs/', 'api_host': 'https://readthedocs.com', 'github_user': 'theislab', 'github_repo': 'scanpy', 'github_version': 'master', 'display_github': True, 'bitbucket_user': 'None', 'bitbucket_repo': 'None', 'bitbucket_version': 'master', 'display_bitbucket': False, 'gitlab_user': 'None', 'gitlab_repo': 'None', 'gitlab_version': 'master', 'display_gitlab': False, 'READTHEDOCS': True, 'using_theme': (html_theme == "default"), 'new_theme': (html_theme == "sphinx_rtd_theme"), 'source_suffix': SUFFIX, 'ad_free': False, 'user_analytics_code': '', 'global_analytics_code': 'UA-17997319-2', 'commit': '04013418', } if 'html_context' in globals(): html_context.update(context) else: html_context = context # Add custom RTD extension if 'extensions' in globals(): # Insert at the beginning because it can interfere # with other extensions. # See https://github.com/rtfd/readthedocs.org/pull/4054 extensions.insert(0, "readthedocs_ext.readthedocs") else: extensions = ["readthedocs_ext.readthedocs"] [rtd-command-info] start-time: 2019-04-17T16:56:54.724468Z, end-time: 2019-04-17T16:58:04.270066Z, duration: 69, exit-code: 0 python sphinx-build -T -E -b readthedocs -d _build/doctrees-readthedocs -D language=en . _build/html Running Sphinx v2.0.1 loading translations [en]... done making output directory... done loading intersphinx inventory from https://anndata.readthedocs.io/en/latest/objects.inv... loading intersphinx inventory from https://bbknn.readthedocs.io/en/latest/objects.inv... loading intersphinx inventory from https://leidenalg.readthedocs.io/en/latest/objects.inv... loading intersphinx inventory from https://louvain-igraph.readthedocs.io/en/latest/objects.inv... loading intersphinx inventory from https://matplotlib.org/objects.inv... loading intersphinx inventory from https://networkx.github.io/documentation/networkx-1.10/objects.inv... loading intersphinx inventory from https://docs.scipy.org/doc/numpy/objects.inv... loading intersphinx inventory from http://pandas.pydata.org/pandas-docs/stable/objects.inv... loading intersphinx inventory from https://docs.python.org/3/objects.inv... loading intersphinx inventory from https://docs.scipy.org/doc/scipy/reference/objects.inv... loading intersphinx inventory from https://scikit-learn.org/stable/objects.inv... [autosummary] generating autosummary for: api/index.rst, api/plotting.rst, api/scanpy.Neighbors.compute_eigen.rst, api/scanpy.Neighbors.compute_neighbors.rst, api/scanpy.Neighbors.compute_transitions.rst, api/scanpy.Neighbors.connectivities.rst, api/scanpy.Neighbors.distances.rst, api/scanpy.Neighbors.distances_dpt.rst, api/scanpy.Neighbors.eigen_basis.rst, api/scanpy.Neighbors.eigen_values.rst, ..., api/scanpy.tl.sim.rst, api/scanpy.tl.tsne.rst, api/scanpy.tl.umap.rst, basic_usage.rst, examples.rst, index.rst, installation.rst, references.rst, release_notes.rst, tutorials.rst building [mo]: targets for 0 po files that are out of date building [readthedocs]: targets for 214 source files that are out of date updating environment: 214 added, 0 changed, 0 removed reading sources... [ 0%] api/index reading sources... [ 0%] api/plotting reading sources... [ 1%] api/scanpy.Neighbors reading sources... [ 1%] api/scanpy.Neighbors.compute_eigen reading sources... [ 2%] api/scanpy.Neighbors.compute_neighbors reading sources... [ 2%] api/scanpy.Neighbors.compute_transitions reading sources... [ 3%] api/scanpy.Neighbors.connectivities reading sources... [ 3%] api/scanpy.Neighbors.distances reading sources... [ 4%] api/scanpy.Neighbors.distances_dpt reading sources... [ 4%] api/scanpy.Neighbors.eigen_basis reading sources... [ 5%] api/scanpy.Neighbors.eigen_values reading sources... [ 5%] api/scanpy.Neighbors.getdoc reading sources... [ 6%] api/scanpy.Neighbors.laplacian reading sources... [ 6%] api/scanpy.Neighbors.to_igraph reading sources... [ 7%] api/scanpy.Neighbors.transitions reading sources... [ 7%] api/scanpy.Neighbors.transitions_sym reading sources... [ 7%] api/scanpy._settings.ScanpyConfig reading sources... [ 8%] api/scanpy._settings.ScanpyConfig.autosave reading sources... [ 8%] api/scanpy._settings.ScanpyConfig.autoshow reading sources... [ 9%] api/scanpy._settings.ScanpyConfig.cachedir reading sources... [ 9%] api/scanpy._settings.ScanpyConfig.categories_to_ignore reading sources... [ 10%] api/scanpy._settings.ScanpyConfig.datasetdir reading sources... [ 10%] api/scanpy._settings.ScanpyConfig.figdir reading sources... [ 11%] api/scanpy._settings.ScanpyConfig.file_format_data reading sources... [ 11%] api/scanpy._settings.ScanpyConfig.file_format_figs reading sources... [ 12%] api/scanpy._settings.ScanpyConfig.getdoc reading sources... [ 12%] api/scanpy._settings.ScanpyConfig.logfile reading sources... [ 13%] api/scanpy._settings.ScanpyConfig.max_memory reading sources... [ 13%] api/scanpy._settings.ScanpyConfig.n_jobs reading sources... [ 14%] api/scanpy._settings.ScanpyConfig.plot_suffix reading sources... [ 14%] api/scanpy._settings.ScanpyConfig.set_figure_params reading sources... [ 14%] api/scanpy._settings.ScanpyConfig.verbosity reading sources... [ 15%] api/scanpy._settings.ScanpyConfig.writedir reading sources... [ 15%] api/scanpy.api reading sources... [ 16%] api/scanpy.api.Neighbors reading sources... [ 16%] api/scanpy.api.Neighbors.compute_eigen reading sources... [ 17%] api/scanpy.api.Neighbors.compute_neighbors reading sources... [ 17%] api/scanpy.api.Neighbors.compute_transitions reading sources... [ 18%] api/scanpy.api.Neighbors.connectivities reading sources... [ 18%] api/scanpy.api.Neighbors.distances reading sources... [ 19%] api/scanpy.api.Neighbors.distances_dpt reading sources... [ 19%] api/scanpy.api.Neighbors.eigen_basis reading sources... [ 20%] api/scanpy.api.Neighbors.eigen_values reading sources... [ 20%] api/scanpy.api.Neighbors.getdoc reading sources... [ 21%] api/scanpy.api.Neighbors.laplacian reading sources... [ 21%] api/scanpy.api.Neighbors.to_igraph reading sources... [ 21%] api/scanpy.api.Neighbors.transitions reading sources... [ 22%] api/scanpy.api.Neighbors.transitions_sym reading sources... [ 22%] api/scanpy.api.datasets.blobs reading sources... [ 23%] api/scanpy.api.datasets.krumsiek11 reading sources... [ 23%] api/scanpy.api.datasets.moignard15 reading sources... [ 24%] api/scanpy.api.datasets.paul15 reading sources... [ 24%] api/scanpy.api.datasets.pbmc3k reading sources... [ 25%] api/scanpy.api.datasets.pbmc68k_reduced reading sources... [ 25%] api/scanpy.api.datasets.toggleswitch reading sources... [ 26%] api/scanpy.api.export_to.spring_project reading sources... [ 26%] api/scanpy.api.logging.print_versions reading sources... [ 27%] api/scanpy.api.pp.bbknn reading sources... [ 27%] api/scanpy.api.pp.calculate_qc_metrics reading sources... [ 28%] api/scanpy.api.pp.dca reading sources... [ 28%] api/scanpy.api.pp.downsample_counts reading sources... [ 28%] api/scanpy.api.pp.filter_cells reading sources... [ 29%] api/scanpy.api.pp.filter_genes reading sources... [ 29%] api/scanpy.api.pp.filter_genes_dispersion reading sources... [ 30%] api/scanpy.api.pp.highly_variable_genes reading sources... [ 30%] api/scanpy.api.pp.log1p reading sources... [ 31%] api/scanpy.api.pp.magic reading sources... [ 31%] api/scanpy.api.pp.mnn_correct reading sources... [ 32%] api/scanpy.api.pp.neighbors reading sources... [ 32%] api/scanpy.api.pp.normalize_per_cell reading sources... [ 33%] api/scanpy.api.pp.pca reading sources... [ 33%] api/scanpy.api.pp.recipe_seurat reading sources... [ 34%] api/scanpy.api.pp.recipe_weinreb17 reading sources... [ 34%] api/scanpy.api.pp.recipe_zheng17 reading sources... [ 35%] api/scanpy.api.pp.regress_out reading sources... [ 35%] api/scanpy.api.pp.scale reading sources... [ 35%] api/scanpy.api.pp.subsample reading sources... [ 36%] api/scanpy.api.queries.mitochondrial_genes reading sources... [ 36%] api/scanpy.api.read reading sources... [ 37%] api/scanpy.api.read_10x_h5 reading sources... [ 37%] api/scanpy.api.read_10x_mtx reading sources... [ 38%] api/scanpy.api.read_csv reading sources... [ 38%] api/scanpy.api.read_excel reading sources... [ 39%] api/scanpy.api.read_h5ad reading sources... [ 39%] api/scanpy.api.read_hdf reading sources... [ 40%] api/scanpy.api.read_loom reading sources... [ 40%] api/scanpy.api.read_mtx reading sources... [ 41%] api/scanpy.api.read_text reading sources... [ 41%] api/scanpy.api.read_umi_tools reading sources... [ 42%] api/scanpy.api.set_figure_params reading sources... [ 42%] api/scanpy.api.tl.cyclone reading sources... [ 42%] api/scanpy.api.tl.diffmap reading sources... [ 43%] api/scanpy.api.tl.dpt reading sources... [ 43%] api/scanpy.api.tl.draw_graph reading sources... [ 44%] api/scanpy.api.tl.leiden reading sources... [ 44%] api/scanpy.api.tl.louvain reading sources... [ 45%] api/scanpy.api.tl.paga reading sources... [ 45%] api/scanpy.api.tl.pca reading sources... [ 46%] api/scanpy.api.tl.phate reading sources... [ 46%] api/scanpy.api.tl.rank_genes_groups reading sources... [ 47%] api/scanpy.api.tl.sandbag reading sources... [ 47%] api/scanpy.api.tl.score_genes reading sources... [ 48%] api/scanpy.api.tl.score_genes_cell_cycle reading sources... [ 48%] api/scanpy.api.tl.sim reading sources... [ 49%] api/scanpy.api.tl.tsne reading sources... [ 49%] api/scanpy.api.tl.umap reading sources... [ 50%] api/scanpy.datasets.blobs reading sources... [ 50%] api/scanpy.datasets.ebi_expression_atlas reading sources... [ 50%] api/scanpy.datasets.krumsiek11 reading sources... [ 51%] api/scanpy.datasets.moignard15 reading sources... [ 51%] api/scanpy.datasets.paul15 reading sources... [ 52%] api/scanpy.datasets.pbmc3k reading sources... [ 52%] api/scanpy.datasets.pbmc68k_reduced reading sources... [ 53%] api/scanpy.datasets.toggleswitch reading sources... [ 53%] api/scanpy.external reading sources... [ 54%] api/scanpy.external.exporting.cellbrowser reading sources... [ 54%] api/scanpy.external.exporting.spring_project reading sources... [ 55%] api/scanpy.external.pl.phate reading sources... [ 55%] api/scanpy.external.pp.bbknn reading sources... [ 56%] api/scanpy.external.pp.dca reading sources... [ 56%] api/scanpy.external.pp.magic reading sources... [ 57%] api/scanpy.external.pp.mnn_correct reading sources... [ 57%] api/scanpy.external.tl.cyclone reading sources... [ 57%] api/scanpy.external.tl.palantir reading sources... [ 58%] api/scanpy.external.tl.phate reading sources... [ 58%] api/scanpy.external.tl.phenograph reading sources... [ 59%] api/scanpy.external.tl.sandbag reading sources... [ 59%] api/scanpy.logging.print_versions reading sources... [ 60%] api/scanpy.pl.clustermap reading sources... [ 60%] api/scanpy.pl.diffmap reading sources... [ 61%] api/scanpy.pl.dotplot .. image:: scanpy.pl.dotplot.png :width: 200 :align: right Makes a *dot plot* of the expression values of `var_names`. For each var_name and each `groupby` category a dot is plotted. Each dot represents two values: mean expression within each category (visualized by color) and fraction of cells expressing the var_name in the category (visualized by the size of the dot). If groupby is not given, the dotplot assumes that all data belongs to a single category. **Note**: A gene is considered expressed if the expression value in the adata (or adata.raw) is above the specified threshold which is zero by default. An example of dotplot usage is to visualize, for multiple marker genes, the mean value and the percentage of cells expressing the gene accross multiple clusters. :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param var_names: `var_names` should be a valid subset of `adata.var_names`. :type var_names: `str` or list of `str` :param groupby: The key of the observation grouping to consider. :type groupby: `str` or `None`, optional (default: `None`) :param log: Plot on logarithmic axis. :type log: `bool`, optional (default: `False`) :param use_raw: Use `raw` attribute of `adata` if present. :type use_raw: `bool`, optional (default: `None`) :param num_categories: Only used if groupby observation is not categorical. This value determines the number of groups into which the groupby observation should be subdivided. :type num_categories: `int`, optional (default: `7`) :param figsize: Figure size when multi_panel = True. Otherwise the rcParam['figure.figsize] value is used. Format is (width, height) :type figsize: (`float`, `float`), optional (default: `None`) :param dendrogram: If True or a valid dendrogram key, a dendrogram based on the hierarchical clustering between the `groupby` categories is added. The dendrogram information is computed using :ref:`scanpy.tl.dendrogram`. If `tl.dendrogram` has not been called previously the function is called with default parameters. :type dendrogram: `bool` or `str`, optional (default, `False`) :param gene_symbols: Column name in `.var` DataFrame that stores gene symbols. By default `var_names` refer to the index column of the `.var` DataFrame. Setting this option allows alternative names to be used. :type gene_symbols: string, optional (default: `None`) :param var_group_positions: Use this parameter to highlight groups of `var_names`. This will draw a 'bracket' or a color block between the given start and end positions. If the parameter `var_group_labels` is set, the corresponding labels are added on top/left. E.g. var_group_positions = [(4,10)] will add a bracket between the fourth var_name and the tenth var_name. By giving more positions, more brackets/color blocks are drawn. :type var_group_positions: list of `tuples`. :param var_group_labels: Labels for each of the var_group_positions that want to be highlighted. :type var_group_labels: list of `str` :param var_group_rotation: Label rotation degrees. By default, labels larger than 4 characters are rotated 90 degrees :type var_group_rotation: `float` (default: `None`) :param layer: Name of the AnnData object layer that wants to be plotted. By default adata.raw.X is plotted. If `use_raw=False` is set, then `adata.X` is plotted. If `layer` is set to a valid layer name, then the layer is plotted. `layer` takes precedence over `use_raw`. :type layer: `str`, (default `None`) :param expression_cutoff: Expression cutoff that is used for binarizing the gene expression and determining the fraction of cells expressing given genes. A gene is expressed only if the expression value is greater than this threshold. :type expression_cutoff: `float` (default: `0.`) :param mean_only_expressed: If True, gene expression is averaged only over the cells expressing the given genes. :type mean_only_expressed: `bool` (default: `False`) :param color_map: String denoting matplotlib color map. :type color_map: `str`, optional (default: `Reds`) :param dot_max: If none, the maximum dot size is set to the maximum fraction value found (e.g. 0.6). If given, the value should be a number between 0 and 1. All fractions larger than dot_max are clipped to this value. :type dot_max: `float` optional (default: `None`) :param dot_min: If none, the minimum dot size is set to 0. If given, the value should be a number between 0 and 1. All fractions smaller than dot_min are clipped to this value. :type dot_min: `float` optional (default: `None`) :param standard_scale: Whether or not to standardize that dimension between 0 and 1, meaning for each variable or group, subtract the minimum and divide each by its maximum. :type standard_scale: {'var', 'group'}, optional (default: None) :param smallest_dot: If none, the smallest dot has size 0. All expression levels with `dot_min` are potted with `smallest_dot` dot size. :type smallest_dot: `float` optional (default: 0.) :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `matplotlib.pyplot.scatter`. :type \*\*kwds: keyword arguments :returns: List of :class:`~matplotlib.axes.Axes` .. rubric:: Examples >>> adata = sc.datasets.pbmc68k_reduced() >>> sc.pl.dotplot(adata, ['C1QA', 'PSAP', 'CD79A', 'CD79B', 'CST3', 'LYZ'], ... groupby='bulk_labels', dendrogram=True) reading sources... [ 61%] api/scanpy.pl.dpt_groups_pseudotime reading sources... [ 62%] api/scanpy.pl.dpt_timeseries reading sources... [ 62%] api/scanpy.pl.draw_graph reading sources... [ 63%] api/scanpy.pl.embedding_density reading sources... [ 63%] api/scanpy.pl.filter_genes_dispersion reading sources... [ 64%] api/scanpy.pl.heatmap .. image:: scanpy.pl.heatmap.png :width: 200 :align: right Heatmap of the expression values of genes. If `groupby` is given, the heatmap is ordered by the respective group. For example, a list of marker genes can be plotted, ordered by clustering. If the `groupby` observation annotation is not categorical the observation annotation is turned into a categorical by binning the data into the number specified in `num_categories`. :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param var_names: `var_names` should be a valid subset of `adata.var_names`. :type var_names: `str` or list of `str` :param groupby: The key of the observation grouping to consider. :type groupby: `str` or `None`, optional (default: `None`) :param log: Plot on logarithmic axis. :type log: `bool`, optional (default: `False`) :param use_raw: Use `raw` attribute of `adata` if present. :type use_raw: `bool`, optional (default: `None`) :param num_categories: Only used if groupby observation is not categorical. This value determines the number of groups into which the groupby observation should be subdivided. :type num_categories: `int`, optional (default: `7`) :param figsize: Figure size when multi_panel = True. Otherwise the rcParam['figure.figsize] value is used. Format is (width, height) :type figsize: (`float`, `float`), optional (default: `None`) :param dendrogram: If True or a valid dendrogram key, a dendrogram based on the hierarchical clustering between the `groupby` categories is added. The dendrogram information is computed using :ref:`scanpy.tl.dendrogram`. If `tl.dendrogram` has not been called previously the function is called with default parameters. :type dendrogram: `bool` or `str`, optional (default, `False`) :param gene_symbols: Column name in `.var` DataFrame that stores gene symbols. By default `var_names` refer to the index column of the `.var` DataFrame. Setting this option allows alternative names to be used. :type gene_symbols: string, optional (default: `None`) :param var_group_positions: Use this parameter to highlight groups of `var_names`. This will draw a 'bracket' or a color block between the given start and end positions. If the parameter `var_group_labels` is set, the corresponding labels are added on top/left. E.g. var_group_positions = [(4,10)] will add a bracket between the fourth var_name and the tenth var_name. By giving more positions, more brackets/color blocks are drawn. :type var_group_positions: list of `tuples`. :param var_group_labels: Labels for each of the var_group_positions that want to be highlighted. :type var_group_labels: list of `str` :param var_group_rotation: Label rotation degrees. By default, labels larger than 4 characters are rotated 90 degrees :type var_group_rotation: `float` (default: `None`) :param layer: Name of the AnnData object layer that wants to be plotted. By default adata.raw.X is plotted. If `use_raw=False` is set, then `adata.X` is plotted. If `layer` is set to a valid layer name, then the layer is plotted. `layer` takes precedence over `use_raw`. :type layer: `str`, (default `None`) :param standard_scale: Whether or not to standardize that dimension between 0 and 1, meaning for each variable or observation, subtract the minimum and divide each by its maximum. :type standard_scale: {'var', 'obs'}, optional (default: None) :param swap_axes: By default, the x axis contains `var_names` (e.g. genes) and the y axis the `groupby` categories (if any). By setting `swap_axes` then x are the `groupby` categories and y the `var_names`. :type swap_axes: `bool`, optional (default: `False`) :param show_gene_labels: By default gene labels are shown when there are 50 or less genes. Otherwise the labels are removed. :type show_gene_labels: `bool`, optional (default: `None`). :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `matplotlib.imshow`. :type \*\*kwds: keyword arguments :returns: List of :class:`~matplotlib.axes.Axes` .. rubric:: Examples >>> adata = sc.datasets.pbmc68k_reduced() >>> sc.pl.heatmap(adata, ['C1QA', 'PSAP', 'CD79A', 'CD79B', 'CST3', 'LYZ'], ... groupby='bulk_labels', dendrogram=True, swap_axes=True) reading sources... [ 64%] api/scanpy.pl.highest_expr_genes reading sources... [ 64%] api/scanpy.pl.highly_variable_genes reading sources... [ 65%] api/scanpy.pl.matrixplot .. image:: scanpy.pl.matrixplot.png :width: 200 :align: right Creates a heatmap of the mean expression values per cluster of each var_names If groupby is not given, the matrixplot assumes that all data belongs to a single category. :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param var_names: `var_names` should be a valid subset of `adata.var_names`. :type var_names: `str` or list of `str` :param groupby: The key of the observation grouping to consider. :type groupby: `str` or `None`, optional (default: `None`) :param log: Plot on logarithmic axis. :type log: `bool`, optional (default: `False`) :param use_raw: Use `raw` attribute of `adata` if present. :type use_raw: `bool`, optional (default: `None`) :param num_categories: Only used if groupby observation is not categorical. This value determines the number of groups into which the groupby observation should be subdivided. :type num_categories: `int`, optional (default: `7`) :param figsize: Figure size when multi_panel = True. Otherwise the rcParam['figure.figsize] value is used. Format is (width, height) :type figsize: (`float`, `float`), optional (default: `None`) :param dendrogram: If True or a valid dendrogram key, a dendrogram based on the hierarchical clustering between the `groupby` categories is added. The dendrogram information is computed using :ref:`scanpy.tl.dendrogram`. If `tl.dendrogram` has not been called previously the function is called with default parameters. :type dendrogram: `bool` or `str`, optional (default, `False`) :param gene_symbols: Column name in `.var` DataFrame that stores gene symbols. By default `var_names` refer to the index column of the `.var` DataFrame. Setting this option allows alternative names to be used. :type gene_symbols: string, optional (default: `None`) :param var_group_positions: Use this parameter to highlight groups of `var_names`. This will draw a 'bracket' or a color block between the given start and end positions. If the parameter `var_group_labels` is set, the corresponding labels are added on top/left. E.g. var_group_positions = [(4,10)] will add a bracket between the fourth var_name and the tenth var_name. By giving more positions, more brackets/color blocks are drawn. :type var_group_positions: list of `tuples`. :param var_group_labels: Labels for each of the var_group_positions that want to be highlighted. :type var_group_labels: list of `str` :param var_group_rotation: Label rotation degrees. By default, labels larger than 4 characters are rotated 90 degrees :type var_group_rotation: `float` (default: `None`) :param layer: Name of the AnnData object layer that wants to be plotted. By default adata.raw.X is plotted. If `use_raw=False` is set, then `adata.X` is plotted. If `layer` is set to a valid layer name, then the layer is plotted. `layer` takes precedence over `use_raw`. :type layer: `str`, (default `None`) :param standard_scale: Whether or not to standardize that dimension between 0 and 1, meaning for each variable or group, subtract the minimum and divide each by its maximum. :type standard_scale: {'var', 'group'}, optional (default: None) :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `matplotlib.pyplot.pcolor`. :type \*\*kwds: keyword arguments :returns: List of :class:`~matplotlib.axes.Axes` .. rubric:: Examples >>> adata = sc.datasets.pbmc68k_reduced() >>> sc.pl.matrixplot(adata, ['C1QA', 'PSAP', 'CD79A', 'CD79B', 'CST3', 'LYZ'], ... groupby='bulk_labels', dendrogram=True) reading sources... [ 65%] api/scanpy.pl.paga reading sources... [ 66%] api/scanpy.pl.paga_compare reading sources... [ 66%] api/scanpy.pl.paga_path reading sources... [ 67%] api/scanpy.pl.pca reading sources... [ 67%] api/scanpy.pl.pca_loadings reading sources... [ 68%] api/scanpy.pl.pca_overview reading sources... [ 68%] api/scanpy.pl.pca_variance_ratio reading sources... [ 69%] api/scanpy.pl.rank_genes_groups reading sources... [ 69%] api/scanpy.pl.rank_genes_groups_dotplot .. image:: scanpy.pl.rank_genes_groups_dotplot.png :width: 200 :align: right Plot ranking of genes using dotplot plot (see `scanpy.api.pl.dotplot`) :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param groups: The groups for which to show the gene ranking. :type groups: `str` or `list` of `str` :param n_genes: Number of genes to show. :type n_genes: `int`, optional (default: 10) :param groupby: The key of the observation grouping to consider. By default, the groupby is chosen from the rank genes groups parameter but other groupby options can be used. It is expected that groupby is a categorical. If groupby is not a categorical observation, it would be subdivided into `num_categories` (see `scanpy.api.pl.dotplot`). :type groupby: `str` or `None`, optional (default: `None`) :param key: Key used to store the ranking results in `adata.uns`. :type key: `str` :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `scanpy.api.pl.dotplot`. :type \*\*kwds: keyword arguments reading sources... [ 70%] api/scanpy.pl.rank_genes_groups_heatmap .. image:: scanpy.pl.rank_genes_groups_heatmap.png :width: 200 :align: right Plot ranking of genes using heatmap plot (see `scanpy.api.pl.heatmap`) :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param groups: The groups for which to show the gene ranking. :type groups: `str` or `list` of `str` :param n_genes: Number of genes to show. :type n_genes: `int`, optional (default: 10) :param groupby: The key of the observation grouping to consider. By default, the groupby is chosen from the rank genes groups parameter but other groupby options can be used. It is expected that groupby is a categorical. If groupby is not a categorical observation, it would be subdivided into `num_categories` (see `scanpy.api.pl.heatmap`). :type groupby: `str` or `None`, optional (default: `None`) :param key: Key used to store the ranking results in `adata.uns`. :type key: `str` :param \*\*kwds: Are passed to `scanpy.api.pl.heatmap`. :type \*\*kwds: keyword arguments :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. reading sources... [ 70%] api/scanpy.pl.rank_genes_groups_matrixplot .. image:: scanpy.pl.rank_genes_groups_matrixplot.png :width: 200 :align: right Plot ranking of genes using matrixplot plot (see `scanpy.api.pl.matrixplot`) :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param groups: The groups for which to show the gene ranking. :type groups: `str` or `list` of `str` :param n_genes: Number of genes to show. :type n_genes: `int`, optional (default: 10) :param groupby: The key of the observation grouping to consider. By default, the groupby is chosen from the rank genes groups parameter but other groupby options can be used. It is expected that groupby is a categorical. If groupby is not a categorical observation, it would be subdivided into `num_categories` (see `scanpy.api.pl.matrixplot`). :type groupby: `str` or `None`, optional (default: `None`) :param key: Key used to store the ranking results in `adata.uns`. :type key: `str` :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `scanpy.api.pl.matrixplot`. :type \*\*kwds: keyword arguments reading sources... [ 71%] api/scanpy.pl.rank_genes_groups_stacked_violin .. image:: scanpy.pl.rank_genes_groups_stacked_violin.png :width: 200 :align: right Plot ranking of genes using stacked_violin plot (see `scanpy.api.pl.stacked_violin`) :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param groups: The groups for which to show the gene ranking. :type groups: `str` or `list` of `str` :param n_genes: Number of genes to show. :type n_genes: `int`, optional (default: 10) :param groupby: The key of the observation grouping to consider. By default, the groupby is chosen from the rank genes groups parameter but other groupby options can be used. It is expected that groupby is a categorical. If groupby is not a categorical observation, it would be subdivided into `num_categories` (see `scanpy.api.pl.stacked_violin`). :type groupby: `str` or `None`, optional (default: `None`) :param key: Key used to store the ranking results in `adata.uns`. :type key: `str` :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `scanpy.api.pl.stacked_violin`. :type \*\*kwds: keyword arguments reading sources... [ 71%] api/scanpy.pl.rank_genes_groups_violin reading sources... [ 71%] api/scanpy.pl.ranking reading sources... [ 72%] api/scanpy.pl.scatter reading sources... [ 72%] api/scanpy.pl.sim reading sources... [ 73%] api/scanpy.pl.stacked_violin .. image:: scanpy.pl.stacked_violin.png :width: 200 :align: right Stacked violin plots. Makes a compact image composed of individual violin plots (from `seaborn.violinplot`) stacked on top of each other. Useful to visualize gene expression per cluster. Wraps `seaborn.violinplot` for :class:`~anndata.AnnData`. :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param var_names: `var_names` should be a valid subset of `adata.var_names`. :type var_names: `str` or list of `str` :param groupby: The key of the observation grouping to consider. :type groupby: `str` or `None`, optional (default: `None`) :param log: Plot on logarithmic axis. :type log: `bool`, optional (default: `False`) :param use_raw: Use `raw` attribute of `adata` if present. :type use_raw: `bool`, optional (default: `None`) :param num_categories: Only used if groupby observation is not categorical. This value determines the number of groups into which the groupby observation should be subdivided. :type num_categories: `int`, optional (default: `7`) :param figsize: Figure size when multi_panel = True. Otherwise the rcParam['figure.figsize] value is used. Format is (width, height) :type figsize: (`float`, `float`), optional (default: `None`) :param dendrogram: If True or a valid dendrogram key, a dendrogram based on the hierarchical clustering between the `groupby` categories is added. The dendrogram information is computed using :ref:`scanpy.tl.dendrogram`. If `tl.dendrogram` has not been called previously the function is called with default parameters. :type dendrogram: `bool` or `str`, optional (default, `False`) :param gene_symbols: Column name in `.var` DataFrame that stores gene symbols. By default `var_names` refer to the index column of the `.var` DataFrame. Setting this option allows alternative names to be used. :type gene_symbols: string, optional (default: `None`) :param var_group_positions: Use this parameter to highlight groups of `var_names`. This will draw a 'bracket' or a color block between the given start and end positions. If the parameter `var_group_labels` is set, the corresponding labels are added on top/left. E.g. var_group_positions = [(4,10)] will add a bracket between the fourth var_name and the tenth var_name. By giving more positions, more brackets/color blocks are drawn. :type var_group_positions: list of `tuples`. :param var_group_labels: Labels for each of the var_group_positions that want to be highlighted. :type var_group_labels: list of `str` :param var_group_rotation: Label rotation degrees. By default, labels larger than 4 characters are rotated 90 degrees :type var_group_rotation: `float` (default: `None`) :param layer: Name of the AnnData object layer that wants to be plotted. By default adata.raw.X is plotted. If `use_raw=False` is set, then `adata.X` is plotted. If `layer` is set to a valid layer name, then the layer is plotted. `layer` takes precedence over `use_raw`. :type layer: `str`, (default `None`) :param stripplot: Add a stripplot on top of the violin plot. See `seaborn.stripplot`. :type stripplot: `bool` optional (default: `True`) :param jitter: Add jitter to the stripplot (only when stripplot is True) See `seaborn.stripplot`. :type jitter: `float` or `bool`, optional (default: `True`) :param size: Size of the jitter points. :type size: int, optional (default: 1) :param order: Order in which to show the categories. :type order: list of str, optional (default: `True`) :param scale: The method used to scale the width of each violin. If 'area', each violin will have the same area. If 'count', the width of the violins will be scaled by the number of observations in that bin. If 'width', each violin will have the same width. :type scale: {'area', 'count', 'width'}, optional (default: 'width') :param row_palette: The row palette determines the colors to use in each of the stacked violin plots. The value should be a valid seaborn palette name or a valic matplotlib colormap (see https://seaborn.pydata.org/generated/seaborn.color_palette.html). Alternatively, a single color name or hex value can be passed. E.g. 'red' or '#cc33ff' :type row_palette: `str` (default: `muted`) :param standard_scale: Whether or not to standardize that dimension between 0 and 1, meaning for each variable or observation, subtract the minimum and divide each by its maximum. :type standard_scale: {'var', 'obs'}, optional (default: None) :param swap_axes: By default, the x axis contains `var_names` (e.g. genes) and the y axis the `groupby` categories. By setting `swap_axes` then x are the `groupby` categories and y the `var_names`. When swapping axes var_group_positions are no longer used :type swap_axes: `bool`, optional (default: `False`) :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `seaborn.violinplot`. :type \*\*kwds: keyword arguments :returns: List of :class:`~matplotlib.axes.Axes` .. rubric:: Examples >>> adata = sc.datasets.pbmc68k_reduced() >>> sc.pl.stacked_violin(adata, ['C1QA', 'PSAP', 'CD79A', 'CD79B', 'CST3', 'LYZ'], ... groupby='bulk_labels', dendrogram=True) reading sources... [ 73%] api/scanpy.pl.tsne reading sources... [ 74%] api/scanpy.pl.umap reading sources... [ 74%] api/scanpy.pl.violin .. image:: scanpy.pl.violin.png :width: 200 :align: right Violin plot. Wraps `seaborn.violinplot` for :class:`~anndata.AnnData`. :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param keys: Keys for accessing variables of `.var_names` or fields of `.obs`. :type keys: `str` or list of `str` :param groupby: The key of the observation grouping to consider. :type groupby: `str` or `None`, optional (default: `None`) :param log: Plot on logarithmic axis. :type log: `bool`, optional (default: `False`) :param use_raw: Use `raw` attribute of `adata` if present. :type use_raw: `bool`, optional (default: `None`) :param multi_panel: Display keys in multiple panels also when `groupby is not None`. :type multi_panel: `bool`, optional (default: `False`) :param stripplot: Add a stripplot on top of the violin plot. See `seaborn.stripplot`. :type stripplot: `bool` optional (default: `True`) :param jitter: Add jitter to the stripplot (only when stripplot is True) See `seaborn.stripplot`. :type jitter: `float` or `bool`, optional (default: `True`) :param size: Size of the jitter points. :type size: int, optional (default: 1) :param order: Order in which to show the categories. :type order: list of str, optional (default: `True`) :param scale: The method used to scale the width of each violin. If 'area', each violin will have the same area. If 'count', the width of the violins will be scaled by the number of observations in that bin. If 'width', each violin will have the same width. :type scale: {'area', 'count', 'width'}, optional (default: 'width') :param xlabel: Label of the x axis. Defaults to `groupby` if `rotation` is `None`, otherwise, no label is shown. :type xlabel: `str`, optional (default: `''`) :param rotation: Rotation of xtick labels. :type rotation: `float`, optional (default: `None`) :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `seaborn.violinplot`. :type \*\*kwds: keyword arguments :returns: A :class:`~matplotlib.axes.Axes` object if `ax` is `None` else `None`. reading sources... [ 75%] api/scanpy.plotting .. image:: scanpy.pl.heatmap.png :width: 200 :align: right Heatmap of the expression values of genes. If `groupby` is given, the heatmap is ordered by the respective group. For example, a list of marker genes can be plotted, ordered by clustering. If the `groupby` observation annotation is not categorical the observation annotation is turned into a categorical by binning the data into the number specified in `num_categories`. :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param var_names: `var_names` should be a valid subset of `adata.var_names`. :type var_names: `str` or list of `str` :param groupby: The key of the observation grouping to consider. :type groupby: `str` or `None`, optional (default: `None`) :param log: Plot on logarithmic axis. :type log: `bool`, optional (default: `False`) :param use_raw: Use `raw` attribute of `adata` if present. :type use_raw: `bool`, optional (default: `None`) :param num_categories: Only used if groupby observation is not categorical. This value determines the number of groups into which the groupby observation should be subdivided. :type num_categories: `int`, optional (default: `7`) :param figsize: Figure size when multi_panel = True. Otherwise the rcParam['figure.figsize] value is used. Format is (width, height) :type figsize: (`float`, `float`), optional (default: `None`) :param dendrogram: If True or a valid dendrogram key, a dendrogram based on the hierarchical clustering between the `groupby` categories is added. The dendrogram information is computed using :ref:`scanpy.tl.dendrogram`. If `tl.dendrogram` has not been called previously the function is called with default parameters. :type dendrogram: `bool` or `str`, optional (default, `False`) :param gene_symbols: Column name in `.var` DataFrame that stores gene symbols. By default `var_names` refer to the index column of the `.var` DataFrame. Setting this option allows alternative names to be used. :type gene_symbols: string, optional (default: `None`) :param var_group_positions: Use this parameter to highlight groups of `var_names`. This will draw a 'bracket' or a color block between the given start and end positions. If the parameter `var_group_labels` is set, the corresponding labels are added on top/left. E.g. var_group_positions = [(4,10)] will add a bracket between the fourth var_name and the tenth var_name. By giving more positions, more brackets/color blocks are drawn. :type var_group_positions: list of `tuples`. :param var_group_labels: Labels for each of the var_group_positions that want to be highlighted. :type var_group_labels: list of `str` :param var_group_rotation: Label rotation degrees. By default, labels larger than 4 characters are rotated 90 degrees :type var_group_rotation: `float` (default: `None`) :param layer: Name of the AnnData object layer that wants to be plotted. By default adata.raw.X is plotted. If `use_raw=False` is set, then `adata.X` is plotted. If `layer` is set to a valid layer name, then the layer is plotted. `layer` takes precedence over `use_raw`. :type layer: `str`, (default `None`) :param standard_scale: Whether or not to standardize that dimension between 0 and 1, meaning for each variable or observation, subtract the minimum and divide each by its maximum. :type standard_scale: {'var', 'obs'}, optional (default: None) :param swap_axes: By default, the x axis contains `var_names` (e.g. genes) and the y axis the `groupby` categories (if any). By setting `swap_axes` then x are the `groupby` categories and y the `var_names`. :type swap_axes: `bool`, optional (default: `False`) :param show_gene_labels: By default gene labels are shown when there are 50 or less genes. Otherwise the labels are removed. :type show_gene_labels: `bool`, optional (default: `None`). :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `matplotlib.imshow`. :type \*\*kwds: keyword arguments :returns: List of :class:`~matplotlib.axes.Axes` .. rubric:: Examples >>> adata = sc.datasets.pbmc68k_reduced() >>> sc.pl.heatmap(adata, ['C1QA', 'PSAP', 'CD79A', 'CD79B', 'CST3', 'LYZ'], ... groupby='bulk_labels', dendrogram=True, swap_axes=True) .. image:: scanpy.pl.dotplot.png :width: 200 :align: right Makes a *dot plot* of the expression values of `var_names`. For each var_name and each `groupby` category a dot is plotted. Each dot represents two values: mean expression within each category (visualized by color) and fraction of cells expressing the var_name in the category (visualized by the size of the dot). If groupby is not given, the dotplot assumes that all data belongs to a single category. **Note**: A gene is considered expressed if the expression value in the adata (or adata.raw) is above the specified threshold which is zero by default. An example of dotplot usage is to visualize, for multiple marker genes, the mean value and the percentage of cells expressing the gene accross multiple clusters. :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param var_names: `var_names` should be a valid subset of `adata.var_names`. :type var_names: `str` or list of `str` :param groupby: The key of the observation grouping to consider. :type groupby: `str` or `None`, optional (default: `None`) :param log: Plot on logarithmic axis. :type log: `bool`, optional (default: `False`) :param use_raw: Use `raw` attribute of `adata` if present. :type use_raw: `bool`, optional (default: `None`) :param num_categories: Only used if groupby observation is not categorical. This value determines the number of groups into which the groupby observation should be subdivided. :type num_categories: `int`, optional (default: `7`) :param figsize: Figure size when multi_panel = True. Otherwise the rcParam['figure.figsize] value is used. Format is (width, height) :type figsize: (`float`, `float`), optional (default: `None`) :param dendrogram: If True or a valid dendrogram key, a dendrogram based on the hierarchical clustering between the `groupby` categories is added. The dendrogram information is computed using :ref:`scanpy.tl.dendrogram`. If `tl.dendrogram` has not been called previously the function is called with default parameters. :type dendrogram: `bool` or `str`, optional (default, `False`) :param gene_symbols: Column name in `.var` DataFrame that stores gene symbols. By default `var_names` refer to the index column of the `.var` DataFrame. Setting this option allows alternative names to be used. :type gene_symbols: string, optional (default: `None`) :param var_group_positions: Use this parameter to highlight groups of `var_names`. This will draw a 'bracket' or a color block between the given start and end positions. If the parameter `var_group_labels` is set, the corresponding labels are added on top/left. E.g. var_group_positions = [(4,10)] will add a bracket between the fourth var_name and the tenth var_name. By giving more positions, more brackets/color blocks are drawn. :type var_group_positions: list of `tuples`. :param var_group_labels: Labels for each of the var_group_positions that want to be highlighted. :type var_group_labels: list of `str` :param var_group_rotation: Label rotation degrees. By default, labels larger than 4 characters are rotated 90 degrees :type var_group_rotation: `float` (default: `None`) :param layer: Name of the AnnData object layer that wants to be plotted. By default adata.raw.X is plotted. If `use_raw=False` is set, then `adata.X` is plotted. If `layer` is set to a valid layer name, then the layer is plotted. `layer` takes precedence over `use_raw`. :type layer: `str`, (default `None`) :param expression_cutoff: Expression cutoff that is used for binarizing the gene expression and determining the fraction of cells expressing given genes. A gene is expressed only if the expression value is greater than this threshold. :type expression_cutoff: `float` (default: `0.`) :param mean_only_expressed: If True, gene expression is averaged only over the cells expressing the given genes. :type mean_only_expressed: `bool` (default: `False`) :param color_map: String denoting matplotlib color map. :type color_map: `str`, optional (default: `Reds`) :param dot_max: If none, the maximum dot size is set to the maximum fraction value found (e.g. 0.6). If given, the value should be a number between 0 and 1. All fractions larger than dot_max are clipped to this value. :type dot_max: `float` optional (default: `None`) :param dot_min: If none, the minimum dot size is set to 0. If given, the value should be a number between 0 and 1. All fractions smaller than dot_min are clipped to this value. :type dot_min: `float` optional (default: `None`) :param standard_scale: Whether or not to standardize that dimension between 0 and 1, meaning for each variable or group, subtract the minimum and divide each by its maximum. :type standard_scale: {'var', 'group'}, optional (default: None) :param smallest_dot: If none, the smallest dot has size 0. All expression levels with `dot_min` are potted with `smallest_dot` dot size. :type smallest_dot: `float` optional (default: 0.) :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `matplotlib.pyplot.scatter`. :type \*\*kwds: keyword arguments :returns: List of :class:`~matplotlib.axes.Axes` .. rubric:: Examples >>> adata = sc.datasets.pbmc68k_reduced() >>> sc.pl.dotplot(adata, ['C1QA', 'PSAP', 'CD79A', 'CD79B', 'CST3', 'LYZ'], ... groupby='bulk_labels', dendrogram=True) .. image:: scanpy.pl.violin.png :width: 200 :align: right Violin plot. Wraps `seaborn.violinplot` for :class:`~anndata.AnnData`. :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param keys: Keys for accessing variables of `.var_names` or fields of `.obs`. :type keys: `str` or list of `str` :param groupby: The key of the observation grouping to consider. :type groupby: `str` or `None`, optional (default: `None`) :param log: Plot on logarithmic axis. :type log: `bool`, optional (default: `False`) :param use_raw: Use `raw` attribute of `adata` if present. :type use_raw: `bool`, optional (default: `None`) :param multi_panel: Display keys in multiple panels also when `groupby is not None`. :type multi_panel: `bool`, optional (default: `False`) :param stripplot: Add a stripplot on top of the violin plot. See `seaborn.stripplot`. :type stripplot: `bool` optional (default: `True`) :param jitter: Add jitter to the stripplot (only when stripplot is True) See `seaborn.stripplot`. :type jitter: `float` or `bool`, optional (default: `True`) :param size: Size of the jitter points. :type size: int, optional (default: 1) :param order: Order in which to show the categories. :type order: list of str, optional (default: `True`) :param scale: The method used to scale the width of each violin. If 'area', each violin will have the same area. If 'count', the width of the violins will be scaled by the number of observations in that bin. If 'width', each violin will have the same width. :type scale: {'area', 'count', 'width'}, optional (default: 'width') :param xlabel: Label of the x axis. Defaults to `groupby` if `rotation` is `None`, otherwise, no label is shown. :type xlabel: `str`, optional (default: `''`) :param rotation: Rotation of xtick labels. :type rotation: `float`, optional (default: `None`) :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `seaborn.violinplot`. :type \*\*kwds: keyword arguments :returns: A :class:`~matplotlib.axes.Axes` object if `ax` is `None` else `None`. .. image:: scanpy.pl.stacked_violin.png :width: 200 :align: right Stacked violin plots. Makes a compact image composed of individual violin plots (from `seaborn.violinplot`) stacked on top of each other. Useful to visualize gene expression per cluster. Wraps `seaborn.violinplot` for :class:`~anndata.AnnData`. :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param var_names: `var_names` should be a valid subset of `adata.var_names`. :type var_names: `str` or list of `str` :param groupby: The key of the observation grouping to consider. :type groupby: `str` or `None`, optional (default: `None`) :param log: Plot on logarithmic axis. :type log: `bool`, optional (default: `False`) :param use_raw: Use `raw` attribute of `adata` if present. :type use_raw: `bool`, optional (default: `None`) :param num_categories: Only used if groupby observation is not categorical. This value determines the number of groups into which the groupby observation should be subdivided. :type num_categories: `int`, optional (default: `7`) :param figsize: Figure size when multi_panel = True. Otherwise the rcParam['figure.figsize] value is used. Format is (width, height) :type figsize: (`float`, `float`), optional (default: `None`) :param dendrogram: If True or a valid dendrogram key, a dendrogram based on the hierarchical clustering between the `groupby` categories is added. The dendrogram information is computed using :ref:`scanpy.tl.dendrogram`. If `tl.dendrogram` has not been called previously the function is called with default parameters. :type dendrogram: `bool` or `str`, optional (default, `False`) :param gene_symbols: Column name in `.var` DataFrame that stores gene symbols. By default `var_names` refer to the index column of the `.var` DataFrame. Setting this option allows alternative names to be used. :type gene_symbols: string, optional (default: `None`) :param var_group_positions: Use this parameter to highlight groups of `var_names`. This will draw a 'bracket' or a color block between the given start and end positions. If the parameter `var_group_labels` is set, the corresponding labels are added on top/left. E.g. var_group_positions = [(4,10)] will add a bracket between the fourth var_name and the tenth var_name. By giving more positions, more brackets/color blocks are drawn. :type var_group_positions: list of `tuples`. :param var_group_labels: Labels for each of the var_group_positions that want to be highlighted. :type var_group_labels: list of `str` :param var_group_rotation: Label rotation degrees. By default, labels larger than 4 characters are rotated 90 degrees :type var_group_rotation: `float` (default: `None`) :param layer: Name of the AnnData object layer that wants to be plotted. By default adata.raw.X is plotted. If `use_raw=False` is set, then `adata.X` is plotted. If `layer` is set to a valid layer name, then the layer is plotted. `layer` takes precedence over `use_raw`. :type layer: `str`, (default `None`) :param stripplot: Add a stripplot on top of the violin plot. See `seaborn.stripplot`. :type stripplot: `bool` optional (default: `True`) :param jitter: Add jitter to the stripplot (only when stripplot is True) See `seaborn.stripplot`. :type jitter: `float` or `bool`, optional (default: `True`) :param size: Size of the jitter points. :type size: int, optional (default: 1) :param order: Order in which to show the categories. :type order: list of str, optional (default: `True`) :param scale: The method used to scale the width of each violin. If 'area', each violin will have the same area. If 'count', the width of the violins will be scaled by the number of observations in that bin. If 'width', each violin will have the same width. :type scale: {'area', 'count', 'width'}, optional (default: 'width') :param row_palette: The row palette determines the colors to use in each of the stacked violin plots. The value should be a valid seaborn palette name or a valic matplotlib colormap (see https://seaborn.pydata.org/generated/seaborn.color_palette.html). Alternatively, a single color name or hex value can be passed. E.g. 'red' or '#cc33ff' :type row_palette: `str` (default: `muted`) :param standard_scale: Whether or not to standardize that dimension between 0 and 1, meaning for each variable or observation, subtract the minimum and divide each by its maximum. :type standard_scale: {'var', 'obs'}, optional (default: None) :param swap_axes: By default, the x axis contains `var_names` (e.g. genes) and the y axis the `groupby` categories. By setting `swap_axes` then x are the `groupby` categories and y the `var_names`. When swapping axes var_group_positions are no longer used :type swap_axes: `bool`, optional (default: `False`) :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `seaborn.violinplot`. :type \*\*kwds: keyword arguments :returns: List of :class:`~matplotlib.axes.Axes` .. rubric:: Examples >>> adata = sc.datasets.pbmc68k_reduced() >>> sc.pl.stacked_violin(adata, ['C1QA', 'PSAP', 'CD79A', 'CD79B', 'CST3', 'LYZ'], ... groupby='bulk_labels', dendrogram=True) .. image:: scanpy.pl.matrixplot.png :width: 200 :align: right Creates a heatmap of the mean expression values per cluster of each var_names If groupby is not given, the matrixplot assumes that all data belongs to a single category. :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param var_names: `var_names` should be a valid subset of `adata.var_names`. :type var_names: `str` or list of `str` :param groupby: The key of the observation grouping to consider. :type groupby: `str` or `None`, optional (default: `None`) :param log: Plot on logarithmic axis. :type log: `bool`, optional (default: `False`) :param use_raw: Use `raw` attribute of `adata` if present. :type use_raw: `bool`, optional (default: `None`) :param num_categories: Only used if groupby observation is not categorical. This value determines the number of groups into which the groupby observation should be subdivided. :type num_categories: `int`, optional (default: `7`) :param figsize: Figure size when multi_panel = True. Otherwise the rcParam['figure.figsize] value is used. Format is (width, height) :type figsize: (`float`, `float`), optional (default: `None`) :param dendrogram: If True or a valid dendrogram key, a dendrogram based on the hierarchical clustering between the `groupby` categories is added. The dendrogram information is computed using :ref:`scanpy.tl.dendrogram`. If `tl.dendrogram` has not been called previously the function is called with default parameters. :type dendrogram: `bool` or `str`, optional (default, `False`) :param gene_symbols: Column name in `.var` DataFrame that stores gene symbols. By default `var_names` refer to the index column of the `.var` DataFrame. Setting this option allows alternative names to be used. :type gene_symbols: string, optional (default: `None`) :param var_group_positions: Use this parameter to highlight groups of `var_names`. This will draw a 'bracket' or a color block between the given start and end positions. If the parameter `var_group_labels` is set, the corresponding labels are added on top/left. E.g. var_group_positions = [(4,10)] will add a bracket between the fourth var_name and the tenth var_name. By giving more positions, more brackets/color blocks are drawn. :type var_group_positions: list of `tuples`. :param var_group_labels: Labels for each of the var_group_positions that want to be highlighted. :type var_group_labels: list of `str` :param var_group_rotation: Label rotation degrees. By default, labels larger than 4 characters are rotated 90 degrees :type var_group_rotation: `float` (default: `None`) :param layer: Name of the AnnData object layer that wants to be plotted. By default adata.raw.X is plotted. If `use_raw=False` is set, then `adata.X` is plotted. If `layer` is set to a valid layer name, then the layer is plotted. `layer` takes precedence over `use_raw`. :type layer: `str`, (default `None`) :param standard_scale: Whether or not to standardize that dimension between 0 and 1, meaning for each variable or group, subtract the minimum and divide each by its maximum. :type standard_scale: {'var', 'group'}, optional (default: None) :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `matplotlib.pyplot.pcolor`. :type \*\*kwds: keyword arguments :returns: List of :class:`~matplotlib.axes.Axes` .. rubric:: Examples >>> adata = sc.datasets.pbmc68k_reduced() >>> sc.pl.matrixplot(adata, ['C1QA', 'PSAP', 'CD79A', 'CD79B', 'CST3', 'LYZ'], ... groupby='bulk_labels', dendrogram=True) .. image:: scanpy.pl.rank_genes_groups_stacked_violin.png :width: 200 :align: right Plot ranking of genes using stacked_violin plot (see `scanpy.api.pl.stacked_violin`) :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param groups: The groups for which to show the gene ranking. :type groups: `str` or `list` of `str` :param n_genes: Number of genes to show. :type n_genes: `int`, optional (default: 10) :param groupby: The key of the observation grouping to consider. By default, the groupby is chosen from the rank genes groups parameter but other groupby options can be used. It is expected that groupby is a categorical. If groupby is not a categorical observation, it would be subdivided into `num_categories` (see `scanpy.api.pl.stacked_violin`). :type groupby: `str` or `None`, optional (default: `None`) :param key: Key used to store the ranking results in `adata.uns`. :type key: `str` :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `scanpy.api.pl.stacked_violin`. :type \*\*kwds: keyword arguments .. image:: scanpy.pl.rank_genes_groups_heatmap.png :width: 200 :align: right Plot ranking of genes using heatmap plot (see `scanpy.api.pl.heatmap`) :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param groups: The groups for which to show the gene ranking. :type groups: `str` or `list` of `str` :param n_genes: Number of genes to show. :type n_genes: `int`, optional (default: 10) :param groupby: The key of the observation grouping to consider. By default, the groupby is chosen from the rank genes groups parameter but other groupby options can be used. It is expected that groupby is a categorical. If groupby is not a categorical observation, it would be subdivided into `num_categories` (see `scanpy.api.pl.heatmap`). :type groupby: `str` or `None`, optional (default: `None`) :param key: Key used to store the ranking results in `adata.uns`. :type key: `str` :param \*\*kwds: Are passed to `scanpy.api.pl.heatmap`. :type \*\*kwds: keyword arguments :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. .. image:: scanpy.pl.rank_genes_groups_dotplot.png :width: 200 :align: right Plot ranking of genes using dotplot plot (see `scanpy.api.pl.dotplot`) :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param groups: The groups for which to show the gene ranking. :type groups: `str` or `list` of `str` :param n_genes: Number of genes to show. :type n_genes: `int`, optional (default: 10) :param groupby: The key of the observation grouping to consider. By default, the groupby is chosen from the rank genes groups parameter but other groupby options can be used. It is expected that groupby is a categorical. If groupby is not a categorical observation, it would be subdivided into `num_categories` (see `scanpy.api.pl.dotplot`). :type groupby: `str` or `None`, optional (default: `None`) :param key: Key used to store the ranking results in `adata.uns`. :type key: `str` :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `scanpy.api.pl.dotplot`. :type \*\*kwds: keyword arguments .. image:: scanpy.pl.rank_genes_groups_matrixplot.png :width: 200 :align: right Plot ranking of genes using matrixplot plot (see `scanpy.api.pl.matrixplot`) :param adata: Annotated data matrix. :type adata: :class:`~anndata.AnnData` :param groups: The groups for which to show the gene ranking. :type groups: `str` or `list` of `str` :param n_genes: Number of genes to show. :type n_genes: `int`, optional (default: 10) :param groupby: The key of the observation grouping to consider. By default, the groupby is chosen from the rank genes groups parameter but other groupby options can be used. It is expected that groupby is a categorical. If groupby is not a categorical observation, it would be subdivided into `num_categories` (see `scanpy.api.pl.matrixplot`). :type groupby: `str` or `None`, optional (default: `None`) :param key: Key used to store the ranking results in `adata.uns`. :type key: `str` :param show: Show the plot, do not return axis. :param save: If `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. :param ax: A matplotlib axes object. Only works if plotting a single component. :param \*\*kwds: Are passed to `scanpy.api.pl.matrixplot`. :type \*\*kwds: keyword arguments reading sources... [ 75%] api/scanpy.pp.calculate_qc_metrics reading sources... [ 76%] api/scanpy.pp.combat reading sources... [ 76%] api/scanpy.pp.downsample_counts reading sources... [ 77%] api/scanpy.pp.filter_cells reading sources... [ 77%] api/scanpy.pp.filter_genes reading sources... [ 78%] api/scanpy.pp.filter_genes_dispersion reading sources... [ 78%] api/scanpy.pp.highly_variable_genes reading sources... [ 78%] api/scanpy.pp.log1p reading sources... [ 79%] api/scanpy.pp.neighbors reading sources... [ 79%] api/scanpy.pp.normalize_per_cell reading sources... [ 80%] api/scanpy.pp.normalize_total reading sources... [ 80%] api/scanpy.pp.pca reading sources... [ 81%] api/scanpy.pp.recipe_seurat reading sources... [ 81%] api/scanpy.pp.recipe_weinreb17 reading sources... [ 82%] api/scanpy.pp.recipe_zheng17 reading sources... [ 82%] api/scanpy.pp.regress_out reading sources... [ 83%] api/scanpy.pp.scale reading sources... [ 83%] api/scanpy.pp.subsample reading sources... [ 84%] api/scanpy.queries.mitochondrial_genes reading sources... [ 84%] api/scanpy.read reading sources... [ 85%] api/scanpy.read_10x_h5 reading sources... [ 85%] api/scanpy.read_10x_mtx reading sources... [ 85%] api/scanpy.read_csv reading sources... [ 86%] api/scanpy.read_excel reading sources... [ 86%] api/scanpy.read_h5ad reading sources... [ 87%] api/scanpy.read_hdf reading sources... [ 87%] api/scanpy.read_loom reading sources... [ 88%] api/scanpy.read_mtx reading sources... [ 88%] api/scanpy.read_text reading sources... [ 89%] api/scanpy.read_umi_tools reading sources... [ 89%] api/scanpy.set_figure_params reading sources... [ 90%] api/scanpy.tl.dendrogram reading sources... [ 90%] api/scanpy.tl.diffmap reading sources... [ 91%] api/scanpy.tl.dpt reading sources... [ 91%] api/scanpy.tl.draw_graph reading sources... [ 92%] api/scanpy.tl.filter_rank_genes_groups reading sources... [ 92%] api/scanpy.tl.leiden reading sources... [ 92%] api/scanpy.tl.louvain reading sources... [ 93%] api/scanpy.tl.paga reading sources... [ 93%] api/scanpy.tl.pca reading sources... [ 94%] api/scanpy.tl.rank_genes_groups reading sources... [ 94%] api/scanpy.tl.score_genes reading sources... [ 95%] api/scanpy.tl.score_genes_cell_cycle reading sources... [ 95%] api/scanpy.tl.sim reading sources... [ 96%] api/scanpy.tl.tsne reading sources... [ 96%] api/scanpy.tl.umap reading sources... [ 97%] basic_usage reading sources... [ 97%] examples reading sources... [ 98%] index reading sources... [ 98%] installation reading sources... [ 99%] references reading sources... [ 99%] release_notes reading sources... [100%] tutorials /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/scanpy/api/__init__.py:docstring of scanpy.api:210: WARNING: duplicate label settings, other instance in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/docs/api/index.rst /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/scanpy/external/_tools/_palantir.py:docstring of scanpy.external.tl.palantir:114: WARNING: Bullet list ends without a blank line; unexpected unindent. /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/scanpy/plotting/_tools/__init__.py:docstring of scanpy.pl.embedding_density:10: WARNING: Unexpected section title. Parameters ---------- /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/scanpy/plotting/_tools/__init__.py:docstring of scanpy.pl.embedding_density:33: WARNING: Block quote ends without a blank line; unexpected unindent. /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/scanpy/plotting/_tools/__init__.py:docstring of scanpy.pl.embedding_density:40: WARNING: Unexpected section title. Examples -------- looking for now-outdated files... none found pickling environment... done checking consistency... /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/docs/references.rst:32: WARNING: Citation [Ester96] is not referenced. /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/docs/references.rst:45: WARNING: Citation [Fruchterman91] is not referenced. /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/docs/references.rst:49: WARNING: Citation [Hagberg08] is not referenced. /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/docs/references.rst:53: WARNING: Citation [Hastie09] is not referenced. /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/docs/references.rst:70: WARNING: Citation [Huber15] is not referenced. /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/docs/references.rst:90: WARNING: Citation [Krumsiek10] is not referenced. /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/docs/references.rst:138: WARNING: Citation [Murphy12] is not referenced. done preparing documents... done writing output... [ 0%] api/index writing output... [ 0%] api/plotting writing output... [ 1%] api/scanpy.Neighbors writing output... [ 1%] api/scanpy.Neighbors.compute_eigen writing output... [ 2%] api/scanpy.Neighbors.compute_neighbors writing output... [ 2%] api/scanpy.Neighbors.compute_transitions writing output... [ 3%] api/scanpy.Neighbors.connectivities writing output... [ 3%] api/scanpy.Neighbors.distances writing output... [ 4%] api/scanpy.Neighbors.distances_dpt writing output... [ 4%] api/scanpy.Neighbors.eigen_basis writing output... [ 5%] api/scanpy.Neighbors.eigen_values writing output... [ 5%] api/scanpy.Neighbors.getdoc writing output... [ 6%] api/scanpy.Neighbors.laplacian writing output... [ 6%] api/scanpy.Neighbors.to_igraph writing output... [ 7%] api/scanpy.Neighbors.transitions writing output... [ 7%] api/scanpy.Neighbors.transitions_sym writing output... [ 7%] api/scanpy._settings.ScanpyConfig writing output... [ 8%] api/scanpy._settings.ScanpyConfig.autosave writing output... [ 8%] api/scanpy._settings.ScanpyConfig.autoshow writing output... [ 9%] api/scanpy._settings.ScanpyConfig.cachedir writing output... [ 9%] api/scanpy._settings.ScanpyConfig.categories_to_ignore writing output... [ 10%] api/scanpy._settings.ScanpyConfig.datasetdir writing output... [ 10%] api/scanpy._settings.ScanpyConfig.figdir writing output... [ 11%] api/scanpy._settings.ScanpyConfig.file_format_data writing output... [ 11%] api/scanpy._settings.ScanpyConfig.file_format_figs writing output... [ 12%] api/scanpy._settings.ScanpyConfig.getdoc writing output... [ 12%] api/scanpy._settings.ScanpyConfig.logfile writing output... [ 13%] api/scanpy._settings.ScanpyConfig.max_memory writing output... [ 13%] api/scanpy._settings.ScanpyConfig.n_jobs writing output... [ 14%] api/scanpy._settings.ScanpyConfig.plot_suffix writing output... [ 14%] api/scanpy._settings.ScanpyConfig.set_figure_params writing output... [ 14%] api/scanpy._settings.ScanpyConfig.verbosity writing output... [ 15%] api/scanpy._settings.ScanpyConfig.writedir writing output... [ 15%] api/scanpy.api writing output... [ 16%] api/scanpy.api.Neighbors writing output... [ 16%] api/scanpy.api.Neighbors.compute_eigen writing output... [ 17%] api/scanpy.api.Neighbors.compute_neighbors writing output... [ 17%] api/scanpy.api.Neighbors.compute_transitions writing output... [ 18%] api/scanpy.api.Neighbors.connectivities writing output... [ 18%] api/scanpy.api.Neighbors.distances writing output... [ 19%] api/scanpy.api.Neighbors.distances_dpt writing output... [ 19%] api/scanpy.api.Neighbors.eigen_basis writing output... [ 20%] api/scanpy.api.Neighbors.eigen_values writing output... [ 20%] api/scanpy.api.Neighbors.getdoc writing output... [ 21%] api/scanpy.api.Neighbors.laplacian writing output... [ 21%] api/scanpy.api.Neighbors.to_igraph writing output... [ 21%] api/scanpy.api.Neighbors.transitions writing output... [ 22%] api/scanpy.api.Neighbors.transitions_sym writing output... [ 22%] api/scanpy.api.datasets.blobs writing output... [ 23%] api/scanpy.api.datasets.krumsiek11 writing output... [ 23%] api/scanpy.api.datasets.moignard15 writing output... [ 24%] api/scanpy.api.datasets.paul15 writing output... [ 24%] api/scanpy.api.datasets.pbmc3k writing output... [ 25%] api/scanpy.api.datasets.pbmc68k_reduced writing output... [ 25%] api/scanpy.api.datasets.toggleswitch writing output... [ 26%] api/scanpy.api.export_to.spring_project writing output... [ 26%] api/scanpy.api.logging.print_versions writing output... [ 27%] api/scanpy.api.pp.bbknn writing output... [ 27%] api/scanpy.api.pp.calculate_qc_metrics writing output... [ 28%] api/scanpy.api.pp.dca writing output... [ 28%] api/scanpy.api.pp.downsample_counts writing output... [ 28%] api/scanpy.api.pp.filter_cells writing output... [ 29%] api/scanpy.api.pp.filter_genes writing output... [ 29%] api/scanpy.api.pp.filter_genes_dispersion writing output... [ 30%] api/scanpy.api.pp.highly_variable_genes writing output... [ 30%] api/scanpy.api.pp.log1p writing output... [ 31%] api/scanpy.api.pp.magic writing output... [ 31%] api/scanpy.api.pp.mnn_correct writing output... [ 32%] api/scanpy.api.pp.neighbors writing output... [ 32%] api/scanpy.api.pp.normalize_per_cell writing output... [ 33%] api/scanpy.api.pp.pca writing output... [ 33%] api/scanpy.api.pp.recipe_seurat writing output... [ 34%] api/scanpy.api.pp.recipe_weinreb17 writing output... [ 34%] api/scanpy.api.pp.recipe_zheng17 writing output... [ 35%] api/scanpy.api.pp.regress_out writing output... [ 35%] api/scanpy.api.pp.scale writing output... [ 35%] api/scanpy.api.pp.subsample writing output... [ 36%] api/scanpy.api.queries.mitochondrial_genes writing output... [ 36%] api/scanpy.api.read writing output... [ 37%] api/scanpy.api.read_10x_h5 writing output... [ 37%] api/scanpy.api.read_10x_mtx writing output... [ 38%] api/scanpy.api.read_csv writing output... [ 38%] api/scanpy.api.read_excel writing output... [ 39%] api/scanpy.api.read_h5ad writing output... [ 39%] api/scanpy.api.read_hdf writing output... [ 40%] api/scanpy.api.read_loom writing output... [ 40%] api/scanpy.api.read_mtx writing output... [ 41%] api/scanpy.api.read_text writing output... [ 41%] api/scanpy.api.read_umi_tools writing output... [ 42%] api/scanpy.api.set_figure_params writing output... [ 42%] api/scanpy.api.tl.cyclone writing output... [ 42%] api/scanpy.api.tl.diffmap writing output... [ 43%] api/scanpy.api.tl.dpt writing output... [ 43%] api/scanpy.api.tl.draw_graph writing output... [ 44%] api/scanpy.api.tl.leiden writing output... [ 44%] api/scanpy.api.tl.louvain writing output... [ 45%] api/scanpy.api.tl.paga writing output... [ 45%] api/scanpy.api.tl.pca writing output... [ 46%] api/scanpy.api.tl.phate writing output... [ 46%] api/scanpy.api.tl.rank_genes_groups writing output... [ 47%] api/scanpy.api.tl.sandbag writing output... [ 47%] api/scanpy.api.tl.score_genes writing output... [ 48%] api/scanpy.api.tl.score_genes_cell_cycle writing output... [ 48%] api/scanpy.api.tl.sim writing output... [ 49%] api/scanpy.api.tl.tsne writing output... [ 49%] api/scanpy.api.tl.umap writing output... [ 50%] api/scanpy.datasets.blobs writing output... [ 50%] api/scanpy.datasets.ebi_expression_atlas writing output... [ 50%] api/scanpy.datasets.krumsiek11 writing output... [ 51%] api/scanpy.datasets.moignard15 writing output... [ 51%] api/scanpy.datasets.paul15 writing output... [ 52%] api/scanpy.datasets.pbmc3k writing output... [ 52%] api/scanpy.datasets.pbmc68k_reduced writing output... [ 53%] api/scanpy.datasets.toggleswitch writing output... [ 53%] api/scanpy.external writing output... [ 54%] api/scanpy.external.exporting.cellbrowser writing output... [ 54%] api/scanpy.external.exporting.spring_project writing output... [ 55%] api/scanpy.external.pl.phate writing output... [ 55%] api/scanpy.external.pp.bbknn writing output... [ 56%] api/scanpy.external.pp.dca writing output... [ 56%] api/scanpy.external.pp.magic writing output... [ 57%] api/scanpy.external.pp.mnn_correct writing output... [ 57%] api/scanpy.external.tl.cyclone writing output... [ 57%] api/scanpy.external.tl.palantir writing output... [ 58%] api/scanpy.external.tl.phate writing output... [ 58%] api/scanpy.external.tl.phenograph writing output... [ 59%] api/scanpy.external.tl.sandbag writing output... [ 59%] api/scanpy.logging.print_versions writing output... [ 60%] api/scanpy.pl.clustermap writing output... [ 60%] api/scanpy.pl.diffmap writing output... [ 61%] api/scanpy.pl.dotplot writing output... [ 61%] api/scanpy.pl.dpt_groups_pseudotime writing output... [ 62%] api/scanpy.pl.dpt_timeseries writing output... [ 62%] api/scanpy.pl.draw_graph writing output... [ 63%] api/scanpy.pl.embedding_density writing output... [ 63%] api/scanpy.pl.filter_genes_dispersion writing output... [ 64%] api/scanpy.pl.heatmap writing output... [ 64%] api/scanpy.pl.highest_expr_genes writing output... [ 64%] api/scanpy.pl.highly_variable_genes writing output... [ 65%] api/scanpy.pl.matrixplot writing output... [ 65%] api/scanpy.pl.paga writing output... [ 66%] api/scanpy.pl.paga_compare writing output... [ 66%] api/scanpy.pl.paga_path writing output... [ 67%] api/scanpy.pl.pca writing output... [ 67%] api/scanpy.pl.pca_loadings writing output... [ 68%] api/scanpy.pl.pca_overview writing output... [ 68%] api/scanpy.pl.pca_variance_ratio writing output... [ 69%] api/scanpy.pl.rank_genes_groups writing output... [ 69%] api/scanpy.pl.rank_genes_groups_dotplot writing output... [ 70%] api/scanpy.pl.rank_genes_groups_heatmap writing output... [ 70%] api/scanpy.pl.rank_genes_groups_matrixplot writing output... [ 71%] api/scanpy.pl.rank_genes_groups_stacked_violin writing output... [ 71%] api/scanpy.pl.rank_genes_groups_violin writing output... [ 71%] api/scanpy.pl.ranking writing output... [ 72%] api/scanpy.pl.scatter writing output... [ 72%] api/scanpy.pl.sim writing output... [ 73%] api/scanpy.pl.stacked_violin writing output... [ 73%] api/scanpy.pl.tsne writing output... [ 74%] api/scanpy.pl.umap writing output... [ 74%] api/scanpy.pl.violin writing output... [ 75%] api/scanpy.plotting writing output... [ 75%] api/scanpy.pp.calculate_qc_metrics writing output... [ 76%] api/scanpy.pp.combat writing output... [ 76%] api/scanpy.pp.downsample_counts writing output... [ 77%] api/scanpy.pp.filter_cells writing output... [ 77%] api/scanpy.pp.filter_genes writing output... [ 78%] api/scanpy.pp.filter_genes_dispersion writing output... [ 78%] api/scanpy.pp.highly_variable_genes writing output... [ 78%] api/scanpy.pp.log1p writing output... [ 79%] api/scanpy.pp.neighbors writing output... [ 79%] api/scanpy.pp.normalize_per_cell writing output... [ 80%] api/scanpy.pp.normalize_total writing output... [ 80%] api/scanpy.pp.pca writing output... [ 81%] api/scanpy.pp.recipe_seurat writing output... [ 81%] api/scanpy.pp.recipe_weinreb17 writing output... [ 82%] api/scanpy.pp.recipe_zheng17 writing output... [ 82%] api/scanpy.pp.regress_out writing output... [ 83%] api/scanpy.pp.scale writing output... [ 83%] api/scanpy.pp.subsample writing output... [ 84%] api/scanpy.queries.mitochondrial_genes writing output... [ 84%] api/scanpy.read writing output... [ 85%] api/scanpy.read_10x_h5 writing output... [ 85%] api/scanpy.read_10x_mtx writing output... [ 85%] api/scanpy.read_csv writing output... [ 86%] api/scanpy.read_excel writing output... [ 86%] api/scanpy.read_h5ad writing output... [ 87%] api/scanpy.read_hdf writing output... [ 87%] api/scanpy.read_loom writing output... [ 88%] api/scanpy.read_mtx writing output... [ 88%] api/scanpy.read_text writing output... [ 89%] api/scanpy.read_umi_tools writing output... [ 89%] api/scanpy.set_figure_params writing output... [ 90%] api/scanpy.tl.dendrogram writing output... [ 90%] api/scanpy.tl.diffmap writing output... [ 91%] api/scanpy.tl.dpt writing output... [ 91%] api/scanpy.tl.draw_graph writing output... [ 92%] api/scanpy.tl.filter_rank_genes_groups writing output... [ 92%] api/scanpy.tl.leiden writing output... [ 92%] api/scanpy.tl.louvain writing output... [ 93%] api/scanpy.tl.paga writing output... [ 93%] api/scanpy.tl.pca writing output... [ 94%] api/scanpy.tl.rank_genes_groups writing output... [ 94%] api/scanpy.tl.score_genes writing output... [ 95%] api/scanpy.tl.score_genes_cell_cycle writing output... [ 95%] api/scanpy.tl.sim writing output... [ 96%] api/scanpy.tl.tsne writing output... [ 96%] api/scanpy.tl.umap writing output... [ 97%] basic_usage writing output... [ 97%] examples writing output... [ 98%] index writing output... [ 98%] installation writing output... [ 99%] references writing output... [ 99%] release_notes writing output... [100%] tutorials /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/docs/api/index.rst:147: WARNING: undefined label: pandas:/io.rst#io-tools-text-csv-hdf5 (if the link has no caption the label must precede a section header) /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/scanpy/api/__init__.py:docstring of scanpy.api:150: WARNING: undefined label: pandas:/io.rst#io-tools-text-csv-hdf5 (if the link has no caption the label must precede a section header) /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/scanpy/plotting/_anndata.py:docstring of scanpy.pl.dotplot:36: WARNING: undefined label: scanpy.tl.dendrogram (if the link has no caption the label must precede a section header) /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/scanpy/plotting/_anndata.py:docstring of scanpy.pl.heatmap:30: WARNING: undefined label: scanpy.tl.dendrogram (if the link has no caption the label must precede a section header) /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/scanpy/plotting/_anndata.py:docstring of scanpy.pl.matrixplot:26: WARNING: undefined label: scanpy.tl.dendrogram (if the link has no caption the label must precede a section header) /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/scanpy/plotting/_anndata.py:docstring of scanpy.pl.stacked_violin:29: WARNING: undefined label: scanpy.tl.dendrogram (if the link has no caption the label must precede a section header) /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/latest/scanpy/tools/_rank_genes_groups.py:docstring of scanpy.tl.filter_rank_genes_groups:22: WARNING: undefined label: scanpy.tl.rank_genes_groups (if the link has no caption the label must precede a section header) generating indices... genindex py-modindex writing additional pages... search copying images... [ 11%] api/scanpy.pl.dotplot.png copying images... [ 22%] api/scanpy.pl.heatmap.png copying images... [ 33%] api/scanpy.pl.matrixplot.png copying images... [ 44%] api/scanpy.pl.rank_genes_groups_dotplot.png copying images... [ 55%] api/scanpy.pl.rank_genes_groups_heatmap.png copying images... [ 66%] api/scanpy.pl.rank_genes_groups_matrixplot.png copying images... [ 77%] api/scanpy.pl.rank_genes_groups_stacked_violin.png copying images... [ 88%] api/scanpy.pl.stacked_violin.png copying images... [100%] api/scanpy.pl.violin.png copying static files... done copying readthedocs static files... done copying searchtools... done copying extra files... done dumping search index in English (code: en) ... done dumping object inventory... done build succeeded, 19 warnings. The HTML pages are in _build/html. /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages/sphinx_rtd_theme/search.html:20: RemovedInSphinx30Warning: To modify script_files in the theme is deprecated. Please insert a