{"library":"scanpy","title":"Scanpy","description":"Scanpy is a scalable toolkit for analyzing single-cell gene expression data built jointly with anndata. It provides comprehensive functionalities for preprocessing, visualization, clustering, trajectory inference, and differential expression testing. The Python-based implementation efficiently handles datasets of more than one million cells. Currently at version 1.12.1, it maintains a regular release cadence with major, minor, and patch releases.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install scanpy","pip install 'scanpy[leiden]'"],"cli":null},"imports":["import scanpy as sc","import anndata as ad"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import scanpy as sc\nimport matplotlib.pyplot as plt\n\n# Set verbosity for Scanpy (0: errors, 1: warnings, 2: info, 3: hints)\nsc.settings.verbosity = 3\n\n# Load a sample dataset (e.g., pbmc3k from 10x Genomics)\n# This downloads the data if not present in the datasetdir\nadata = sc.datasets.pbmc3k()\n\n# Basic preprocessing pipeline\nsc.pp.filter_cells(adata, min_genes=200)\nsc.pp.filter_genes(adata, min_cells=3)\nsc.pp.normalize_total(adata, target_sum=1e4)\nsc.pp.log1p(adata)\nsc.pp.highly_variable_genes(adata, min_mean=0.0125, max_mean=3, min_disp=0.5)\nadata = adata[:, adata.var.highly_variable]\nsc.pp.regress_out(adata, ['total_counts', 'pct_counts_mt'])\nsc.pp.scale(adata, max_value=10)\n\n# Dimensionality reduction and clustering\nsc.pp.pca(adata)\nsc.pp.neighbors(adata, n_neighbors=10, n_pcs=40)\nsc.tl.umap(adata)\nsc.tl.leiden(adata)\n\n# Visualization\nsc.pl.umap(adata, color=['leiden', 'n_genes_by_counts', 'total_counts'], show=False)\nplt.tight_layout()\nplt.show()","lang":"python","description":"This quickstart demonstrates a typical single-cell RNA sequencing (scRNA-seq) analysis workflow using Scanpy. It covers loading a dataset, essential preprocessing steps (filtering, normalization, log-transformation, highly variable gene selection, regression, scaling), dimensionality reduction (PCA, UMAP), and clustering (Leiden). Finally, it visualizes the UMAP embedding colored by cluster and QC metrics. The `pbmc3k` dataset is used as a readily available example.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"1.10.3","pypi_latest":"1.12.1","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":50,"avg_install_s":27.2,"avg_import_s":7.97,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"leiden","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"scanpy","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"leiden","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":25.7,"import_time_s":5.26,"mem_mb":97.8,"disk_size":"730M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"scanpy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":24.7,"import_time_s":5.27,"mem_mb":95.6,"disk_size":"705M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"leiden","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"scanpy","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"leiden","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":27.2,"import_time_s":9.56,"mem_mb":121.6,"disk_size":"831M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"scanpy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":26.4,"import_time_s":9.48,"mem_mb":119,"disk_size":"806M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"leiden","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"scanpy","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"leiden","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":27.8,"import_time_s":10.56,"mem_mb":117.1,"disk_size":"808M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"scanpy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":27.1,"import_time_s":10.38,"mem_mb":117.1,"disk_size":"784M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"leiden","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"scanpy","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"leiden","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":27.4,"import_time_s":9.24,"mem_mb":118.7,"disk_size":"805M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"scanpy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":26.7,"import_time_s":9.34,"mem_mb":118.7,"disk_size":"780M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"leiden","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":0.1,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"scanpy","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":0.1,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"leiden","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":29.6,"import_time_s":5.31,"mem_mb":93.8,"disk_size":"707M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"scanpy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":29.3,"import_time_s":5.34,"mem_mb":91.7,"disk_size":"682M"}]}}