mcpField
S
scanpy

scanpy

github.com/k-dense-aiデータ・データベース55.1k1.9k 回インストール2 日前に更新
リポジトリ

scanpy について

scanpy は、AnnData を基盤とする単一細胞 RNA-seq 解析用の Python スキルです。品質管理や前処理からクラスタリング、マーカー解析、作図まで、付属スクリプトで一連の処理を行えます。

主な機能

  1. 01単一細胞データの品質管理
  2. 02正規化と高変動遺伝子の選択
  3. 03次元削減、クラスタリング、バッチ補正
  4. 04マーカー遺伝子の特定と細胞注釈
  5. 05擬似バルク解析と作図

活用シーン

  1. 01生の単一細胞 RNA-seq データの処理
  2. 02細胞クラスターの探索とマーカー遺伝子の特定
  3. 03サンプル比較と単一細胞プロットの作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/k-dense-ai/scientific-agent-skills --skill scanpy

インストール後、Claude Code で/scanpyを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
analysis_template.py
celltype_mapping.json
gene_signatures.json
pipeline_config.json
references/
analysis_workflow.md
api_reference.md
plotting_guide.md
r_interop.md
standard_workflow.md
upstream-review.md
scripts/
_common.py
annotate.py
batch_correct.py
cluster.py
convert.py
find_markers.py
inspect_data.py
plot.py
preprocess.py
pseudobulk.py
qc_analysis.py
reduce_dimensions.py
run_pipeline.py
score_genes.py
subset.py

詳細

Scanpy: 単一細胞解析

概要

Scanpy は、AnnData 上に構築された、単一細胞 RNA-seq データを解析するためのスケーラブルな Python ツールキットです。このスキルは、品質管理、正規化、次元削減、クラスタリング、マーカー遺伝子の同定、可視化、トラジェクトリ解析を含む完全な単一細胞ワークフローに適用できます。対象は Scanpy 1.12.4(2026-08-27 リリース)、レビュー日 2026-10-01 です。ネイティブの合成テストはデータ/API のコントラクトを確立するものであり、生物学的妥当性を保証するものではありません。

インストール

Python 3.12+(scanpy 1.12 で Python ≤3.11 が削除されました)と anndata ≥0.10 が必要です。

uv pip install "scanpy[leiden]"

[leiden] エクストラは igraph と leidenalg をインストールします。スクリプトは明示的に flavor="igraph" を選択します。再現可能な環境にするには、バージョンを固定してください: uv pip install "scanpy[leiden]==1.12.4"。

大規模またはアウトオブコアのデータセットでは、多くの関数が Dask 配列をサポートしています(実験的):

uv pip install "scanpy[leiden]" dask

Using dask with Scanpy チュートリアルを参照してください。GPU アクセラレーションによる scanpy ライクな操作には、別パッケージとして rapids-singlecell を使用してください。

入力が R ネイティブの単一細胞オブジェクト(.rds、.RData、Seurat、または SingleCellExperiment)である場合は、まず R ツールで .h5ad に変換し、その後 Scanpy で読み込んでください。macOS、Linux、Windows でのエージェントによるインストールと変換手順については、references/r_interop.md を参照してください。

AnnData の構造と I/O の詳細については、anndata スキルを使用してください。確率的モデルとバッチ補正については、scvi-tools を使用してください。

