イメージング型 空間トランスクリプトーム:空間ドメイン同定 ─ 細胞型とドメインは同じ問題の両端

Spatial transcriptome
📚 この記事について
組織の領域を、教師なしで切り出す工程を扱います。クラスタリングに空間を入れる3つの入れ方、細胞型とドメインが1つのパラメータでつながること、そしてニッチとの違いを整理します。
🔙 前の記事:イメージング型 空間トランスクリプトーム:空間の細胞間コミュニケーション
🔜 次の記事:イメージング型 空間トランスクリプトーム:サブセル局在の解析
📌 前提ニッチ・近傍解析scRNA-seq解析:正規化・クラスタリング

空間トランスクリプトーム解析(spatial transcriptomics)のうちイメージング型(Xenium・CosMx・MERSCOPE など顕微鏡で1分子ずつ数える方式)は、細胞に座標が付いているので、発現と空間の両方を使って組織の領域を切り出すことができます。得られるのは、層・腺管・腫瘍巣といった解剖学的な領域に対応するまとまりです。ここまでの記事で扱ってきた細胞型やニッチとは、また別の単位になります。

1. 空間の入れ方は3つある


図:クラスタリングに空間を入れる、3つの入れ方
図:クラスタリングに空間を入れる、3つの入れ方
入れ方 やること 代表 特徴
特徴量に混ぜる 自分の発現に、近傍の発現を足して1つのベクトルにする BANKSY 強さを1つの値で調節できる
グラフに混ぜる 発現の近さと空間の近さの両方で、グラフを作る グラフニューラルネット系 表現力は高い。学習が要る
あとから平滑化 発現だけで分けてから、近傍の多数決でならす 多数決、マルコフ確率場 手軽。境界が鈍る
python
import scanpy as sc
import squidpy as sq

# まず、空間を使わないクラスタリング。これが比較の基準になる
sc.pp.pca(adata, n_comps=30)
sc.pp.neighbors(adata)
sc.tl.leiden(adata, resolution=1.0, key_added="expr_only", flavor="igraph")

# 組織の上に描いて、どこまで領域が見えているかを確かめる
sq.pl.spatial_scatter(adata, color="expr_only", shape=None)
# ここで既に層構造が見えているなら、空間を足す必要は小さい
💡 空間を使わないクラスタリングが、比較の基準
細胞レベルの QC と正規化でわざと空間情報を使わずにクラスタリングしたのは、このためです。空間を入れて何が良くなったのかは、比べないと分かりません。発現だけで既に層構造が見えているなら、空間を足す必要は小さい。逆に、まったく構造が見えないのに空間を入れて滑らかな領域が出たなら、それは平滑化が作った模様かもしれません。

2. BANKSY ─ 1つのパラメータで両端をつなぐ


図:細胞型とドメインは、同じ問題の両端
図:細胞型とドメインは、同じ問題の両端

BANKSY(Singhal et al., Nature Genetics, 2024)は、細胞を自分の発現と近傍の発現の積空間に埋め込みます。前者が細胞の状態を、後者がその細胞が置かれた微小環境を表します。

重要なのは、この2つの重みを λ という1つの値で調節できることです。

  • λ が小さい:自分の発現を重く見る。→ 細胞型が出てくる。
  • λ が大きい:近傍の発現を重く見る。→ 組織ドメインが出てくる。
python
import scanpy as sc
from banksy import run_banksy

# lambda を変えるだけで、細胞型からドメインへ連続的に移る
for lam in [0.2, 0.8]:
    key = f"banksy_{lam}"
    run_banksy(
        adata, lambda_=lam, k_geom=18, max_m=1,
        resolution=1.0, key_added=key,
    )

# 2つを並べて描く。何が変わったかが一目で分かる
sq.pl.spatial_scatter(
    adata, color=["expr_only", "banksy_0.2", "banksy_0.8"],
    shape=None, ncols=3,
)
# lambda 小 -> 細胞型に近い / lambda 大 -> 組織ドメインに近い
💡 細胞型とドメインは、別の問題ではなかった
従来、細胞型のクラスタリングとドメインの分割は、別々の手法で解かれてきました。BANKSY はこの2つを1つのアルゴリズムの両端として統一しています。原論文は、この方法でヒト前頭前野の皮質層やマウス視覚野の構造を、既存のドメイン分割手法より正確に同定したと報告しています。細胞型の同定でも高い精度を示しており、片方のために入れた道具が、もう片方にも効くという構図です。
💡 近傍の平均だけでなく、勾配も使う
BANKSY の特徴量には、近傍の発現の平均だけでなく発現の空間的な勾配も含まれます。平均だけだと、境界にいる細胞は「両側の混ざったもの」になり、どちらのドメインとも言えなくなります。勾配を入れることで、境界にいることそのものを特徴として捉えられます

3. 手軽にやるなら、あとから平滑化する


専用の手法を導入せずとも、発現だけのクラスタを近傍の多数決でならすだけで、まとまった領域が得られます。まず様子を見るには十分です。

python
import numpy as np
import pandas as pd

# 最も手軽な方法:発現だけで分けてから、近傍の多数決でならす
sq.gr.spatial_neighbors(adata, coord_type="generic",
                        delaunay=True, key_added="dl")
W = adata.obsp["dl_connectivities"]
oh = pd.get_dummies(adata.obs["expr_only"]).to_numpy(dtype=float)

# 2回ならすと、まとまった領域になる
sm = oh.copy()
for _ in range(2):
    sm = W @ sm + sm
