WNN(Seurat・R)の位置づけ ─ R でペア Multiome を統合する

Multiomics
📚 この記事について
統合スポークの3本目です。R(Seurat)でペア Multiome を統合する WNN の考え方と使い方、そして VAE 系(MultiVI / scGLUE)との使い分けを扱います。専門用語はその都度説明します。
🔙 前の記事scGLUE で非ペアデータを統合(前の記事)
🔜 次の記事:「SCENIC+ でエンハンサー駆動 GRN」(GRN スポーク)
📌 前提:Seurat / Signac の基礎(R)。ペア Multiome データ。

シングルセル・マルチオミクス(single-cell multiomics/scRNA-seq と scATAC-seq の統合解析)は、Python の深層生成モデルだけでなく、R の Seurat でも行えます。この記事では、ペア Multiome を統合する定番手法 WNN を、VAE 系との対比とともに扱います。

1. WNN とは ─ R 定番のペア統合


WNN(weighted nearest neighbor)は、ペア(同一細胞計測)の Multiome をR の Seuratで統合する定番手法です(Hao et al., Cell, 2021)。MultiVI や scGLUE が深層生成モデル(VAE)で共通の潜在空間を「作る」のに対し、WNN は各モダリティで別々に作った埋め込み(RNA の PCA・ATAC の LSI)を、細胞ごとの重みで束ねて1つの近傍グラフにする、という発想です。

図:WNN の仕組み。RNA(PCA)と ATAC(LSI)の埋め込みを、細胞ごとに学習した重みで束ねて重み付き近傍グラフを作り、UMAP・クラスタリングに使う。生成モデル(VAE)ではない。
図:WNN の仕組み。RNA(PCA)と ATAC(LSI)の埋め込みを、細胞ごとに学習した重みで束ねて重み付き近傍グラフを作り、UMAP・クラスタリングに使う。生成モデル(VAE)ではない。
💡 WNN の考え方
細胞ごとに「RNA と ATAC のどちらがその細胞をよく説明するか」を測り、その重みで2つの埋め込みを組み合わせます。結果は重み付き近傍グラフで、UMAP やクラスタリングに使えます。VAE と違って生成モデルではないので、欠損モダリティの補完や生成はしませんが、R だけで完結でき、直感的で速いのが利点です。

2. RNA と ATAC を用意する(PCA と LSI)


WNN は、各モダリティで別々に次元削減しておくことが前提です。RNA は標準の正規化 → PCA、ATAC は Signac で TF-IDF → LSI を計算します(LSI は Cusanovich et al., Science, 2015)。

r
library(Seurat)
library(Signac)

# RNA:標準の前処理 → PCA
DefaultAssay(obj) <- "RNA"
obj <- NormalizeData(obj)
obj <- FindVariableFeatures(obj)
obj <- ScaleData(obj)
obj <- RunPCA(obj)

# ATAC:TF-IDF → LSI(第1成分は深度と相関するので後で除く)
DefaultAssay(obj) <- "ATAC"
obj <- RunTFIDF(obj)
obj <- FindTopFeatures(obj, min.cutoff = "q0")
obj <- RunSVD(obj)          # reduction 名は "lsi"
⚠️ 注意点:ATAC は第1 LSI 成分を除く
ATAC の LSI 第1成分はシーケンス深度と相関しやすいので、WNN でも次の手順で dims を 2:50 として第1成分を外します(前処理記事と同じ考え方)。RNA・ATAC は同じ Seurat オブジェクトの別アッセイとして持ちます。

3. WNN で重み付き近傍グラフを作る


2つの埋め込み(pca・lsi)ができたら、FindMultiModalNeighbors に渡します。ここで細胞ごとの重みが学習され、重み付き近傍グラフ(weighted.nn/wsnn)が作られます。

r
# WNN:細胞ごとに RNA/ATAC の重みを学習し、重み付き近傍グラフを作る
obj <- FindMultiModalNeighbors(
  obj,
  reduction.list = list("pca", "lsi"),
  dims.list = list(1:50, 2:50),          # ATAC は第1 LSI 成分を除く
  modality.weight.name = "RNA.weight"
)
💡 重みは細胞ごとに違う
WNN の要は、重みが細胞ごとに異なることです。ある細胞型は RNA の方が識別に効き、別の細胞型は ATAC の方が効く、といった違いを反映します。reduction.list に pca と lsi、dims.list に各次元を渡します。

4. UMAP・クラスタリングと重みの確認


重み付きグラフができたら、その上で UMAP とクラスタリングを行い、細胞ごとの重みも確認します。