表現と推論の契約

  • QC/前処理への入力は、生のカウントであると識別されなければなりません。スクリプトは、負の値、 小数、非有限、または合計がゼロのセルを拒否します。X がすでに 正規化されている場合は --counts-layer counts を使用してください。整数に見える値だけから由来を推測してはいけません。
  • layers["counts"] は非正規化のままです。.raw は独立した全遺伝子の 対数正規化スナップショットです。遺伝子のサブセット化はすべてのレイヤーもサブセット化しますが、 .raw の遺伝子はサブセット化しません。pseudobulk 用に全遺伝子オブジェクトを保持してください。完全なパイプラインはそうしています。
  • seurat/cell_ranger の HVG は対数正規化値を使用します。seurat_v3 と seurat_v3_paper はカウントを使用し、scanpy[skmisc] を必要とします。スケーリング/回帰は任意であり、 スパースデータを密化する可能性があり、共変量とともに生物学も除去することがあります。
  • マーカーランキングは、存在する場合はデフォルトで .raw を使用します。--no-use-raw は X を選択し、--layer は明示的な対数正規化レイヤーを選択します。--groups/--reference は対比を制御します。 Wilcoxon/t-test の調整済み p 値は各比較内で BH を使用します。logreg はランキング スコアを返し、p 値は返しません。同じデータから選択されたクラスターは探索的なマーカーを生み出します。
  • 条件 DE には、サンプルおよび細胞型ごとの生カウント合計、独立した生物学的 反復、整列された条件/ドナーメタデータ、およびフルランクのデザインが必要です。各細胞 型を別々に分析してください。反復ドナーサンプルには適切なペア設計が必要です。集約 では、交絡、反復の欠如、ダブレット、または不正確なアノテーションを修正できません。
  • Harmony (harmonypy) は PCA 座標を変更し、BBKNN (bbknn) はグラフを変更し、 ComBat は X を変更します。DE 用に元の式/カウントを保持し、生物学的 保存性とバッチ混合を一緒に評価してください。要求されたインテグレーション/ダブレットの失敗は停止します。
  • ツールキットはファイルをメモリにロードします。バックドデータの場合、選択したサブセットに対して明示的に .to_memory() を呼び出し、ファイルを閉じてください。バックドモードは一般的なアウトオブコア パイプラインではありません。変更前にビューをコピーしてください。Dask サポートは関数/配列レイアウトによって異なります。
  • .rds には明示的な R 変換ステージが必要です。クラスター ID は細胞型を決定しません。 すべてのマッピング/シグネチャアセットは例示的なヒトマーカーの例であり、レビューが必要です。

Harmony 2 は cells x PCs を返します。Scanpy 1.12.4 ラッパーが依然としてその出力を転置し、 現在の Harmony で失敗するため、ツールキットはそのネイティブ API を呼び出します。

オプションのパッケージ: Scrublet の自動しきい値処理用の scikit-image、Loom 用の loompy、 v3 HVG 用の scikit-misc、それぞれのインテグレーションブランチ用の harmonypy==2.0.2/bbknn==1.6.0、および非推奨の Louvain オプション用の louvain (別環境: louvain 0.8.2 は igraph <0.12 を必要とし、テスト済みの igraph 1.0 と競合します)。必要なブランチのみをインストールしてください。R およびオプションのインテグレーション 実行境界は references/upstream-review.md に記録されています。

このスキルを使用する場合

このスキルは以下の場合に使用する必要があります:

  • シングルセル RNA-seq データ(.h5ad、10X、CSV 形式)を分析する場合
  • .h5ad への変換が必要な R フレンドリーなシングルセルデータセット(.rds、.RData、Seurat、SingleCellExperiment)を扱う場合
  • scRNA-seq データセットに対して品質管理を実行する場合
  • UMAP、t-SNE、または PCA 可視化を作成する場合
  • 細胞クラスターを特定し、マーカー遺伝子を見つける場合
  • 遺伝子発現に基づいて細胞型をアノテーションする場合
  • トラジェクトリ推論または擬似時間分析を実施する場合
  • 出版品質のシングルセルプロットを生成する場合

スクリプトツールキット (ゼロからコードを書くよりも、こちらを優先してください)

このスキルは、よくある各ステップ向けのすぐ実行できる CLI スクリプトを scripts/ にまとめています。scanpy のコードを手書きする代わりに、これらを実行してください — 拡張子に応じたファイル読み込み、図のセットアップ、妥当なデフォルト値、生カウントの保持、進捗ログを処理します。それぞれが .h5ad を読み書きするため、互いに連鎖させることができ、それぞれに独自の --help があります。スクリプトでカバーされていないタスクや、特殊なカスタマイズが必要な場合にのみ、scanpy のコードを書くことに切り替えてください。

