scATAC-seq(single-cell ATAC-seq/核を使う場合は snATAC-seq)で複数サンプルをまとめると、実験差(バッチ)が混ざります。ここでは、それを補正する2つのアプローチを対比して押さえます。
1. バッチ効果とは
複数のサンプルや実験をまとめて解析すると、生物学的な違いとは別に、実験ごとの技術差(バッチ効果)が入り込みます。放置すると、同じ細胞型なのにサンプルごとに別々のクラスタに分かれてしまい、細胞型の違いと取り違えます。補正の目的は、この技術差を取り除き、同じ細胞型が重なるようにすることです。
2. 2つの考え方(古典 ⇄ AI)
補正には、タイミングの異なる2系統があります。これは scRNA-seq の Harmony ⇄ scVI と同じ構図です。
後処理型(Harmony):次元削減で作った埋め込みを、後から整列させて補正します。速く、学習不要。
モデル型(PeakVI):深層生成モデル(VAE)が、バッチ補正を組み込んだ潜在空間を学習中に作ります。
3. Harmony と PeakVI を比べる
| 観点 | Harmony(古典) | PeakVI(AI) |
|---|---|---|
| 系統 | 後処理型 | モデル型(深層生成) |
| 入力 | spectral 埋め込み | ピーク行列 |
| 補正のタイミング | 次元削減の後に整列 | 学習中に補正 |
| 計算 | CPUで高速・学習不要 | 学習が必要(GPU推奨) |
| 付加価値 | 埋め込みの整列 | 潜在空間+ノイズ除去+差次的アクセシビリティ |
| 使いどころ | まずこれ(既定) | 本格的な統合が要るとき |
💡 入力が違う点に注意
Harmony は spectral 埋め込みを補正するのに対し、PeakVI はピーク行列を直接モデル化します。つまり PeakVI を使うにはピークコールが済んでいる必要があります。両者は動くステージが違います。
Harmony は spectral 埋め込みを補正するのに対し、PeakVI はピーク行列を直接モデル化します。つまり PeakVI を使うにはピークコールが済んでいる必要があります。両者は動くステージが違います。
4. コード:Harmony(SnapATAC2)
既定はこちらです。spectral 埋め込みを補正し、補正後の表現で再クラスタリングします(Harmony:Korsunsky et al., Nature Methods, 2019)。
python
# 前提:spectral 済み、obs['sample'] にサンプル(バッチ)情報
# Harmony で埋め込みを補正 → obsm['X_spectral_harmony']
snap.pp.harmony(data, batch="sample", use_rep="X_spectral")
# 補正後の表現で再クラスタリング
snap.pp.knn(data, use_rep="X_spectral_harmony")
snap.tl.leiden(data)
snap.tl.umap(data, use_rep="X_spectral_harmony")
5. コード:PeakVI(scvi-tools)
本格的に統合したいときは PeakVI です。バッチを指定して学習すると、補正済みの潜在空間が得られます(PeakVI:Ashuach et al., 2022)。
python
import scvi # 前提:ピーク行列の adata、obs['sample'] にバッチ
# 1. バッチを指定してセットアップ(学習中に補正される)
scvi.model.PEAKVI.setup_anndata(adata, batch_key="sample")
# 2. モデルを作って学習(GPUがあると速い)
model = scvi.model.PEAKVI(adata)
model.train()
# 3. 統合された潜在表現を取り出す
adata.obsm["X_peakvi"] = model.get_latent_representation()
# 4. 潜在表現でクラスタリング(scanpy)
import scanpy as sc
sc.pp.neighbors(adata, use_rep="X_peakvi")
sc.tl.leiden(adata)
6. どちらを選ぶか
- まずは Harmony:数サンプルの統合なら、速くて学習不要のこちらで十分なことが多い。
- PeakVI を選ぶ場面:多数サンプル・強いバッチ・ノイズ除去や統合的な差次的アクセシビリティまで欲しいとき。GPUがあると現実的。
- 補正後は必ず確認:補正しすぎると、本物の生物学的な差まで消してしまいます。既知マーカーの分布が保たれているかを見て判断します。
まとめ
- バッチ効果=同じ細胞型がサンプルごとに分かれる技術差。補正で重ねる。
- Harmony=後処理型(速い・既定)/PeakVI=モデル型(本格・GPU推奨)。
- 補正しすぎに注意。マーカーの分布で確認する。
関連記事
- scATAC-seq の次元削減とクラスタリング
- scATAC-seq のアノテーション全体像
- scATAC-seq のデータ読み込みとデータ構造
- scATAC-seq 前処理の全体像 ─ QC からクラスタリングまで
- scVIだけじゃない:scvi-tools の全体像 ─ どのモデルをいつ使うか
参考文献
- Korsunsky, I., Millard, N., Fan, J., et al. (2019). Fast, sensitive and accurate integration of single-cell data with Harmony. Nature Methods, 16(12), 1289–1296. doi:10.1038/s41592-019-0619-0
- 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(3), 100182. doi:10.1016/j.crmeth.2022.100182
- Zhang, K., Zemke, N. R., Armand, E. J., & Ren, B. (2024). A fast, scalable and versatile tool for analysis of single-cell omics data. Nature Methods, 21(2), 217–227. doi:10.1038/s41592-023-02139-9


コメント