イメージング型 空間トランスクリプトーム解析の全体像 ─ 細胞は測定されるのではなく、作られる

Spatial transcriptome
📚 この記事について
イメージング型(1分子を顕微鏡で数える方式)の解析トラックの入口です。何が測れて何が測れないのか、なぜセグメンテーションがすべてを決めるのかを、地図として示します。個別の手順は、ここから各記事へ分かれます。
🔙 前の記事空間トランスクリプトーム解析とは ─ シーケンス型とイメージング型の違いと選び方
🔜 次の記事:イメージング型 空間トランスクリプトーム:前処理の全体像
📌 前提scRNA-seqの前処理 入門AnnData のデータ構造

空間トランスクリプトーム解析(spatial transcriptomics)のうちイメージング型(Xenium・CosMx・MERSCOPE など顕微鏡で1分子ずつ数える方式)は、あらかじめ決めた遺伝子パネルについて、1分子ずつの位置を組織の中でそのまま読み取ります。サブセル解像度で、どの分子がどこにあったかが分かる。ここまでは直感的です。ところが解析を始めると、すぐに大きな違いに突き当たります。手元にあるのは発現行列ではなく、点の集まりだということです。

1. 測れるもの、測れないもの


測れるものは、1分子ごとの座標と遺伝子名です。組織を壊さずに、その場で読み取ります。核染色の画像も同時に得られるので、形態と発現を同じ座標の上で見られます。

測れないものが2つあります。

  • パネルにない遺伝子。プローブを設計した遺伝子しか見えません。実験の前に、何を見るかを決めておく必要があります。
  • 細胞の境界。核は染色で見えますが、細胞質がどこまで広がっているかは写りません。分子がどの細胞のものかは、あとから計算で決めることになります。

2. 出発点が「行列」ではない


これが、イメージング型の解析を根本から規定する事実です。

図:出発点は「行列」ではなく「点の集まり」
図:出発点は「行列」ではなく「点の集まり」

scRNA-seq でも、細胞 × 遺伝子の行列が最初から手元にありました。イメージング型では違います。手元にあるのは、x 座標・y 座標・遺伝子名が並んだ、数千万から数億行の表です。

python
import dask.dataframe as dd

# 出発点は行列ではなく、点の表であることを確かめる
tx = sdata.points["transcripts"]
print(tx.columns.tolist())
# ['x', 'y', 'z', 'feature_name', 'qv', ...]
print(len(tx))                     # 分子の総数

# 遺伝子ごとの分子数を数える。これがパネルの実態
cnt = tx["feature_name"].value_counts().compute()
print(cnt.head(10))
print("パネルの遺伝子数:", cnt.index.nunique())
💡 細胞という単位は、測定されたものではなく、作られたもの
細胞 × 遺伝子の行列は、分子を細胞に割り当てて初めて生まれます。つまり、この行列は測定結果そのものではなく、セグメンテーションという計算の産物です。同じ生データから、手法を変えれば別の細胞集団が出てきます。「何個の細胞がいたか」さえ、手法によって変わります。この事実は、イメージング型のあらゆる解析に影響します。

3. 化学の3系統


主要な3つのプラットフォームは、同じ目的に別の道で到達します。この違いが、感度と背景ノイズの差になって現れます。

プラットフォーム 検出の化学 特徴
Xenium(10x Genomics) パドロックプローブのライゲーション + ローリングサークル増幅 少数のプローブを酵素で増幅する
CosMx(Bruker Spatial Biology) バーコードプローブの巡回ハイブリダイゼーション(分岐鎖で増幅) パネルを大きくしやすい
MERSCOPE(Vizgen) MERFISH の組合せバーコード。1転写産物を多数のプローブで覆う 誤り訂正が設計に組み込まれている

3つとも FFPE 検体に対応しています。病理のアーカイブをそのまま使えるのは、この方式の大きな利点です。

4. パネルの大きさ


