シングルセル・マルチオミクス(single-cell multiomics/scRNA-seq と scATAC-seq の統合解析)は、同じ細胞から両方を測っていない「非ペア」でも統合できます。この記事では、別々の細胞で測った RNA と ATAC を scGLUE で共通の潜在空間へまとめます。
1. scGLUE とは ─ guidance graph で橋渡し
scGLUE(GLUE=graph-linked unified embedding)は、非ペア(RNA と ATAC を別々の細胞集団で測ったデータ)を1つの共通の潜在空間にまとめる手法です(Cao & Gao, Nat. Biotechnol., 2022)。ペアと違って同じ細胞の対応がないため、特徴どうし(遺伝子とピーク)を結ぶ guidance graph で橋渡しします。
各モダリティを別々の VAE で潜在空間に写しますが、細胞の対応がないので、そのままでは2つの空間の向きがそろいません。そこで、遺伝子↔ピークの guidance graph をグラフ VAE で埋め込み、それを各デコーダの重みに使うことで空間の向きをそろえ、さらにモダリティ判別器(敵対的学習)で RNA 細胞と ATAC 細胞を混ぜます。入力は RNA が生カウント、ATAC はピーク特徴です。
2. guidance graph をつくる
最初に、遺伝子とピークを結ぶ guidance graph を作ります。標準はゲノム上の近さで、あるピークが遺伝子の近く(遺伝子体やプロモーター)にあれば、その遺伝子とエッジで結びます。そのために、特徴にゲノム座標を付けておきます。
python
import anndata as ad
import scanpy as sc
import scglue
# 前処理済みの非ペアデータ(別々の細胞)を用意
# rna : layers["counts"], obsm["X_pca"], HVG 済み
# atac: obsm["X_lsi"], HVG 済み
# 特徴にゲノム座標を付ける(遺伝子は GTF、ピークは interval から)
scglue.data.get_gene_annotation(rna, gtf="gencode.gtf.gz", gtf_by="gene_name")
coords = atac.var_names.str.split(r"[:-]")
atac.var["chrom"] = coords.map(lambda x: x[0])
atac.var["chromStart"] = coords.map(lambda x: int(x[1]))
atac.var["chromEnd"] = coords.map(lambda x: int(x[2]))
# 遺伝子 ↔ ピークの guidance graph(近さで結ぶ)
guidance = scglue.genomics.rna_anchored_guidance_graph(rna, atac)
scglue.graph.check_graph(guidance, [rna, atac])
エッジは「この遺伝子とこのピークは制御的に関係しそう」という事前知識です。既定ではゲノム座標の近さ(重なり・プロモーター距離)で張られ、距離に応じて重みが減衰します。この事前知識が、細胞の対応がない非ペアで両モダリティを結ぶ「のりしろ」になります。
3. GLUE を設定して学習する
次に、各モダリティの入力を configure_dataset で設定します。RNA は生カウント+PCA、ATAC はLSIを使います(前処理で用意したもの。LSI は Cusanovich et al., Science, 2015)。HVG だけの部分グラフを取り出し、GLUE を学習します。
python
# 各モダリティの入力を設定(RNA=生カウント+PCA、ATAC=LSI)
scglue.models.configure_dataset(
rna, "NB", use_highly_variable=True, use_layer="counts", use_rep="X_pca"
)
scglue.models.configure_dataset(
atac, "NB", use_highly_variable=True, use_rep="X_lsi"
)
# HVG だけの部分グラフを取り出す
from itertools import chain
guidance_hvf = guidance.subgraph(chain(
rna.var.query("highly_variable").index,
atac.var.query("highly_variable").index,
)).copy()
# GLUE を学習
glue = scglue.models.fit_SCGLUE(
{"rna": rna, "atac": atac}, guidance_hvf, fit_kws={"directory": "glue"}
)
RNA は生カウント(use_layer=”counts”)と PCA(use_rep=”X_pca”)、ATAC は LSI(use_rep=”X_lsi”)を指定します。前処理記事で RNA の生カウントを .layers に残し、ATAC の LSI を obsm に入れておいたのはこのためです。学習には GPU が実質必要で、数十分かかります。
4. 潜在空間へ埋め込んで可視化する
学習が済んだら、各モダリティを共通の潜在空間 X_glue へ埋め込み、RNA と ATAC の細胞を1つに結合して可視化します。
python
# 各モダリティを共通の潜在空間へ埋め込む
rna.obsm["X_glue"] = glue.encode_data("rna", rna)
atac.obsm["X_glue"] = glue.encode_data("atac", atac)
# RNA と ATAC の細胞を1つに結合して可視化
combined = ad.concat([rna, atac])
sc.pp.neighbors(combined, use_rep="X_glue")
sc.tl.umap(combined)
sc.tl.leiden(combined)
統合前はモダリティごとに分かれていた細胞が、統合後は細胞型でまとまり、RNA 細胞と ATAC 細胞が混ざるのが理想です(クラスタリングは Leiden;Traag et al., Sci. Rep., 2019)。分かれたままなら、guidance graph の質・HVG・学習を見直します。scGLUE には統合の一貫性を測る指標もあります。
5. MultiVI との使い分け・注意点
ペア(MultiVI)と非ペア(scGLUE)は入口が違うだけで、行き着く先は共通の潜在空間です。ここから先の解析 ─ アノテーション、GRN 推論、摂動 ─ は、経路によらず共通の手続きになります(Argelaguet et al., 2021)。
同じ細胞から両方を測った(ペア)なら MultiVI(Ashuach et al., 2023)。別々の細胞で測った(非ペア)なら scGLUE。ペアが一部だけ混じるモザイクは MultiVI が扱えます。手元のデータがどちらかを見分けることが、統合の最初の分岐です。
これで統合の2つの型(ペア・非ペア)が揃いました。次のブロックからは、統合された潜在空間を使って遺伝子制御ネットワーク(GRN)を組み立てます。
まとめ
- scGLUE は、非ペア(別々の細胞の RNA・ATAC)を共通の潜在空間にまとめる手法。
- 細胞の対応がない代わりに、遺伝子↔ピークの guidance graph(ゲノムの近さ)で橋渡しする。
- configure_dataset で RNA=生カウント+PCA、ATAC=LSI を指定 → HVG 部分グラフ → fit_SCGLUE。
- encode_data で X_glue を得て結合 → neighbors(use_rep) → UMAP。細胞型で混ざれば成功。
- ペアは MultiVI、非ペアは scGLUE。統合後の下流は経路によらず共通。次は GRN 推論へ。
関連記事
- 📖 MultiVI でペアデータを統合(前の記事) … ペア側の統合
- 📖 scRNA-seq 前処理の全体像 … RNA 側(生カウント・PCA)
- 📖 scATAC-seq 解析の全体像 … ATAC 側(LSI)
- 📖 scvi-tools の全体像 … 深層生成モデルの土台
参考文献
- 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
- Lopez, R., Regier, J., Cole, M. B., Jordan, M. I., & Yosef, N. (2018). Deep generative modeling for single-cell transcriptomics. Nature Methods, 15(12), 1053–1058. doi:10.1038/s41592-018-0229-2
- 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
- Traag, V. A., Waltman, L., & van Eck, N. J. (2019). From Louvain to Leiden: guaranteeing well-connected communities. Scientific Reports, 9, 5233. doi:10.1038/s41598-019-41695-z


コメント