scATAC-seq のサンプル統合・バッチ補正 ─ Harmony と PeakVI

scATAC-seq
📚 この記事について
複数サンプルをまとめる際に生じる実験差(バッチ)を補正します。古典(Harmony)と深層学習(PeakVI)を対比して選びます。
🔙 前の記事scATAC-seq の次元削減とクラスタリング
🔜 次の記事scATAC-seq のアノテーション全体像
📌 前提:spectral 埋め込み(またはピーク行列)が作れていること

scATAC-seq(single-cell ATAC-seq/核を使う場合は snATAC-seq)で複数サンプルをまとめると、実験差(バッチ)が混ざります。ここでは、それを補正する2つのアプローチを対比して押さえます。

1. バッチ効果とは


複数のサンプルや実験をまとめて解析すると、生物学的な違いとは別に、実験ごとの技術差(バッチ効果)が入り込みます。放置すると、同じ細胞型なのにサンプルごとに別々のクラスタに分かれてしまい、細胞型の違いと取り違えます。補正の目的は、この技術差を取り除き、同じ細胞型が重なるようにすることです。

図:バッチ補正の前後(同じ細胞型がサンプル差で分かれる → 重ねる)
図:バッチ補正の前後(同じ細胞型がサンプル差で分かれる → 重ねる)

2. 2つの考え方(古典 ⇄ AI)


補正には、タイミングの異なる2系統があります。これは scRNA-seq の HarmonyscVI と同じ構図です。

後処理型(Harmony):次元削減で作った埋め込みを、後から整列させて補正します。速く、学習不要。
モデル型(PeakVI):深層生成モデル(VAE)が、バッチ補正を組み込んだ潜在空間を学習中に作ります。

3. Harmony と PeakVI を比べる


観点 Harmony(古典) PeakVI(AI)
系統 後処理型 モデル型(深層生成)
入力 spectral 埋め込み ピーク行列
補正のタイミング 次元削減のに整列 学習中に補正
計算 CPUで高速・学習不要 学習が必要(GPU推奨)
付加価値 埋め込みの整列 潜在空間+ノイズ除去+差次的アクセシビリティ
使いどころ まずこれ(既定) 本格的な統合が要るとき
💡 入力が違う点に注意
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推奨)。
  • 補正しすぎに注意。マーカーの分布で確認する。

関連記事


参考文献


  • 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

コメント

タイトルとURLをコピーしました