パネル 遺伝子数の目安
標準的な既製パネル およそ 300〜1,000
Xenium Prime 5K 約 5,000
CosMx 6K 約 6,000
CosMx 全転写産物パネル 約 19,000 の標的

以前は数十から千程度が上限でしたが、現在は数千規模の探索用パネルが各社から出ています。ただし、パネルを大きくすれば良いとは限りません

⚠️ パネルを広げると、1遺伝子あたりの検出は薄くなる
6種類のがんで各プラットフォームを比較した研究(Cervilla et al., Genome Biology, 2026)は、高プレックス化について重要な指摘をしています。パネルの拡大は細胞型アノテーションを改善し、免疫細胞の細分化を可能にした一方で、転写産物の検出効率は下がり、スパース性は高くなったというものです。著者らは、パネルの性能は用途ごとに実測して評価すべきだと述べています。「遺伝子数が多いほど良い」という選び方は、成り立ちません。

同研究では、それぞれの完全パネルを使った場合、CosMx が全ての腫瘍種で Xenium より 2〜3 倍多くの遺伝子と転写産物を1細胞あたりで検出したことも報告されています。これはパネルの大きさと整合する結果です。プラットフォームの性能とパネルの中身は、切り分けて考える必要があります。

5. 解析の全体像


図:イメージング型 空間トランスクリプトーム解析の流れ
図:イメージング型 空間トランスクリプトーム解析の流れ

7つの段階のうち、正規化から先は scRNA-seq の手順とほぼ同じです。固有の判断は前半に集中しており、その中でも 3 のセグメンテーションがすべてを決めます。

bash
# イメージング型の解析に必要な最小構成
conda create -y -n imaging python=3.11
conda activate imaging

# 読み込みと空間解析の土台
pip install spatialdata spatialdata-io spatialdata-plot squidpy scanpy

# セグメンテーション
pip install cellpose            # 画像ベース
# Baysor は Julia、ProSeg は Rust の実装が本家(別途インストール)
python
import spatialdata_io as sdio

# 各社の出力を、そのまま読める
sdata = sdio.xenium("data/xenium_run")
# sdata = sdio.cosmx("data/cosmx_run")
# sdata = sdio.merscope("data/merscope_run")

print(sdata)
# ├── Points   : 'transcripts'   1分子ごとの座標(数千万〜数億行)
# ├── Images   : 'morphology'    核染色などの画像
# ├── Shapes   : 'cell_boundaries' / 'nucleus_boundaries'
# └── テーブル   : 'table'         細胞 × 遺伝子(既に切られている場合)
💡 SpatialData が点も画像も同じ枠に収める
SpatialData(Marconato et al., Nature Methods, 2025)は、Points(1分子ごとの座標)、Images(核染色などの画像)、Shapes(細胞や核の輪郭)、テーブル(細胞 × 遺伝子)を同じ座標系の上に保持します。イメージング型では Points に数千万〜数億行が入るので、遅延読み込みで扱える枠組みがあることが実務上とても重要です。

6. セグメンテーションが最大の難所


Segger の論文(Heidari et al., bioRxiv, 2025)は、この問題を端的に述べています。転写産物を正しく由来細胞に割り当てることは、ほぼすべての下流解析にとって決定的でありながら、イメージング型の弱点であり続けている。

図:セグメンテーションの3系統と、避けられないトレードオフ
図:セグメンテーションの3系統と、避けられないトレードオフ
系統 考え方 代表 得意 / 不得意
画像ベース 核や膜の染色から輪郭を引く Cellpose、StarDist 速い。ただし分子を割り当てる仕組みを持たない
転写産物ベース 分子の集まり方から細胞を推定する Baysor、ProSeg 染色が弱くても動く。計算が重い
ハイブリッド 画像と分子の両方を使う Segger、BIDCell 両者の長所を取る。参照や学習が要る
⚠️ 膜の染色は、たいてい無い
画像ベースの手法で細胞の輪郭をきれいに引くには、細胞膜の染色があるのが理想です。しかしイメージング型のデータの多くには膜染色がありません。核だけを検出して、そこからほとんど広げない場合、細胞質にある転写産物を取り逃がします。逆に大きく広げれば、隣の細胞の分子が混ざります。どちらに寄せるかを、自分で決めることになります。

