空間トランスクリプトーム解析(spatial transcriptomics)のうちシーケンス型(Visium・Stereo-seq など NGS で読み出す方式)は、リガンドと受容体の両方が、同じフィーチャで検出されます。近くにいることは分かる。しかし、どの細胞が出して、どの細胞が受け取ったのかは分かりません。1フィーチャが混合であることが、この解析に固有の難しさを作ります。
1. 送り手と受け手を、分けられない

scRNA-seq のリガンド–受容体解析では、1つの観測が1つの細胞なので、「T細胞がリガンドを出し、腫瘍細胞が受容体を持つ」と言えました。
シーケンス型では、1つのフィーチャにいる細胞たちの発現が足し合わされています。リガンドと受容体が同じフィーチャで検出されても、同じ細胞の自己分泌かもしれないし、隣り合う別の細胞との会話かもしれません。発現からは、この2つを区別できません。
python
import squidpy as sq
import pandas as pd
# まず、フィーチャをクラスタ(またはドメイン)で括って L-R を検定する
sq.gr.ligrec(
adata, cluster_key="domain",
n_perms=1000, use_raw=False,
)
res = adata.uns["domain_ligrec"]
# 全転写産物なので、候補は数千組に達する
sig = (res["pvalues"] < 0.01).sum().sum()
print("有意な組:", int(sig))
# この数のままでは解釈できない。絞る仕組みが要る
💡 データベースの指定について
COMMOT は、どのリガンド–受容体データベースを使うかを引数で指定します。CellChat 由来のものを使うのが一般的です。引数名は版によって変わることがあるので、公式ドキュメントで確認してください。到達距離(dis_thr)は自分で決める値で、振って結論が保たれるかを必ず確かめます。
COMMOT は、どのリガンド–受容体データベースを使うかを引数で指定します。CellChat 由来のものを使うのが一般的です。引数名は版によって変わることがあるので、公式ドキュメントで確認してください。到達距離(dis_thr)は自分で決める値で、振って結論が保たれるかを必ず確かめます。
2. 全転写産物であることの、利点と裏返し

シーケンス型は、あらかじめ標的を決めずに測ります。だからリガンド–受容体のデータベースの組を、ほぼそのまま使えます。見たい経路を実験前に決めておく必要がありません。これは大きな利点です。
⚠️ その裏返しとして、候補が多すぎる
データベースには数千の組が登録されています。全転写産物を測っていれば、そのほとんどが検定にかかります。有意な組が数百出てきても、そのままでは解釈できません。「候補を絞る仕組みを、自分で用意する」ことが、この解析の実質です。
データベースには数千の組が登録されています。全転写産物を測っていれば、そのほとんどが検定にかかります。有意な組が数百出てきても、そのままでは解釈できません。「候補を絞る仕組みを、自分で用意する」ことが、この解析の実質です。
3. 候補を絞る ─ 3つの手がかり