lab = np.asarray(adata.obs["expr_only"].cat.categories)[sm.argmax(axis=1)]
adata.obs["domain_smooth"] = pd.Categorical(lab)

# 何%の細胞のラベルが変わったかを見る
changed = (adata.obs["domain_smooth"].astype(str) != adata.obs["expr_only"].astype(str)).mean()
print("変わった細胞の割合:", round(float(changed), 3))
# 大きく変わったなら、それは平滑化が結果を作っているということ
⚠️ 何%のラベルが変わったかを、必ず数える
平滑化は必ず滑らかな結果を返します。滑らかさは、正しさの証拠ではありません。ならす前とならした後で何割の細胞のラベルが変わったかを数えてください。大きく変わったなら、それは元の発現ではなく平滑化そのものが結果を作っているということです。回数や近傍の大きさを変えて、どこまで安定するかを見てください。

4. ドメインとニッチは、何が違うのか


図:ドメインとニッチは、何が違うのか
図:ドメインとニッチは、何が違うのか
空間ドメイン 細胞ニッチ
何を使うか 発現そのもの + 空間 まわりの細胞型の組成
アノテーション 不要(前でも計算できる) 必要
対応するもの 解剖学的な領域(層、腺管、腫瘍巣) 細胞が置かれた環境
誤りの引き継ぎ セグメンテーションの誤りのみ セグメンテーション + 型付けの誤り
💡 両方を出して、対応するかを見る
ドメインは細胞型のラベルを使わないので、アノテーションが正しいかを外から検証する材料になります。ドメインとニッチが対応していれば、両方が信用できます。対応しないなら、どちらかが崩れています。型付けを疑うか、平滑化が強すぎないかを疑ってください。

5. ドメインを解釈する


python
# ドメインが何でできているかを、細胞型の組成で表す
tab = pd.crosstab(adata.obs["banksy_0.8"], adata.obs["celltype"], normalize="index")
print(tab.round(2))

# ドメインごとの特徴遺伝子を出す
sc.tl.rank_genes_groups(adata, groupby="banksy_0.8", method="wilcoxon")
sc.pl.rank_genes_groups_dotplot(adata, n_genes=5)

# 解像度を振って、ドメインの数がどう変わるかを見る
#   組織像と照らして、意味のある境界かを判断する
  • 細胞型の組成で表す。「このドメインは上皮 70%・線維芽細胞 20%」のように。
  • 特徴遺伝子を出す。ドメイン間で差のある遺伝子を見る。ただしパネルの範囲内。
  • 組織像と重ねる。病理学的な構造と対応しているかを、目で確かめる。
⚠️ ドメインの数に、正解は無い
解像度を上げれば、ドメインは細かく分かれます。「いくつが正しい」という基準はありません。組織学的に意味のある境界に対応しているかで判断します。可能なら病理の専門家に見てもらうのが確実です。自分で判断するなら、既知の構造(層、腺管、血管)が1つのドメインとして出てくる解像度を選んでください。

6. 複数サンプルとバッチ


複数のスライドでドメインを比べるなら、まとめてクラスタリングする必要があります。別々にやると、サンプル1のドメイン3とサンプル2のドメイン3が、同じものを指すとは限りません。

💡 空間を考慮したバッチ補正
BANKSY の原論文は、この手法が品質管理と、空間を考慮したバッチ効果の補正にも使えると報告しています。通常の バッチ補正は空間を見ませんが、空間の特徴量を含んだ表現の上で補正すれば、組織構造を保ったまま系統差を減らせる可能性があります。

7. チェックリスト


  • 空間を使わないクラスタリングを、基準として残した
  • 空間を入れて何が変わったかを、並べて比べたか
  • 平滑化なら、何%のラベルが変わったかを数えたか
  • パラメータを振って、どこまで結果が安定するかを見たか
  • ドメインを細胞型の組成で表したか
  • 組織像と重ねて、既知の構造と対応するか確かめたか
  • ドメインとニッチの対応を確認したか
  • 複数サンプルなら、まとめてクラスタリングしたか

まとめ


  • 空間の入れ方は3つ。特徴量に混ぜる・グラフに混ぜる・あとから平滑化
  • 空間を使わないクラスタリングが、比較の基準。何が良くなったかは比べないと分からない。
  • BANKSY は λ ひとつで、細胞型とドメインの間を連続的に移動できる。この2つは別の問題ではなかった(Singhal et al., 2024)。
  • 近傍の平均だけでなく勾配も使うので、境界にいる細胞を境界として捉えられる。
  • 平滑化は必ず滑らかな結果を返す。滑らかさは正しさの証拠ではない。何%のラベルが変わったかを数える。
  • ドメインはアノテーション前でも計算できる。だから型付けを外から検証する材料になる。
  • ドメインの数に正解は無い。組織学的に意味のある境界かで判断する。

関連記事


参考文献


  • Singhal, V., Chou, N., Lee, J., et al. (2024). BANKSY unifies cell typing and tissue domain segmentation for scalable spatial omics data analysis. Nature Genetics, 56(3), 431–441. doi:10.1038/s41588-024-01664-3
  • 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
  • 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
  • Petukhov, V., Xu, R. J., Soldatov, R. A., et al. (2022). Cell segmentation in imaging-based spatial transcriptomics. Nature Biotechnology, 40(3), 345–354. doi:10.1038/s41587-021-01044-w
  • Janesick, A., Shelansky, R., Gottscho, A. D., et al. (2023). High resolution mapping of the tumor microenvironment using integrated single-cell, spatial and in situ analysis. Nature Communications, 14(1), 8353. doi:10.1038/s41467-023-43458-x
  • 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
  • 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

コメント

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