Baysor(Petukhov et al., Nature Biotechnology, 2022)は、マルコフ確率場と EM 法で、分子の集まり方から細胞を推定します。核染色などの事前情報を priors として渡すこともできますが、分子の位置と種類だけでも動きます

7. 細胞の数だけでは、良し悪しが決まらない


ここは、この分野を読むうえで知っておくと役に立つ点です。

Baysor の論文は、既存のツールと比べて細胞の数がほぼ倍になり、しかもアーティファクトが減ったと報告しています。一方で Segger の論文は、Baysor の出す過剰な細胞数は過分割の兆候であると述べています。

💡 同じ数字が、逆向きに解釈されている
「細胞が多く取れた」という同一の結果が、一方では感度の向上、他方では過分割と読まれています。どちらかが間違っているというより、細胞数という指標だけでは品質を判定できないということです。評価には、細胞の純度(互いに排他的なはずのマーカーが同じ細胞に混ざっていないか)のような別の観点が要ります。ベンチマークの数字を読むときは、何を良いとみなしているかを先に確かめてください。

独立したベンチマークでも、同じ構図が確認されています。10 種類のマウス組織で複数の手法を比較した研究は、セグメンテーション手法が「分子をどれだけ回収するか」と「細胞の純度を保つか」の間の根本的なトレードオフに直面すること、そしてそのトレードオフの深刻さが組織によって変わることを示しました。平均性能では ProSeg が最も高かったものの、その差は組織によって幅がありました。

⚠️ 「万能の手法」を探さない
組織によって最適が変わるのですから、他人の組織で1位だった手法が、自分の組織で1位である保証はありません。複数の手法を自分のデータで走らせ、細胞数・面積・マーカーの純度を比べるのが、遠回りに見えて確実な進め方です。セグメンテーションをやり直すと、その先の工程はすべてやり直しになります。だからこそ、ここで時間をかける価値があります。

8. QC が scRNA-seq と違うところ


イメージング型の QC には、scRNA-seq に存在しない工程が1つあります。転写産物レベルの QC です。

python
import numpy as np

# 転写産物レベルの QC ─ ここは scRNA-seq に無い工程
# 1. 対照プローブの割合を見る(偽陽性の目安)
names = cnt.index.astype(str)
ctrl = names.str.contains("NegControl|BLANK|Negative", case=False)
rate = cnt[ctrl].sum() / cnt.sum()
print("対照プローブの割合:", round(float(rate) * 100, 3), "%")

# 2. 信号の品質スコアで、確からしくない分子を落とす
tx_good = tx[tx["qv"] >= 20]
print("残る割合:", round(len(tx_good) / len(tx), 3))

# 対照プローブそのものは、解析から外す
tx_good = tx_good[~tx_good["feature_name"].isin(cnt[ctrl].index)]
指標 何を見るか
対照プローブの割合 存在しない配列を狙ったプローブがどれだけ光ったか。偽陽性の目安
信号の品質スコア その分子の読み取りがどれだけ確からしいか
細胞あたりの分子数 少なすぎる細胞は、型を決められない
細胞の面積 大きすぎる細胞は、複数細胞をまとめている
面積あたりの分子数 低ければ、輪郭を広げすぎている疑い
💡 対照プローブは、データの信頼性そのもの
各社は、生体内に存在しない配列を狙った対照プローブを、実際のパネルに混ぜて出荷しています。これが光れば、それは間違いなく偽陽性です。その割合は、そのデータの背景ノイズの水準をそのまま表します。解析の最初に必ず確認し、対照プローブ自体は解析から外してください。外し忘れると、クラスタリングや細胞型アノテーションに紛れ込みます。
python
import scanpy as sc
import squidpy as sq

# セグメンテーションが済んだあと、細胞レベルの QC に入る
adata = sdata["table"].copy()
sc.pp.calculate_qc_metrics(adata, inplace=True, log1p=False)