| 手がかり | 問い | 使うもの |
|---|---|---|
| 細胞型の割合 | その細胞型がそこにいるか | デコンボリューションの結果 |
| 空間の距離 | 届く距離にいるか | 近傍グラフ、または距離をモデルに入れる手法 |
| 下流の応答 | 受け手側で標的遺伝子が動いているか | 転写因子活性やパスウェイ活性 |
python
import numpy as np
# 手がかり1:細胞型の割合と、リガンドの発現が一致するか
P = adata.obsm["cell_type_proportions"]
X = adata.layers["lognorm"]
def assoc(gene):
"""その遺伝子の発現と、各細胞型の割合との相関を返す。"""
y = np.asarray(adata[:, gene].layers["lognorm"].todense()).ravel()
return P.apply(lambda col: np.corrcoef(col, y)[0, 1])
# リガンドと受容体が、それぞれどの細胞型と結びつくかを見る
print("リガンド側:"); print(assoc("CXCL12").round(2).sort_values(ascending=False).head())
print("受容体側:"); print(assoc("CXCR4").round(2).sort_values(ascending=False).head())
# 別々の細胞型と結びつくなら、細胞間の会話の候補になる
# 同じ細胞型と結びつくなら、自己分泌か、その型の中で完結している可能性
💡 リガンドと受容体が、別々の細胞型と結びつくか
リガンドの発現と各細胞型の割合の相関、受容体の発現と各細胞型の割合の相関を、それぞれ計算します。別々の細胞型と結びつくなら、細胞間の会話の候補になります。同じ細胞型と結びつくなら、自己分泌か、その型の中で完結している可能性が高い。混合というハンデを、デコンボリューションの結果で補う考え方です。
リガンドの発現と各細胞型の割合の相関、受容体の発現と各細胞型の割合の相関を、それぞれ計算します。別々の細胞型と結びつくなら、細胞間の会話の候補になります。同じ細胞型と結びつくなら、自己分泌か、その型の中で完結している可能性が高い。混合というハンデを、デコンボリューションの結果で補う考え方です。
python
import commot as ct
# 距離をモデルに入れる。dis_thr は想定する到達距離(µm)
# フィーチャの間隔より短くしても意味が無い点に注意
ct.tl.spatial_communication(
adata,
dis_thr=200, heteromeric=True,
)
ct.tl.communication_direction(adata,
# 到達距離を振って、上位の組が保たれるかを見る
for thr in [150, 200, 400]:
print(thr) # それぞれで走らせ、上位の組を比べる
COMMOT(Cang et al., Nature Methods, 2023)は、細胞間の距離とリガンド–受容体の競合を最適輸送の枠組みで同時に扱い、シグナルの向きまで推定します。シーケンス型のデータにも適用できます。
⚠️ 到達距離は、フィーチャの間隔より短くできない
距離を使って絞る場合、フィーチャの間隔が解像度の下限になります。間隔が 100 µm なら、それより細かい距離の議論はできません。接触依存のシグナルを、隣接という条件で絞ることには限界があります。到達距離を振って、上位の組が保たれるかを確かめてください。
距離を使って絞る場合、フィーチャの間隔が解像度の下限になります。間隔が 100 µm なら、それより細かい距離の議論はできません。接触依存のシグナルを、隣接という条件で絞ることには限界があります。到達距離を振って、上位の組が保たれるかを確かめてください。
4. 下流の応答まで見る
最も説得力があるのは、受け手側で実際に何かが起きていることを示すことです。リガンドの発現が高いフィーチャの近くで、その経路の下流にある転写因子の活性が上がっているか。この確認は、次の記事で扱うパスウェイ・転写因子活性と組み合わせて行います。
⚠️ それでも、発現の共起であることは変わらない
3つの手がかりをすべて満たしても、そのシグナルが実際に伝わった証拠にはなりません。リガンドの転写があっても、タンパク質になっているとは限りません。空間データは候補を絞る道具であって、証明する道具ではありません。
3つの手がかりをすべて満たしても、そのシグナルが実際に伝わった証拠にはなりません。リガンドの転写があっても、タンパク質になっているとは限りません。空間データは候補を絞る道具であって、証明する道具ではありません。
5. チェックリスト
- 有意な組が何組あるかを数え、絞る前提で計画したか
- リガンドと受容体が、それぞれどの細胞型と結びつくかを見たか
- 同じ細胞型と結びつく組を、自己分泌の可能性として扱ったか
- 到達距離を振って、上位の組が保たれるかを確かめたか
- フィーチャの間隔より短い距離を議論していないか
- 受け手側の下流の応答まで確認したか
- 結論を「候補」として書いているか
まとめ
- 1フィーチャが混合なので、送り手と受け手を分けられない。自己分泌と細胞間の会話が、発現からは区別できない。
- 全転写産物なので、L-R の組が制限されない。見たい経路を実験前に決めなくてよい。これは大きな利点。
- その裏返しで候補が多すぎる。絞る仕組みを自分で用意することが、この解析の実質。
- 絞る手がかりは3つ。細胞型の割合・空間の距離・下流の応答。
- リガンドと受容体が別々の細胞型と結びつくかを見れば、混合というハンデを部分的に補える。
- 到達距離は、フィーチャの間隔より短くできない。接触依存の議論には限界がある。
- それでも発現の共起である点は変わらない。候補を絞る道具として使う。
関連記事
- シーケンス型 空間トランスクリプトーム:ニッチ・近傍解析
- シーケンス型 空間トランスクリプトーム:パスウェイ・転写因子活性
- シーケンス型 空間トランスクリプトーム:cell2location 実践
- シーケンス型 空間トランスクリプトーム:空間ドメイン同定
- scRNA-seq解析:細胞間相互作用(cell-cell communication)
- scRNA-seq解析:機能エンリッチメント・パスウェイ解析
- scRNA-seq解析:下流解析の全体像
- scRNA-seq解析の土台:AnnData のデータ構造をリレーショナルDBの発想で理解する
参考文献
- Cang, Z., Zhao, Y., Almet, A. A., et al. (2023). Screening cell–cell communication in spatial transcriptomics via collective optimal transport. Nature Methods, 20(2), 218–228. doi:10.1038/s41592-022-01728-4
- Palla, G., Spitzer, H., Klein, M., et al. (2022). Squidpy: a scalable framework for spatial omics analysis. Nature Methods, 19(2), 171–178. doi:10.1038/s41592-021-01358-2
- 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
- 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
- Badia-i-Mompel, P., Vélez Santiago, J., Braunger, J., et al. (2022). decoupleR: ensemble of computational methods to infer biological activities from omics data. Bioinformatics Advances, 2(1), vbac016. doi:10.1093/bioadv/vbac016
- Schürch, C. M., Bhate, S. S., Barlow, G. L., et al. (2020). Coordinated cellular neighborhoods orchestrate antitumoral immunity at the colorectal cancer invasive front. Cell, 182(5), 1341–1359.e19. doi:10.1016/j.cell.2020.07.005
- Marconato, L., Palla, G., Yamauchi, K. A., et al. (2025). SpatialData: an open and universal data framework for spatial omics. Nature Methods, 22(1), 58–62. doi:10.1038/s41592-024-02212-x
- 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


コメント