r
# 重み付きグラフの上で UMAP → クラスタリング
obj <- RunUMAP(obj, nn.name = "weighted.nn", reduction.name = "wnn.umap")
obj <- FindClusters(obj, graph.name = "wsnn", algorithm = 3)

# 細胞ごとのモダリティ重みは obj$RNA.weight で確認できる
head(obj$RNA.weight)
図:モダリティ重みは細胞(型)で変わる。RNA の情報が有力な細胞型と、ATAC の情報が有力な細胞型が混在する。WNN は各細胞で情報量の多いモダリティを重くする。
図:モダリティ重みは細胞(型)で変わる。RNA の情報が有力な細胞型と、ATAC の情報が有力な細胞型が混在する。WNN は各細胞で情報量の多いモダリティを重くする。
💡 重みを見て解釈する
obj$RNA.weight は各細胞の RNA 重み(ATAC 重みは 1 から引いた値)です。細胞型ごとに重みを比べると、その細胞型が RNA と ATAC のどちらの情報で特徴づけられるかが分かります。図のように、RNA 有力な細胞型と ATAC 有力な細胞型が混在します。

5. VAE 系との使い分け


WNN は R で完結できるペア統合の定番ですが、できることの範囲は VAE 系と違います。ハブで述べたとおり、ペアなら MultiVI・WNN、非ペアなら scGLUE、という住み分けです。

図:WNN(R)と VAE 系(Python)の対比。WNN は重み付き近傍グラフで生成モデルではない。MultiVI / scGLUE は VAE の共通潜在空間で、補完やモザイク・非ペアも扱える。
図:WNN(R)と VAE 系(Python)の対比。WNN は重み付き近傍グラフで生成モデルではない。MultiVI / scGLUE は VAE の共通潜在空間で、補完やモザイク・非ペアも扱える。
💡 どれを選ぶか
R(Seurat)で完結したい・生成や補完は不要なら WNN。Python で・生成モデルの潜在空間や欠損補完・モザイク/非ペアまで扱いたいなら MultiVI(Ashuach et al., 2023)や scGLUE(Cao & Gao, 2022)。いずれもペア/非ペアの入口を見分けるのが先で、統合後の下流(アノテーション・GRN)は経路によらず共通です(Argelaguet et al., 2021)。

これで統合の3ツール(MultiVI・scGLUE・WNN)が揃いました。次のブロックからは、統合された結果を使って遺伝子制御ネットワーク(GRN)を組み立てます。

まとめ


  • WNN は、ペア Multiome を R(Seurat)で統合する定番。RNA の PCA と ATAC の LSI を細胞ごとの重みで束ねる。
  • VAE(MultiVI / scGLUE)と違い生成モデルではない。補完や生成はしないが、R で完結でき直感的で速い。
  • 手順:RNA→PCA、ATAC→TF-IDF/LSI → FindMultiModalNeighbors → RunUMAP(weighted.nn) → FindClusters(wsnn)。
  • ATAC は第1 LSI 成分を除く(dims 2:50)。重みは obj$RNA.weight で細胞ごとに確認。
  • ペアは MultiVI / WNN、非ペアは scGLUE。統合後の下流は共通。次は GRN 推論へ。

関連記事


参考文献


  • Hao, Y., Hao, S., Andersen-Nissen, E., et al. (2021). Integrated analysis of multimodal single-cell data. Cell, 184(13), 3573–3587. doi:10.1016/j.cell.2021.04.048
  • Stuart, T., Srivastava, A., Madad, S., Lareau, C. A., & Satija, R. (2021). Single-cell chromatin state analysis with Signac. Nature Methods, 18(11), 1333–1341. doi:10.1038/s41592-021-01282-5
  • Cusanovich, D. A., Daza, R., Adey, A., et al. (2015). Multiplex single-cell profiling of chromatin accessibility by combinatorial cellular indexing. Science, 348(6237), 910–914. doi:10.1126/science.aab1601
  • Ashuach, T., Gabitto, M. I., Koodli, R. V., et al. (2023). MultiVI: deep generative model for the integration of multimodal data. Nature Methods, 20(8), 1222–1231. doi:10.1038/s41592-023-01909-9
  • Cao, Z.-J., & Gao, G. (2022). Multi-omics single-cell data integration and regulatory inference with graph-linked embedding. Nature Biotechnology, 40(10), 1458–1466. doi:10.1038/s41587-022-01284-4
  • Argelaguet, R., Cuomo, A. S. E., Stegle, O., & Marioni, J. C. (2021). Computational principles and challenges in single-cell data integration. Nature Biotechnology, 39(10), 1202–1215. doi:10.1038/s41587-021-00895-7

コメント

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