空間トランスクリプトーム解析(spatial transcriptomics)のうちシーケンス型(Visium・Stereo-seq など NGS で読み出す方式)は、1つのフィーチャに複数の細胞が混ざっています。この混合を、細胞型ごとの寄与に分解するのがデコンボリューションです。「なぜそんなことができるのか」を理解しておくと、どの手法を選ぶべきかも、結果を信じてよいかどうかも、自分で判断できるようになります。
1. 何を解いているのか
考え方は単純です。フィーチャで観測された発現は、そこにいる細胞たちの発現の足し算である。T細胞が 4 割、B細胞が 2 割、腫瘍細胞が 4 割いるなら、観測された発現は、それぞれのプロファイルをその割合で混ぜたものになるはずです。

式にすると、遺伝子ごとに次の関係が成り立ちます。
- 観測されたカウント(フィーチャごと・遺伝子ごと)── 測定済み。既知。
- 細胞型ごとの発現プロファイル(遺伝子ごと)── 参照 scRNA-seq から作る。既知。
- 重み(フィーチャごと・細胞型ごと)── これが未知数。
参照から作るプロファイルの表を signature matrix と呼びます。細胞型ごとに、遺伝子の平均発現を並べたものです。
python
import numpy as np
import pandas as pd
# 参照から、細胞型ごとの平均発現(signature matrix)を作る
ref_df = pd.DataFrame(
ref.layers["counts"].toarray(),
index=ref.obs_names, columns=ref.var_names,
)
sig = ref_df.groupby(ref.obs["cell_type"].values).mean().T
print(sig.shape) # (遺伝子, 細胞型)
式の数は遺伝子の数(数千〜2万)、未知数は細胞型の数(数十)です。式のほうが圧倒的に多いので、重みは原理的に決まります。統計でいう過剰決定系で、回帰と同じ構図です。だからこそ、共通遺伝子の数が減ると危うくなります。式が減れば、決まりにくくなるからです。
python
# 共通遺伝子を数える。ここが少ないと、そもそも解けない
common = sig.index.intersection(adata.var_names)
print("参照の遺伝子:", sig.shape[0])
print("空間の遺伝子:", adata.n_vars)
print("共通:", len(common))
# FFPE のプローブ捕捉データに poly-A の参照を使うと、ここが大きく削れる
# 共通が数千を切るようなら、参照かプラットフォームを見直す
2. なぜ失敗するのか ─ 識別可能性の問題
「式が多いから解ける」は、1つの前提の上に成り立っています。細胞型ごとに、プロファイルが違っていること。

2つの細胞型の発現プロファイルがよく似ていたら、どうなるでしょうか。たとえば CD4 T細胞 と CD8 T細胞。多くの遺伝子で、発現はほとんど同じです。
このとき、「CD4 が 0.7、CD8 が 0.1」でも「CD4 が 0.1、CD8 が 0.7」でも、観測との誤差はほとんど変わりません。どちらの答えも、同じくらいうまく観測を説明してしまう。重みは一意に決まらず、わずかなノイズで大きく揺れます。
走らせる前に、参照の細胞型どうしがどれだけ違うかを確かめておくべきです。
python
# 参照の細胞型どうしが、どれだけ違うかを確かめる
S = np.log1p(sig.loc[common].values) # (遺伝子, 細胞型)
corr = np.corrcoef(S.T)
cm = pd.DataFrame(corr, index=sig.columns, columns=sig.columns)
print(cm.round(2))
# 相関が 0.95 を超える組があれば、その2つは分けられないと考えたほうがよい
hi = [(a, b, round(float(cm.loc[a, b]), 3))
for a in cm.index for b in cm.columns
if a < b and cm.loc[a, b] > 0.95]
print("区別が難しい組:", hi)
相関が非常に高い細胞型の組が見つかったら、選択肢は2つです。(1) 参照の解像度を落として、2つを1つにまとめる(「T細胞」として扱う)。(2) その2つを分けるマーカーが、空間側のデータに残っているかを確認する。無理に細かい型で走らせて、意味のない空間パターンを描くよりは、粗い型で確実な結果を出すほうが、はるかに価値があります。
3. 素朴に解いてみる ─ そして、なぜそれではダメなのか
原理が分かれば、実装は 10 行で書けます。重みは 0 以上でなければならないので、非負最小二乗(NNLS)を使います。
python
from scipy.optimize import nnls
# 素朴なやり方:非負最小二乗で重みを解く
S = sig.loc[common].values # (遺伝子, 細胞型)
Y = adata[:, common].layers["counts"].toarray() # (フィーチャ, 遺伝子)
Wt = np.zeros((Y.shape[0], S.shape[1]))
for i in range(Y.shape[0]):
Wt[i], _ = nnls(S, Y[i])
# 割合に直す
Wt = Wt / Wt.sum(axis=1, keepdims=True)
prop = pd.DataFrame(Wt, index=adata.obs_names, columns=sig.columns)
# これは動く。しかし、次の3つを無視している
# 1. カウントは正規分布ではない(Poisson / 負の二項)
# 2. 過分散がある
# 3. 参照と空間で、遺伝子の捕まりやすさが違う(プラットフォーム効果)
# 実用の手法は、この3つを扱うために存在する
これは動きます。それらしい割合も返ってきます。しかし、実用の手法はこれよりずっと複雑です。理由は3つあります。
| 無視していること | 何が問題か | 実用の手法はどうするか |
|---|---|---|
| カウントの分布 | 最小二乗は正規分布を仮定している。カウントは違う | Poisson または負の二項の尤度を使う |
| 過分散 | 同じ細胞型でも、遺伝子の発現はばらつく | 過分散パラメータをモデルに入れる |
| プラットフォーム効果 | 参照と空間で、遺伝子の捕まりやすさが違う | 遺伝子ごとの補正項を推定する |
4. プラットフォーム効果 ─ ここが本当の難所
同じ T細胞を、scRNA-seq と Visium で測ったとします。両者の発現プロファイルは、一致しません。

