【保存版】SeuratとScanpyによるscRNA-seqデータ解析手順を徹底解説!

  • このエントリーをはてなブックマークに追加
Pocket

はじめに:SeuratとScanpyとは?

  • Seurat:R言語ベースのシングルセルRNA-seq解析パッケージ。豊富な可視化と柔軟なクラスタリング機能が特徴。
  • Scanpy:Pythonベースで高速処理が得意。大規模データ解析や自動化に向く。

両者は解析の目的や使用環境に応じて使い分けられます。


【共通】解析ワークフローの全体像

  1. データ読み込み
  2. 前処理(フィルタリング、正規化、スケーリング)
  3. 次元圧縮(PCA, UMAP, t-SNE)
  4. クラスタリング
  5. マーカー遺伝子の抽出
  6. 注釈(細胞タイプの同定)
  7. 差次的発現解析(DEG)
  8. 可視化

Seurat(R)の解析手順(例:10xデータ)

rコピーする編集するlibrary(Seurat)

# 1. データ読み込み
data <- Read10X(data.dir = "path/to/data")
seurat_obj <- CreateSeuratObject(counts = data)

# 2. 前処理
seurat_obj <- subset(seurat_obj, subset = nFeature_RNA > 200 & percent.mt < 5)
seurat_obj <- NormalizeData(seurat_obj)
seurat_obj <- FindVariableFeatures(seurat_obj)

# 3. 次元圧縮とクラスタリング
seurat_obj <- ScaleData(seurat_obj)
seurat_obj <- RunPCA(seurat_obj)
seurat_obj <- FindNeighbors(seurat_obj, dims = 1:10)
seurat_obj <- FindClusters(seurat_obj, resolution = 0.5)
seurat_obj <- RunUMAP(seurat_obj, dims = 1:10)

# 4. 可視化
DimPlot(seurat_obj, reduction = "umap", label = TRUE)

# 5. マーカー遺伝子と注釈
markers <- FindAllMarkers(seurat_obj)

Scanpy(Python)の解析手順(例:h5ファイル)

pythonコピーする編集するimport scanpy as sc

# 1. データ読み込み
adata = sc.read_10x_h5("path/to/data.h5")

# 2. 前処理
sc.pp.filter_cells(adata, min_genes=200)
sc.pp.filter_genes(adata, min_cells=3)
adata.var['mt'] = adata.var_names.str.startswith('MT-')
sc.pp.calculate_qc_metrics(adata, inplace=True)
adata = adata[adata.obs.pct_counts_mt < 5, :]

sc.pp.normalize_total(adata)
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata, n_top_genes=2000)
adata = adata[:, adata.var.highly_variable]

# 3. 次元圧縮とクラスタリング
sc.pp.scale(adata)
sc.tl.pca(adata)
sc.pp.neighbors(adata)
sc.tl.umap(adata)
sc.tl.leiden(adata)

# 4. 可視化
sc.pl.umap(adata, color=['leiden'])

# 5. マーカー遺伝子
sc.tl.rank_genes_groups(adata, 'leiden', method='t-test')
sc.pl.rank_genes_groups(adata, n_genes=10)

Seurat vs Scanpy:どっちがオススメ?

項目Seurat(R)Scanpy(Python)
言語RPython
学習コストRユーザー向きPython経験者向き
データ規模中規模(数万細胞まで)大規模(数十万細胞以上もOK)
可視化洗練されたグラフィックカスタマイズ性高い
処理速度やや遅い(とくに大規模)高速
外部ツール連携Rパッケージとの連携強いNumPy/Pandasとの相性が良い

まとめ:まずは使いやすい方から始めよう!

  • 少数~中規模データで直感的に解析したい人 → Seurat
  • Pythonが得意で大規模データや自動化を視野に入れたい人 → Scanpy

どちらも無料でドキュメントが豊富なので、まずはチュートリアルを動かしながら覚えていくのが最短ルートです!

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*