# 1. 分子数が極端に少ない細胞は、型を決められない
adata = adata[adata.obs["total_counts"] >= 10].copy()

# 2. 面積が極端に大きい細胞は、複数細胞をまとめている
hi = np.quantile(adata.obs["cell_area"], 0.99)
adata = adata[adata.obs["cell_area"] <= hi].copy()

# 3. 面積あたりの分子数。低ければ、広げすぎている疑い
adata.obs["density"] = adata.obs["total_counts"] / adata.obs["cell_area"]
sq.pl.spatial_scatter(adata, color="density", shape=None)
⚠️ セグメンテーション由来のダブレット
2つの細胞を1つにまとめてしまうと、その細胞は2種類のプロファイルが混ざったものになります。scRNA-seq のダブレットと見かけは似ていますが、原因が違います。scRNA-seq では実験由来、イメージング型では計算由来です。だから、セグメンテーションを直せば減らせます。面積が大きく、互いに排他的なはずのマーカーを同時に持つ細胞を疑ってください。

9. 細胞型アノテーション ─ デコンボリューションは要らない


セグメンテーションが済めば、1細胞に1つのラベルを付ける問題になります。scRNA-seq のアノテーション手法が、そのまま使えます。混合を割合に分解する必要はありません。

ただし、パネルの制約が効いてきます。

python
# パネルの遺伝子と、参照 scRNA-seq の共通部分を数える
common = adata.var_names.intersection(ref.var_names)
print("パネル:", adata.n_vars, "/ 共通:", len(common))

# 通常のクラスタリング(ここは scRNA-seq と同じ)
adata.layers["counts"] = adata.X.copy()
sc.pp.normalize_total(adata)
sc.pp.log1p(adata)
sc.pp.pca(adata, n_comps=30)
sc.pp.neighbors(adata)
sc.tl.umap(adata)
sc.tl.leiden(adata, resolution=1.0)

# 検証:マーカーを UMAP に投影する
markers = ["EPCAM", "PTPRC", "CD3D", "CD68", "COL1A1"]
markers = [g for g in markers if g in adata.var_names]
sc.pl.umap(adata, color=markers + ["leiden"], ncols=3)

# 検証:同じマーカーを、組織の上にも投影する
sq.pl.spatial_scatter(adata, color=markers, shape=None, ncols=3)
⚠️ 参照は全転写産物、手元はパネルだけ
参照に使う scRNA-seq は全転写産物を持っていますが、手元のデータはパネルの遺伝子しかありません。使えるのは共通部分だけです。参照側で細胞型を分けていたマーカーが、パネルに入っていないことは実際に起こります。その場合、その2つの型は区別できません。パネルを設計する段階で、見分けたい細胞型のマーカーが入っているかを確認しておく必要があります。

アノテーションの結果は、必ず検証します。マーカー遺伝子の発現を UMAP に投影するのが基本です。見るべきことは3つあります。

  • 他のクラスタも、同じマーカーを発現していないか。していれば、そのマーカーは特異的でないか、ラベルが誤っている。
  • そのクラスタの全体で発現しているか、一部だけか、それとも弱いか。一部だけなら、そのクラスタはさらに細かい型を含んでいる。
  • 複数のクラスタにまたがって発現しているマーカーはないか。あれば、そのマーカーで分けようとした型は分けられていない。

空間データでは、これに加えて組織の上への投影も行います。上皮マーカーが上皮の領域に、免疫マーカーが免疫浸潤の領域に出ていれば、型付けは組織構造と整合しています。

⚠️ 組織学的にありえない場所にマーカーが光ったら
たとえば上皮にしかないはずの型が間質のクラスタで光る。こういうときは、QC の失敗か、セグメンテーション由来の混入(ダブレット)を疑ってください。イメージング型では、輪郭を広げすぎたことや、細胞が密に詰まった領域での取り違えが典型的な原因です。アノテーションのパラメータを触る前に、細胞レベルの QC(面積・分子数・面積あたりの分子数)に戻って確認します。

