この記事のゴール
scvi-tools が1つのモデルではなく、共通設計のモデル群だと理解し、データの種類・目的に応じてどのモデルを選ぶかを掴むこと。
scvi-tools とは
Python の深層生成モデル(VAE:変分オートエンコーダ)にもとづく single-cell 解析フレームワークです。共通の発想は、細胞を低次元の潜在空間に圧縮し、バッチや技術ノイズを分離すること。その共通基盤の上に、データの種類(RNA・ATAC・タンパク質・空間…)やタスクごとに専用モデルが用意されています。
重要なのは、すべて同じ使い方の型に従う点です:setup_anndata → モデル定義 → train → 潜在表現や予測を取り出す。これを知っていれば、モデルが変わっても迷いません。
代表モデルの早見表
| モデル | データ / 用途 | 何をするか |
|---|---|---|
| scVI | scRNA-seq | バッチ補正・統合(潜在表現)・正規化・DE。基本の土台(→ 別記事) |
| scANVI | scRNA-seq+一部ラベル | 半教師あり。既知ラベルで統合し、残りにラベルを転写(参照マッピング) |
| totalVI | CITE-seq(RNA+タンパク質) | RNA とタンパク質(ADT)を同時にモデル化・欠損タンパク質の補完 |
| PeakVI | scATAC-seq | クロマチンアクセシビリティ(ピーク)の統合・潜在表現 |
| MultiVI | マルチオーム(RNA+ATAC) | 複数モダリティを統合(ペア・非ペア、欠損モダリティも扱える) |
| DestVI / Stereoscope | 空間トランスクリプトーム | スポット内の細胞型割合を推定(デコンボリューション) |
💡 なぜ”群”なのか
すべて「観測(カウント)を確率モデルで表し、潜在表現を学ぶ VAE」という同じ土台です。違いは「どのデータ種・どのタスクに特化しているか」だけ。だから共通の API で使え、片方を覚えれば他にも応用できます。
このほかにも、CondSCVI(DestVI 用の単一細胞参照)、LinearSCVI(LDVAE)(解釈しやすい線形版)、AUTOZI(ゼロ過剰の評価)、SOLO(ダブレット検出|→別記事)、CellAssign(マーカーベース注釈)、gimVI(空間の遺伝子補完)などが同じ枠組みに含まれます。
共通の使い方(型は1つ)
pythonimport scvi
import scanpy as sc
# 共通の流れ:setup_anndata → モデル定義 → train → 潜在表現を取得
# 入力は「生カウント」を layers に置く(log 正規化やスケール後ではない)
scvi.model.SCVI.setup_anndata(adata, layer="counts", batch_key="sample")
model = scvi.model.SCVI(adata, n_latent=30)
model.train()
# 学習した潜在表現(バッチ補正済み)を obsm に格納
adata.obsm["X_scVI"] = model.get_latent_representation()
# 以降は通常の scanpy フロー(近傍グラフ → クラスタリング → UMAP)
sc.pp.neighbors(adata, use_rep="X_scVI")
sc.tl.leiden(adata)
sc.tl.umap(adata)
他のモデルもほぼ同じ型です。scvi.model.SCANVI / TOTALVI / PEAKVI / MULTIVI などに替え、setup_anndata → モデル → train → get_latent_representation()(や predict())を呼びます。
⚠️ 入力は「生カウント」
scVI 系は生カウントを前提にします(自前で正規化・対数化・スケールした値ではない)。生カウントを adata.layers["counts"] に退避し、setup_anndata(..., layer="counts") で指定します。log 正規化済みを渡すと誤った結果になります。
どれを使えばよいか(データの種類で選ぶ)
- scRNA-seq のバッチ統合だけ → scVI
- 既知ラベルを活かして統合+アノテーション → scANVI
- CITE-seq(タンパク質併用) → totalVI
- scATAC-seq → PeakVI/RNA+ATAC のマルチオーム → MultiVI
- 空間トランスクリプトームのデコンボリューション → DestVI / Stereoscope
- 既存アトラスに自分のデータを載せる(参照マッピング) → scArches 枠組み(scVI/scANVI をベースに)
落とし穴
⚠️ つまずきやすい点
– 入力は生カウント(log/scale 後ではない)。layers に生カウントを保持する。
– GPU 推奨:CPU でも動くが学習が遅い。
– モデルとデータ種を合わせる:RNA 用モデルに ATAC を入れない、など。
– 再現性:乱数で結果が少し変わる。scvi.settings.seed = 0 などで固定する。
– 統合とアノテーションは別工程:scVI は統合まで、アノテーションは scANVI かアノテーション編の手法で行う。
まとめ
scvi-toolsは VAE を共通基盤としたモデル群。データの種類・目的でモデルを選ぶだけで、使い方の型は1つ(setup_anndata→train→ 取り出し)。- scRNA-seq は scVI/scANVI、CITE-seq は totalVI、ATAC は PeakVI、マルチオームは MultiVI、空間は DestVI/Stereoscope。
- 入力は生カウント・GPU 推奨・seed 固定が共通の注意点。
関連記事
- 📖 AnnData のデータ構造:scvi-tools の入力になるデータ形式
- 📖 scVI による統合・バッチ補正:scVI 単体の詳しい使い方(CPU 版は Harmony)
- 📖 ダブレットの検出(Scrublet/SOLO):SOLO も scvi-tools の一員
- 📖 アノテーション編 学習済みモデルによる自動アノテーション:scANVI/scArches による参照マッピング(編の地図は アノテーション手法の全体像)
参考文献
- Gayoso, A., Lopez, R., Xing, G., et al. (2022). A Python library for probabilistic analysis of single-cell omics data. Nature Biotechnology, 40, 163–166. doi:10.1038/s41587-021-01206-w
- Lopez, R., Regier, J., Cole, M. B., Jordan, M. I., & Yosef, N. (2018). Deep generative modeling for single-cell transcriptomics. Nature Methods, 15, 1053–1058. doi:10.1038/s41592-018-0229-2
- Xu, C., Lopez, R., Mehlman, E., et al. (2021). Probabilistic harmonization and annotation of single-cell transcriptomics data with deep generative models. Molecular Systems Biology, 17, e9620. doi:10.15252/msb.20209620
- Gayoso, A., Steier, Z., Lopez, R., et al. (2021). Joint probabilistic modeling of single-cell multi-omic data with totalVI. Nature Methods, 18, 272–282. doi:10.1038/s41592-020-01050-x
- Ashuach, T., Reidenbach, D. A., Gayoso, A., & Yosef, N. (2022). PeakVI: A deep generative model for single-cell chromatin accessibility analysis. Cell Reports Methods, 2, 100182. doi:10.1016/j.crmeth.2022.100182
- Ashuach, T., Gabitto, M. I., Koodli, R. V., et al. (2023). MultiVI: deep generative model for the integration of multimodal data. Nature Methods, 20, 1222–1231. doi:10.1038/s41592-023-01909-9
- Lopez, R., Li, B., Keren-Shaul, H., et al. (2022). DestVI identifies continuums of cell types in spatial transcriptomics data. Nature Biotechnology, 40, 1360–1369. doi:10.1038/s41587-022-01272-8


コメント