すべてのスクリプトは共有の scripts/_common.py ヘルパー (読み込み、保存、図の設定) を使用します — これを他のスクリプトと一緒に保持してください。スキルディレクトリから実行するか、フルパスを渡してください。図はデフォルトで ./figures/ に出力されます。

スクリプト目的典型的な呼び出し
run_pipeline.py1 つのコマンドで完全なワークフロー: 読み込み → QC → 正規化 → HVG → PCA → (バッチ) → UMAP → Leiden → マーカーpython scripts/run_pipeline.py raw.h5ad -o processed.h5ad
inspect_data.py未知のデータセットを要約する (shape、obs/var、レイヤー、すでに計算済みのもの、生 vs 正規化)python scripts/inspect_data.py data.h5ad
convert.py任意の形式 (10x ディレクトリ/.h5、csv、loom、mtx) を読み込み、.h5ad を書き出すpython scripts/convert.py 10x_dir/ -o data.h5ad
qc_analysis.pyQC メトリクス、前後のプロット、フィルタリング、任意で Scrublet ダブレットpython scripts/qc_analysis.py raw.h5ad -o qc.h5ad --scrublet
preprocess.py正規化、log1p、HVG、任意で scale/regress (counts レイヤー + raw を保持)python scripts/preprocess.py qc.h5ad -o norm.h5ad
reduce_dimensions.pyPCA + 分散プロット、neighbors、UMAP、任意で t-SNEpython scripts/reduce_dimensions.py norm.h5ad -o red.h5ad
batch_correct.py統合: harmony / bbknn / combatpython scripts/batch_correct.py red.h5ad -o int.h5ad --method harmony --batch-key sample
cluster.py1 つまたは複数の解像度で Leiden (または louvain)python scripts/cluster.py red.h5ad -o clu.h5ad --resolution 0.3 0.6 1.0
find_markers.pyrank_genes_groups + グループごとの CSV + マーカープロットpython scripts/find_markers.py clu.h5ad --groupby leiden -o clu.h5ad
annotate.pyJSON/CSV からクラスター → 細胞型をマッピング。任意でマーカー参照ドットプロットpython scripts/annotate.py clu.h5ad -o ann.h5ad --mapping map.json
score_genes.py遺伝子シグネチャ (JSON) および/または細胞周期フェーズをスコアリングpython scripts/score_genes.py ann.h5ad -o scored.h5ad --gene-sets sigs.json
pseudobulk.pyサンプル × 細胞型でカウントを集計 → pydeseq2 用の行列python scripts/pseudobulk.py ann.h5ad --by sample cell_type --metadata condition donor --out-prefix pb
subset.pyobs の値または遺伝子リストでサブセット化 (任意で古い埋め込みをクリア)python scripts/subset.py ann.h5ad -o tcells.h5ad --obs cell_type --keep "T cells"
plot.py処理済みオブジェクトから umap/tsne/pca/violin/dotplot/heatmap などを生成python scripts/plot.py ann.h5ad --kind dotplot --genes CD3D CD14 --groupby cell_type
ワンショットのエンドツーエンド実行
# Counts → clustered object and exploratory marker ranks + figures + marker CSVs
python scripts/run_pipeline.py raw.h5ad -o processed.h5ad \
    --resolution 0.5 --n-top-genes 2000 --scrublet
