scanpy | Scales to 1M cells

 by   theislab Python Version: Current License: BSD-3-Clause

kandi X-RAY | scanpy Summary

kandi X-RAY | scanpy Summary

scanpy is a Python library typically used in Data Science, Jupyter applications. scanpy has no bugs, it has no vulnerabilities, it has a Permissive License and it has high support. However scanpy build file is not available. You can install using 'pip install scanpy' or download it from GitHub, PyPI.

Single-cell analysis in Python. Scales to >1M cells.

            kandi-support Support

              scanpy has a highly active ecosystem.
              It has 1136 star(s) with 411 fork(s). There are 47 watchers for this library.
              It had no major release in the last 6 months.
              There are 425 open issues and 870 have been closed. On average issues are closed in 142 days. There are 42 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of scanpy is current.

            kandi-Quality Quality

              scanpy has 0 bugs and 0 code smells.

            kandi-Security Security

              scanpy has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              scanpy code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              scanpy is licensed under the BSD-3-Clause License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              scanpy releases are not available. You will need to build from source code and install.
              Deployable package is available in PyPI.
              scanpy has no build file. You will be need to create the build yourself to build the component from source.
              It has 26178 lines of code, 974 functions and 159 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed scanpy and discovered the below as its top functions. This is intended to give you an instant insight into scanpy implemented functionality, and help decide if they suit your requirements.
            • Plot heatmap .
            • Embed an embedding .
            • Scatter plot of observations .
            • Generate a paga graph plot .
            • Generate a path to a paga path .
            • Embed embedding .
            • Return a DataFrame of genes for each gene .
            • Plot a violin plot .
            • Plot tracks plot .
            • Compute PCA .
            Get all kandi verified functions for this library.

            scanpy Key Features

            No Key Features are available at this moment for scanpy.

            scanpy Examples and Code Snippets

            Jupyter Notebookdot img1Lines of Code : 31dot img1no licencesLicense : No License
            copy iconCopy
            import scachepy
            c = scachepy.Cache(, separate_dirs=True, compression='lzma')
            # set verbosity level
            # set whether to recache
            # view available functions
            # also display and save some pl  
            scanpy-scripts ,Commands
            Pythondot img2Lines of Code : 27dot img2License : Permissive (Apache-2.0)
            copy iconCopy
            Usage: scanpy-cli [OPTIONS] COMMAND [ARGS]...
              Command line interface to [scanpy](
              --debug              Print debug information
              --verbosity INTEGER  Set scanpy verbosity
              --version            Show t  
            For calling stPlus programmatically
            Jupyter Notebookdot img3Lines of Code : 27dot img3License : Permissive (MIT)
            copy iconCopy
            	import pandas as pd
            	from stPlus import *
            	# Load the normalized and logarithmized spatial and scRNA-seq data, and the genes to predict
            	# The data can be accessed via: 
            	# 	git clone git://
            	# 	cd stPlus
            	# 	tar -zxvf  
            How to convert a list of arrays into a 1D scalar array to subset loom file
            Pythondot img4Lines of Code : 2dot img4License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            q = np.where(marrow_meta2['annotated_cell_identity.ontology'] == i)[0].tolist()
            Panda crosstab function getting number for conditions
            Pythondot img5Lines of Code : 6dot img5License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            pd.crosstab(index=[adata_proc.obs['leiden_r05'],adata_proc.obs['CoEx']], columns=[adata_proc.obs['sample']])
            Not able to install scanpy package using conda install or pip
            Pythondot img6Lines of Code : 6dot img6License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            please point LLVM_CONFIG to the path for llvm-config
            export LLVM_CONFIG=/usr/local/opt/llvm@9/bin/llvm-config
            source ~/.bashrc or . ~/.bashrc
            FileNotFoundError when using
            Pythondot img7Lines of Code : 4dot img7License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            file_base = '../data/Haber-et-al_mouse-intestinal-epithelium/GSE92332_RAW'
            file_base = ''
            How to change font size in scanpy
            Pythondot img8Lines of Code : 16dot img8License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            import matplotlib.pyplot as plt
            plt.rcParams.update({'font.size': 'large'})
            plt.rcParams.update({'axes.labelsize' : 'large'}) 
            plt.rcParams.update({'axes.xtick.labelsize' : 'large'})   
            Unable to install scanpy with
            Pythondot img9Lines of Code : 2dot img9License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            pip3 install scanpy
            ModuleNotFoundError when running paga with scanpy
            Pythondot img10Lines of Code : 2dot img10License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            pip install python-igraph

            Community Discussions


            scanpy correlation matrix with dendrogram
            Asked 2022-Mar-07 at 11:58

            I tried to recreate the correlation matrix that is described in scanpy's tutorial, using my own RNAseq dataset.

            The relevant function in scanpy is: and the plot looks like this:

            The main question here is: how was this Pearson's correlation between different cell types calculated, while the size of the matrix for each cell type is different?

            For example: I have 1000 genes as columns, 500 CD34+ cells as rows and only 200 CD19+ B cells. So how is it possible to calculate a correlation between both cell types?

            Additionally, calculating a correlation between two matrices, results in another matrix (and not with a single scalar such as displayed in the plot above). For example, numpy's corrcoef() function that is applied on two matrices of the same size results in another matrix and not with a scalar...

            I tried to average the genes expression over the cells for each cell type so the calculation contained equally-sized vectors, and it still didn't match scanpy's results.

            I encountered this conversation: mentioning that when hierarchical clustering is computed, this correlation matrix above is created (but no code was provided).

            I'll be happy with any suggestions, explanations and some possible python / code implementations.



            Answered 2022-Mar-07 at 11:57

            I managed to solve this problem with some trial and error method.

            Indeed, it is impossible to obtain a single scalar from a correlation between two unequal-sized matrices.

            In fact, the correlation in this function is not conducted on genes at all! It is calculated on the results of a 50-components-PCA of the dataset!

            After conducting PCA, you'll have to average the values of every component for each cell type (because each cell type contains different number of cells). Thus, you'll get a single vector (1*50) for each cell type.

            You will finally have a dataframe where each column is a different cell type and each row is the average component of the PCA for each cell type.

            The calculation of the pearson correlation can be simply achieved using the corr() function of pandas on the final averaged PCA dataframe.

            The arrangement of the plot, including dendrogram, can be achieved with seaborn's clustermap() function.

            That's it :)



            How to convert a list of arrays into a 1D scalar array to subset loom file
            Asked 2022-Feb-18 at 17:41

            I am working with a loompy file and unfortunately the relevant metadata along which I would like to subset the loom file is located in an external metadata file.



            Answered 2022-Feb-18 at 17:41

            .tolist() method of np.ndarray:



            Panda crosstab function getting number for conditions
            Asked 2021-Dec-28 at 16:39

            I´m not sure if the title was well picked, sorry for that. If this was already covered please let me know where I couldn´t find it. For an analysis that I am doing, I am working in JupyterLab mainly scanpy. I want to see the number of cells that are coexpressing certain genes in a leiden clustering. So far I was trying with pandas crosstab function and I get the number for each cluster. However, I have two conditions and there I´m struggling to separate the samples to get the cell counts separately.

            The code I am using to get the total cell number which works fine.



            Answered 2021-Dec-28 at 16:39

            Edit: Using crosstab, you'll need to add the 'CoEx' column to the index, and use the 'sample' as the column of interest:



            How do I solve "incompatible numba" error while installing Scanpy?
            Asked 2021-Mar-21 at 14:47

            I tried installing the Scanpy package on Jupyter with "pip install Scanpy" but I got the the errors below;

            ERROR: pynndescent 0.5.2 has requirement numba>=0.51.2, but you'll have numba 0.48.0 which is incompatible. ERROR: umap-learn 0.5.1 has requirement numba>=0.49, but you'll have numba 0.48.0 which is incompatible

            When I tried to separately install an upgraded version of numba, I got the error below;

            ERROR: Cannot uninstall 'llvmlite'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.



            Answered 2021-Mar-21 at 14:40

            you can try install with pip install -c numba numba= if it doesn't work for you alternativly install RUN pip install llvmlite --ignore installed before pip install numba. HAVE A GOOD DAY:)



            Not able to install scanpy package using conda install or pip
            Asked 2021-Jan-13 at 13:41

            I have been trying to install scanpy package in anaconda using



            Answered 2021-Jan-13 at 13:41

            In your error log you can see



            FileNotFoundError when using
            Asked 2020-Dec-28 at 06:27

            I'm following the single cell sequencing analysis tutorial from theislab on Jupyter notebook, link below




            Answered 2020-Dec-28 at 06:27

            I think you forgot the slash in file_base:



            How to change font size in scanpy
            Asked 2020-Sep-18 at 08:31

            I am generating dotplots using scanpy and unable to change the font size. Is there a way to do so?

            For example, how would I edit this line of code?

  , ["gene"], 'CellType', dendrogram=True, save = name)



            Answered 2020-Sep-18 at 08:31

            IIRC, scanpy just uses matplotlib under the hood, so there are several options:

            You can set the fontsize globally:



            ImportError: cannot import name 'stacked_violin' from 'scanpy.plotting._anndata'?
            Asked 2020-Aug-28 at 20:48

            Until a couple of days ago, my code using the scanpy library worked fine, but last night it broke and threw me a new error



            Answered 2020-Aug-28 at 20:44

            This is definitely a bug in the module and seems like its stemming from the latest version that you must have upgraded to.

            The error as it states

            cannot import name 'stacked_violin' from 'scanpy.plotting._anndata'

            and this is true since this it refers to does not contains that method. It is in fact in another file called See here for that function.

            To fix it you can simply take the hard way of overwriting the library so that the method is present in the file or you can simply revert back to the earlier version. There's also no need to update the library frequently unless there is a real need, and such error is often expected when elevating versions.



            Unable to install scanpy with
            Asked 2020-Jan-28 at 01:32

            Hi I am having trouble install scanpy library using pip. Here's the command I ran



            Answered 2020-Jan-28 at 01:26

            I think you might have ran the installation using python 2 which has been depreciated since the beginning of 2020. Have you tried running the installation for python 3 using the pip3 command instead?



            ModuleNotFoundError when running paga with scanpy
            Asked 2020-Jan-28 at 01:06

            I tried running code below using scanpy library but for some reason it reports an error



            Answered 2020-Jan-28 at 01:06

            You just need to run install igraph library using the command


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install scanpy

            You can install using 'pip install scanpy' or download it from GitHub, PyPI.
            You can use scanpy like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.


            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone theislab/scanpy

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link