ずれる理由はいくつもあります。
- 捕捉の化学が違う:poly-A 捕捉とプローブ捕捉では、拾える転写産物が違う。
- 解離バイアス:scRNA-seq は組織をばらして測る。解離のストレスで発現が変わる遺伝子がある。
- 捕捉効率が遺伝子ごとに違う:長さ、二次構造、プローブの設計によって、拾いやすい遺伝子と拾いにくい遺伝子がある。
この差を補正しないと、空間側で捕まりやすい遺伝子が、フィッティングを支配します。結果として、重みは系統的に偏ります。
RCTD(Cable et al., Nature Biotechnology, 2022)は、この問題を正面から扱った手法です。Poisson-対数正規の階層モデルの中にプラットフォーム効果を表す変数を入れ、バッチ効果に由来する推定のずれに対処します。名前の R(Robust)は、ここから来ています。
cell2location(Kleshchevnikov et al., Nature Biotechnology, 2022)も同様です。負の二項モデルの中に、技術ごとに異なる発現レベルを吸収するスケーリング係数と、フィーチャごと・遺伝子ごとの2つの加算シフトを持たせています。
SPOTlight のような NMF ベースの手法や、SpatialDWLS のような重み付き最小二乗の手法は、プラットフォーム効果を明示的にはモデル化していません。参照と空間データが同じ組織・同じ条件・近いプラットフォームから来ているなら問題は小さい。しかし、公共データの参照を流用する場合、この差は無視できません。参照が手元のデータと遠いほど、確率モデル系の手法(RCTD、cell2location)を選ぶ理由が強くなります。
5. 手法の分類 ─ 4つの軸
| 軸 | 選択肢 | 何が変わるか |
|---|---|---|
| 参照の要否 | 参照あり / 参照なし | 参照がなければ、返るのは名前のないトピック |
| 統計モデル | 確率モデル(Poisson / 負の二項)/ 回帰 / 行列分解 / 深層学習 | カウントの性質とプラットフォーム効果を扱えるか |
| 出力 | 割合 / 絶対量 / 対応づけ | 細胞密度の情報が残るかどうか |
| 空間情報 | 使う / 使わない | 近くの場所どうしで情報を借りられるか |
6. 代表手法の原理
| 手法 | モデル | 出力 | 特徴 |
|---|---|---|---|
| RCTD | Poisson-対数正規の階層モデル | 割合 | プラットフォーム効果を明示的に扱う。doublet / full / multi のモード |
| cell2location | 階層ベイズ + 負の二項 | 絶対量 | 変分推論。フィーチャ間で情報を借りるので、稀な細胞型も拾える |
| stereoscope | 負の二項 + 最尤推定 | 割合 | 遺伝子・細胞型ごとのパラメータを推定する |
| SPOTlight | シードつき NMF 回帰 | 割合 | 行列分解ベース。軽い |
| SpatialDWLS | 減衰つき重み付き最小二乗 | 割合 | 回帰ベース。速い |
| CARD | NMF + 条件付き自己回帰(CAR) | 割合 | 空間相関を使う。参照がずれていても精度が保たれる |
| DestVI | 深層生成モデル(scvi-tools) | 割合 | 細胞型「内」の連続的な状態変化までモデル化する |
| Tangram | 深層学習による写像 | 対応づけ | 細胞を空間に写す。測っていない遺伝子の予測が得意 |
| STdeconvolve | 潜在ディリクレ配分(LDA) | トピックの割合 | 参照不要。K を先に決める |
7. 空間情報を使うことの功罪
CARD(Ma & Zhou, Nature Biotechnology, 2022)は、「空間的に近い場所は、細胞型の組成も似ている」という仮定をモデルに入れます。条件付き自己回帰(CAR)で、隣どうしの組成に相関を持たせるのです。
この効果は大きい。論文では、空間相関をモデル化することで場所どうしが情報を借り合い、参照 scRNA-seq がミスマッチな場合でも、デコンボリューションの精度が向上したと報告されています。さらに CARD は、測っていない位置の組成や発現を補間して、元のデータより高い解像度の地図を作ることもできます。
「近い場所は似ている」という仮定は、多くの組織で正しいものです。しかし、その仮定が破れる場所こそ、見たい場所であることがあります。腫瘍と間質の境界、上皮と結合組織の境界。ここでは組成が急激に変わります。空間平滑化を強くかけると、この急変が鈍り、境界がぼやけます。境界そのものを問いにするなら、空間平滑化を使わない手法と結果を比べてください。
8. 細胞型の「内側」の多様性
ほとんどの手法は、参照の細胞型を1つの固定したプロファイルとして扱います。「T細胞のプロファイル」は1つだけ、という前提です。
しかし実際には、同じ T細胞でも、活性化しているもの、疲弊しているもの、静止しているものがあります。腫瘍の中と、リンパ節の中では、状態が違う。この違いを、通常の手法は捉えられません。
DestVI(Lopez et al., Nature Biotechnology, 2022)は、細胞型ごとに連続的な潜在変数を持たせることで、細胞型「内」の状態変化までモデル化します。「この場所の T細胞は、あの場所の T細胞と状態が違う」という問いに答えられます(scvi-tools の全体像)。
9. どう選ぶか ─ 原理から導かれる指針
| 状況 | 選ぶ手法 | 理由 |
|---|---|---|
| 参照が手元のデータと遠い(公共データ流用) | RCTD、cell2location、CARD | プラットフォーム効果や参照ミスマッチへの対処がある |
| 細胞密度を問いたい | cell2location | 絶対量を推定する |
| 稀な細胞型を拾いたい | cell2location | フィーチャ間で情報を借りるので、弱いシグナルも拾える |
| 鋭い境界を見たい | RCTD、cell2location | 空間平滑化をかけない |
| 組織の大域的な構造を見たい | CARD | 空間相関が効く |
| 細胞型内の状態変化を見たい | DestVI | 細胞型ごとの潜在変数を持つ |
| 適切な参照が存在しない | STdeconvolve | 参照不要 |
| 測っていない遺伝子を予測したい | Tangram | この課題で上位(Li et al., 2022) |
ベンチマークの結果は次の記事で詳しく扱いますが、16 手法の比較(Li et al., Nature Methods, 2022)でも、Spotless(Sang-aram et al., eLife, 2023)でも、cell2location と RCTD が総合的に上位に来ています。迷ったら、この2つのどちらかから始めるのが妥当です。
10. 走らせる前のチェックリスト
- 生のカウントを渡しているか(正規化した行列を渡していないか)
- 共通遺伝子の数を確認したか(少なすぎないか)
- 参照の細胞型どうしが互いに区別できるかを確認したか
- 参照に、その組織にいるはずの細胞型がすべて入っているか
- 参照と空間データのプラットフォームの差を、手法がモデル化しているか
- 空間平滑化が、見たい境界を鈍らせていないか
- 細胞密度を問いたいなら、絶対量を返す手法を選んでいるか
まとめ
- デコンボリューションは、観測 = 参照プロファイルの重み付き和という式を、重みについて解く問題。式(遺伝子)が未知数(細胞型)より圧倒的に多いから解ける。
- 解けるのは細胞型ごとにプロファイルが違うから。似ていると、重みは入れ替え可能になり、一意に決まらない。
- 素朴な最小二乗では足りない。カウントの分布・過分散・プラットフォーム効果を扱う必要がある。
- プラットフォーム効果が最大の難所。参照と空間で、同じ遺伝子の捕まりやすさが違う。RCTD と cell2location は、これを明示的にモデル化する。
- 空間平滑化(CARD)は諸刃。参照ミスマッチには強くなるが、鋭い境界は鈍る。
- 細胞型内の状態変化を見たいなら DestVI。通常の手法は「T細胞は T細胞」として一括りにする。
- 迷ったら cell2location か RCTD。両ベンチマークで総合上位。
関連記事
- シーケンス型 空間トランスクリプトーム:細胞型を割り当てる(全体像)
- シーケンス型 空間トランスクリプトーム:cell2location 実践
- シーケンス型 空間トランスクリプトーム:手法比較(CARD・RCTD・Tangram)
- シーケンス型 空間トランスクリプトーム:segmentation-free 解析
- scRNA-seq解析:細胞型アノテーション手法の全体像
- scRNA-seq解析:細胞型アノテーション(手動)
- scRNA-seq解析:正規化・特徴選択・次元削減・クラスタリング
- scVIだけじゃない:scvi-tools の全体像
- scRNA-seq解析の土台:AnnData のデータ構造をリレーショナルDBの発想で理解する
参考文献
- Cable, D. M., Murray, E., Zou, L. S., et al. (2022). Robust decomposition of cell type mixtures in spatial transcriptomics. Nature Biotechnology, 40(4), 517–526. doi:10.1038/s41587-021-00830-w
- Kleshchevnikov, V., Shmatko, A., Dann, E., et al. (2022). Cell2location maps fine-grained cell types in spatial transcriptomics. Nature Biotechnology, 40(5), 661–671. doi:10.1038/s41587-021-01139-4
- Ma, Y., & Zhou, X. (2022). Spatially informed cell-type deconvolution for spatial transcriptomics. Nature Biotechnology, 40(9), 1349–1359. doi:10.1038/s41587-022-01273-7
- Andersson, A., Bergenstråhle, J., Asp, M., et al. (2020). Single-cell and spatial transcriptomics enables probabilistic inference of cell type topography. Communications Biology, 3, 565. doi:10.1038/s42003-020-01247-y
- Elosua-Bayes, M., Nieto, P., Mereu, E., Gut, I., & Heyn, H. (2021). SPOTlight: seeded NMF regression to deconvolute spatial transcriptomics spots with single-cell transcriptomes. Nucleic Acids Research, 49(9), e50. doi:10.1093/nar/gkab043
- Dong, R., & Yuan, G.-C. (2021). SpatialDWLS: accurate deconvolution of spatial transcriptomic data. Genome Biology, 22, 145. doi:10.1186/s13059-021-02362-7
- Lopez, R., Li, B., Keren-Shaul, H., et al. (2022). DestVI identifies continuums of cell types in spatial transcriptomics data. Nature Biotechnology, 40(9), 1360–1369. doi:10.1038/s41587-022-01272-8
- Biancalani, T., Scalia, G., Buffoni, L., et al. (2021). Deep learning and alignment of spatially resolved single-cell transcriptomes with Tangram. Nature Methods, 18(11), 1352–1362. doi:10.1038/s41592-021-01264-7
- Miller, B. F., Huang, F., Atta, L., Sahoo, A., & Fan, J. (2022). Reference-free cell type deconvolution of multi-cellular pixel-resolution spatially resolved transcriptomics data. Nature Communications, 13(1), 2339. doi:10.1038/s41467-022-30033-z
- Li, B., Zhang, W., Guo, C., et al. (2022). Benchmarking spatial and single-cell transcriptomics integration methods for transcript distribution prediction and cell type deconvolution. Nature Methods, 19(6), 662–670. doi:10.1038/s41592-022-01480-9
- Sang-aram, C., Browaeys, R., Seurinck, R., & Saeys, Y. (2023). Spotless, a reproducible pipeline for benchmarking cell type deconvolution in spatial transcriptomics. eLife, 12, RP88431. doi:10.7554/eLife.88431
- Wolf, F. A., Angerer, P., & Theis, F. J. (2018). SCANPY: large-scale single-cell gene expression data analysis. Genome Biology, 19, 15. doi:10.1186/s13059-017-1382-0


コメント