# With multi-sample integration:
python scripts/run_pipeline.py raw.h5ad -o processed.h5ad --batch-key sample --batch-method harmony
# Reproducible parameters via JSON (keys mirror flag names with underscores):
python scripts/run_pipeline.py raw.h5ad -o processed.h5ad --config params.json
ステップバイステップの連鎖 (ステージ間で検査/反復する必要がある場合)
python scripts/qc_analysis.py        raw.h5ad  -o qc.h5ad   --scrublet
python scripts/preprocess.py         qc.h5ad   -o norm.h5ad --n-top-genes 2000
python scripts/reduce_dimensions.py  norm.h5ad -o red.h5ad  --n-pcs 40
python scripts/cluster.py            red.h5ad  -o clu.h5ad  --resolution 0.3 0.5 0.8
python scripts/find_markers.py       clu.h5ad  -o clu.h5ad  --groupby leiden_0.5 --use-raw
# inspect results/markers/*.csv, decide labels, write a mapping JSON, then:
python scripts/annotate.py           clu.h5ad  -o ann.h5ad  --mapping celltypes.json --cluster-key leiden_0.5

以下のセクションでは、各スクリプトが実行する基盤となる scanpy 呼び出しを説明します — スクリプトのフラグを超えてカスタマイズする際に読んでください。

クイックスタート

基本的なインポートとセットアップ
import scanpy as sc
import pandas as pd
import numpy as np

# Configure settings
sc.settings.verbosity = 3
sc.set_figure_params(dpi=80, facecolor='white')
sc.settings.figdir = './figures/'
sc.settings.autosave = True  # Preferred over per-plot save= (deprecated in scanpy 1.12)
データの読み込み
# From 10X Genomics
adata = sc.read_10x_mtx('path/to/data/')
adata = sc.read_10x_h5('path/to/data.h5')

# From h5ad (AnnData format)
adata = sc.read_h5ad('path/to/data.h5ad')

# From CSV
adata = sc.read_csv('path/to/data.csv')

R ネイティブのファイルについては、Python で Seurat の .rds を直接パースしようとしないでください。まず変換します:

# See references/r_interop.md for installing R and conversion packages.
Rscript convert_rds_to_h5ad.R input.rds output.h5ad
adata = sc.read_h5ad('output.h5ad')
AnnData 構造の理解

AnnData オブジェクトは scanpy の核となるデータ構造です:

adata.X          # Expression matrix (cells × genes)
adata.obs        # Cell metadata (DataFrame)
adata.var        # Gene metadata (DataFrame)
adata.uns        # Unstructured annotations (dict)
adata.obsm       # Multi-dimensional cell data (PCA, UMAP)
adata.raw        # Snapshot of X/var; here full log-normalized expression, NOT counts

# Access cell and gene names
adata.obs_names  # Cell barcodes
adata.var_names  # Gene names

標準的な解析ワークフロー

7 つのステップと、それぞれで重要となるコードおよびパラメータについては、 references/analysis_workflow.md に記載されています。

  1. 品質管理 — 細胞と遺伝子をフィルタリングします。デフォルト値をそのままコピーするのではなく、しきい値を選ぶ前にミトコンドリアの割合とカウント数を確認してください。
  2. 正規化と前処理 — 正規化、対数変換、高変動遺伝子の選択を行い、後続のプロット用に .raw を保持します。
  3. 次元削減 — PCA、次に近傍グラフ、そして UMAP の順に実行します。
  4. クラスタリング — デフォルト値ではなく、問いに応じて選んだ解像度で Leiden を実行します。
  5. マーカー遺伝子の同定 — クラスターごとに遺伝子をランク付けします。
  6. 細胞型アノテーション — マーカーからクラスターを細胞型にマッピングします。
  7. 結果の保存 — アノテーション済みの AnnData を書き出します。

よくある後続タスク — 論文用プロット、トラジェクトリ推論、条件間の pseudobulk 差分発現、遺伝子セットスコアリング、バッチ補正 — についても同じファイルに記載されています。references/standard_workflow.md と references/plotting_guide.md も参照してください。

調整すべき主要パラメータ

品質管理
  • min_genes: 細胞あたりの最小遺伝子数(通常 200〜500)
  • min_cells: 遺伝子あたりの最小細胞数(通常 3〜10)
  • pct_counts_mt: ミトコンドリアのしきい値(通常 5〜20%)