10. 下流解析でできること


  • ニッチ・近傍解析:どの細胞型がどの細胞型の隣にいるかを統計的に評価する。単一細胞解像度があるので、この解析はとくに素直に効く。
  • 細胞間コミュニケーションscRNA-seq のリガンド–受容体解析に、実際に隣接しているかという制約を加える。
  • 空間ドメインの同定:発現と空間の両方を使って組織の領域を切り出す。
  • 空間可変遺伝子(SVG):空間的なパターンを持つ遺伝子を検出する。ただしパネルの範囲内に限られる。
  • サブセル局在:分子の座標が残っているので、核内か細胞質かといった細胞内の位置まで見られる。これはこの方式に固有の強み。
  • パスウェイ・転写因子活性エンリッチメント解析を細胞ごとに行う。パネルの遺伝子数が制約になる。

11. このトラックの記事


まとめ


  • イメージング型は1分子ごとの座標を測る。その代わり、パネルにない遺伝子は見えない
  • 出発点は行列ではなく、点の集まり。細胞 × 遺伝子の行列は、セグメンテーションをして初めて生まれる。
  • つまり細胞という単位は、測定されたものではなく作られたもの。手法を変えれば、細胞の数さえ変わる。
  • パネルは大きいほど良いわけではない。拡大するとアノテーションは改善するが、検出効率は下がる(Cervilla et al., 2026)。
  • セグメンテーションは3系統(画像ベース・転写産物ベース・ハイブリッド)。いずれも分子の回収量と細胞の純度のトレードオフから逃れられない。
  • 細胞数という指標だけでは品質を判定できない。同じ「細胞が多く取れた」が、感度向上とも過分割とも読まれている。
  • QC には 転写産物レベルという scRNA-seq に無い工程がある。対照プローブの割合を必ず見て、対照プローブ自体は解析から外す。
  • アノテーションにデコンボリューションは要らないが、参照との共通遺伝子はパネルの範囲に限られる

関連記事


  • 空間トランスクリプトーム解析とは ─ シーケンス型とイメージング型の違いと選び方
  • イメージング型 空間トランスクリプトーム:前処理の全体像
  • イメージング型 空間トランスクリプトーム:セグメンテーション手法の選び方
  • イメージング型 空間トランスクリプトーム:ニッチ・近傍解析
  • scRNA-seqの前処理 入門 ─ 全体像と進め方をやさしく解説
  • scRNA-seq解析:データの読み込みと品質管理(QC)
  • scRNA-seq解析:正規化・特徴選択・次元削減・クラスタリング
  • scRNA-seq解析:細胞型アノテーション手法の全体像
  • scRNA-seq解析:細胞型アノテーション(手動)
  • scRNA-seq解析:ダブレット検出の基本(Scrublet)
  • scRNA-seq解析の土台:AnnData のデータ構造をリレーショナルDBの発想で理解する

参考文献


  • 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
  • Stringer, C., Wang, T., Michaelos, M., & Pachitariu, M. (2021). Cellpose: a generalist algorithm for cellular segmentation. Nature Methods, 18(1), 100–106. doi:10.1038/s41592-020-01018-x
  • Heidari, E., Moorman, A., Unyi, D., et al. (2025). Segger: fast and accurate cell segmentation of imaging-based spatial transcriptomics data. bioRxiv(プレプリント). doi:10.1101/2025.03.14.643160
  • Schmidt, U., Weigert, M., Broaddus, C., & Myers, G. (2018). Cell detection with star-convex polygons. In Medical Image Computing and Computer Assisted Intervention (MICCAI) 2018, 265–273. doi:10.1007/978-3-030-00934-2_30
  • 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
  • Cervilla, S., Grases, D., Perez, E., et al. (2026). A technical comparison of spatial transcriptomics platforms across six cancer types. Genome Biology, 27, 22. doi:10.1186/s13059-026-03937-y
  • 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
  • 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
  • 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

コメント

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