正規化
  • target_sum: 細胞あたりの目標カウント数(スクリプトでは 1e4 を使用。Scanpy のデフォルトである None は中央値を使用)
特徴量選択
  • n_top_genes: HVG の数(通常 2000〜3000)
  • min_mean、max_mean、min_disp: HVG 選択のパラメータ
次元削減
  • n_pcs: 主成分の数(分散比プロットを確認してください)
  • n_neighbors: 近傍の数(通常 10〜30)
クラスタリング
  • resolution: クラスタリングの粒度(0.4〜1.2、大きいほどクラスターが増えます)

よくある落とし穴とベストプラクティス

  1. カウントと .raw を分離する: 正規化の前に、独立したカウント行列を adata.layers["counts"] に保存してください。このワークフローでは、同梱の前処理スクリプトがそうしているように、.raw は HVG によるサブセット化の前の完全な対数正規化行列を保持します。その名前は生カウントを保証するものではありません。rank_genes_groups に使用する選択したレイヤーまたは .raw が対数正規化されていることを確認し、pseudobulk にはカウントを使用してください。
  2. QC プロットを注意深く確認する: データセットの品質に基づいてしきい値を調整してください
  3. Leiden クラスタリングを使用する: sc.tl.louvain は scanpy 1.12 で非推奨です
  4. 複数のクラスタリング解像度を試す: 最適な粒度を見つけてください
  5. 細胞型アノテーションを検証する: 複数のマーカー遺伝子を使用してください
  6. プロット値を明示的に選択する: use_raw=True は保存されているとおりに .raw を読み取ります。対数正規化された発現が含まれていることを確認してください
  7. PCA の分散比を確認する: 最適な PC 数を決定してください
  8. 中間結果を保存する: 長いワークフローは途中で失敗することがあります
  9. DE には pseudobulk を使用する: rank_genes_groups の p 値を条件間の厳密な DE として扱わないでください
  10. 設定経由でプロットを保存する: プロット関数の非推奨の save= ではなく sc.settings.autosave を使用してください
  11. Scanpy の前に R オブジェクトを変換する: R パッケージを使用して Seurat または SingleCellExperiment の .rds ファイルを .h5ad に変換し、カウント、メタデータ、遺伝子識別子を保持してください

同梱リソース

scripts/ (CLI ツールキット)

ワークフロー全体をカバーする .h5ad 入力/.h5ad 出力の組み合わせ可能なスクリプト群に加え、ワンコマンドで実行できるエンドツーエンドのパイプラインです。完全な表と連鎖の例については、上記の Script Toolkit セクションを参照してください。各スクリプトには --help があります。ファイル:

  • _common.py — 他のスクリプトからインポートされる共有の読み込み/保存/図のヘルパー (CLI ではありません)
  • run_pipeline.py — ワンコマンドで実行する完全なパイプライン (フラグまたは --config JSON)
  • inspect_data.py、convert.py — あらゆる入力形式の調査と読み込み/変換
  • qc_analysis.py、preprocess.py、reduce_dimensions.py、batch_correct.py、cluster.py — パイプラインの各ステップ
  • find_markers.py、annotate.py、score_genes.py、pseudobulk.py — マーカー、アノテーション、スコアリング、DE の準備
  • subset.py、plot.py — メタデータ/遺伝子によるサブセット化、任意の標準プロットの生成

scanpy のコードをゼロから書く前に、まずこれらのスクリプトを使用してください。

references/standard_workflow.md

以下に関する詳細な説明とコード例を伴う、完全なステップバイステップのワークフロー:

  • データの読み込みとセットアップ
  • 可視化を伴う品質管理
  • 正規化とスケーリング
  • 特徴量選択
  • 次元削減 (PCA、UMAP、t-SNE)
  • クラスタリング (Leiden)
  • ダブレット検出 (scrublet) と pseudobulk 集約
  • マーカー遺伝子の同定
  • 細胞型アノテーション
  • トラジェクトリ推論
  • 差次的発現

完全な解析をゼロから実行する際は、このリファレンスを読んでください。

references/api_reference.md

モジュール別に整理された scanpy 関数のクイックリファレンスガイド:

  • データの読み書き (sc.read_*、adata.write_*)
  • 前処理 (sc.pp.*)
  • ツール (sc.tl.*)
  • プロット (sc.pl.*)
  • AnnData の構造と操作
  • 設定とユーティリティ

関数シグネチャと一般的なパラメータのクイックルックアップには、これを使用してください。

references/plotting_guide.md

以下を含む包括的な可視化ガイド:

  • 品質管理プロット
  • 次元削減の可視化
  • クラスタリングの可視化
  • マーカー遺伝子プロット (ヒートマップ、ドットプロット、バイオリンプロット)
  • トラジェクトリと pseudotime のプロット
  • 出版品質のカスタマイズ
  • マルチパネル図
  • カラーパレットとスタイリング

出版可能な図を作成する際は、これを参照してください。

references/r_interop.md

macOS、Linux、Windows への R のインストール、CRAN/Bioconductor の変換パッケージのインストール、.rds/.RData 入力の調査、Seurat または SingleCellExperiment オブジェクトの .h5ad への変換、および Scanpy での結果の検証を行うためのエージェント向けランブックです。

assets/analysis_template.py

データの読み込みから細胞型アノテーションまでの完全なワークフローを提供する完全な解析テンプレートです。新しい解析のためにこのテンプレートをコピーしてカスタマイズしてください:

cp assets/analysis_template.py my_analysis.py
# Edit parameters and run
python my_analysis.py

このテンプレートには、設定可能なパラメータと役立つコメントを伴うすべての標準ステップが含まれています。

assets/ JSON テンプレート

設定/マッピングをゼロから書かなくて済むように、編集して渡すテンプレート:

  • assets/pipeline_config.json — run_pipeline.py --config 用のパラメータセット
  • assets/celltype_mapping.json — annotate.py --mapping 用のクラスター → 細胞型マップ
  • assets/gene_signatures.json — score_genes.py --gene-sets 用の遺伝子セットシグネチャ

追加リソース

効果的な分析のためのヒント

  1. テンプレートから始める: assets/analysis_template.py を出発点として使用します
  2. まず QC スクリプトを実行する: 初期フィルタリングには scripts/qc_analysis.py を使用します
  3. 必要に応じてリファレンスを参照する: ワークフローと API のリファレンスをコンテキストに読み込みます
  4. クラスタリングを反復する: 複数の解像度と可視化手法を試します
  5. 生物学的に検証する: マーカー遺伝子が期待される細胞種と一致するか確認します
  6. パラメータを記録する: QC しきい値と分析設定を記録します
  7. チェックポイントを保存する: 重要なステップで中間結果を書き出します

Scientific Agent Skills の引用

このスキルは、K-Dense による Scientific Agent Skills の一部です。これが原稿、レポート、プレゼン テーション、またはコードリリースに実質的に貢献した場合は、参考文献またはソフトウェアのセクションに 論文を追加し、追加したことをユーザーに伝えてください:

Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065. https://doi.org/10.48550/arXiv.2609.00065

常に最新バージョンを引用してください。DOI と https://arxiv.org/abs/2609.00065 は最新の arXiv バージョンに解決されるため、v1 のようなバージョン接尾辞を決して付けないでください。ネットワーク アクセスが利用可能な場合は、参考文献を書く前に https://arxiv.org/abs/2609.00065(または http://export.arxiv.org/api/query?id_list=2609.00065)を取得し、そのレコードから著者リスト、年、 バージョンを取得してください。レコードにジャーナルリファレンスまたは出版社 DOI が記載されている 場合は、代わりに公開版を引用してください。

コメント