空間トランスクリプトーム解析(spatial transcriptomics)のうちシーケンス型(Visium・Stereo-seq など NGS で読み出す方式)は、2次元の切片からデータを得ます。連続した切片を重ねれば 3 次元にできるはずですが、実際には切片どうしが同じ形をしていません。切る・貼る・染めるという工程で、組織は必ず変形します。だから、平行移動と回転だけでは重なりません。
1. 切片は、形が保たれていない

- 変形:切る過程で伸びる、縮む、ねじれる。
- 裂けや欠け:切片の一部が失われる。
- 向きの違い:スライドに載せるときの角度が毎回違う。
- 写る範囲の違い:切る位置が進むにつれて、組織の断面そのものが変わる。
⚠️ 全体が重なることを前提にした整列は、そこで破れる
PASTE2 の論文(Liu, Zeira & Raphael, Genome Research, 2023)は、既存の手法の多くが「切片間で組織の形態がおおむね保たれている」と仮定しているが、この仮定は生物学的にも技術的にも、しばしば破れると指摘しています。切片ごとに固有の領域があってよい、重なりは部分的でよいという立場をとる手法が必要になります。
PASTE2 の論文(Liu, Zeira & Raphael, Genome Research, 2023)は、既存の手法の多くが「切片間で組織の形態がおおむね保たれている」と仮定しているが、この仮定は生物学的にも技術的にも、しばしば破れると指摘しています。切片ごとに固有の領域があってよい、重なりは部分的でよいという立場をとる手法が必要になります。
2. 発現も手がかりに使う

PASTE(Zeira et al., Nature Methods, 2022)は、発現の類似度と物理的な距離の両方を使って、隣り合う切片のフィーチャどうしを対応づけます。最適輸送の枠組みで、この対応を確率的に解きます。
原論文は、発現だけ、あるいは座標だけを使うより、両方を使うほうが正確に対応づけられることを示しています。形が崩れていても、発現が手がかりとして残っているからです。
python
import paste as pst
import numpy as np
# 隣り合う2枚を対応づける
# alpha は「発現をどれだけ重く見るか」。0 なら座標だけ
pi = pst.pairwise_align(slice1, slice2, alpha=0.1)
print(pi.shape) # (スライス1のフィーチャ数, スライス2のフィーチャ数)
# 対応づけをもとに、座標を重ねる
aligned = pst.stack_slices_pairwise([slice1, slice2], [pi])
# alpha を振って、対応づけがどう変わるかを見る
for a in [0.0, 0.1, 0.5]:
pi_a = pst.pairwise_align(slice1, slice2, alpha=a)
print(a, "対応の集中度:", round(float((pi_a > 1e-6).mean()), 4))
💡 パラメータを振って、安定性を見る
発現と座標の重みを決めるパラメータがあります。値を振って、対応づけがどう変わるかを見てください。大きく変わるなら、その整列は信用できません。どの値でも似た対応になるなら、それは組織の構造を捉えている証拠になります。
発現と座標の重みを決めるパラメータがあります。値を振って、対応づけがどう変わるかを見てください。大きく変わるなら、その整列は信用できません。どの値でも似た対応になるなら、それは組織の構造を捉えている証拠になります。
3. 3D にするか、1枚にまとめるか
| やり方 | 得られるもの | 向いている場面 |
|---|---|---|
| 順に積み上げる | 3D の構造 | 組織の立体的な形を見たい |
| 代表切片にまとめる | 1枚に集約された高品質なデータ | 検出力を上げたい |
python
# 3D にせず、1枚の代表切片にまとめるという道もある
# 複数枚の情報が1枚に集まるので、統計が強くなる
init = slice1.copy()
center, pis = pst.center_align(
init, [slice1, slice2, slice3], alpha=0.1,
)
print(center.shape)
# 代表切片の上で、クラスタリングや差次発現を行う
# 1枚ずつ解析するより、検出力が上がる
💡 1枚にまとめると、統計が強くなる
複数の切片の情報を1枚に集約すると、細胞型の同定や差次発現の検出が改善することがPASTE の原論文で示されています。3D の形を見ることをあきらめる代わりに、1枚あたりのデータの質が上がる、という取引です。問いが「立体構造」でないなら、こちらのほうが有利なことがあります。
複数の切片の情報を1枚に集約すると、細胞型の同定や差次発現の検出が改善することがPASTE の原論文で示されています。3D の形を見ることをあきらめる代わりに、1枚あたりのデータの質が上がる、という取引です。問いが「立体構造」でないなら、こちらのほうが有利なことがあります。
4. 積み上げた 3D は、思ったより粗い

ここは、はっきり理解しておく必要があります。
⚠️ 切片の厚みは、フィーチャの間隔よりずっと小さい
PASTE の原論文自身が、この限界を述べています。各層の厚みは、フィーチャの大きさやフィーチャ間の距離に比べて非常に小さいため、積み上げて得られる 3D 構造には限りがある、というものです。面内が 100 µm 間隔で、切片が 10 µm 厚なら、縦方向にはごく薄い層が並ぶだけです。等方的な 3D ボリュームにはなりません。
PASTE の原論文自身が、この限界を述べています。各層の厚みは、フィーチャの大きさやフィーチャ間の距離に比べて非常に小さいため、積み上げて得られる 3D 構造には限りがある、というものです。面内が 100 µm 間隔で、切片が 10 µm 厚なら、縦方向にはごく薄い層が並ぶだけです。等方的な 3D ボリュームにはなりません。
python
# 複数枚を順に対応づけて、積み上げる
slices = [s1, s2, s3, s4]
pis = [pst.pairwise_align(slices[i], slices[i + 1], alpha=0.1)
for i in range(len(slices) - 1)]
new_slices = pst.stack_slices_pairwise(slices, pis)
# z 座標を与える。切片の厚みが、そのまま面と面の間隔になる
thickness = 10.0 # µm
for i, sl in enumerate(new_slices):
xy = sl.obsm["spatial"]
z = np.full((xy.shape[0], 1), i * thickness)
sl.obsm["spatial3d"] = np.hstack([xy, z])
# 面内の間隔と、面と面の間隔を比べる
print("面内の間隔:", 100, "µm / 面の間隔:", thickness, "µm")
# 桁が違うことを、図にする前に理解しておく
それでも、大きな構造の連続性は追えます。血管が何枚の切片にまたがっているか、腫瘍巣が奥行き方向にどう広がっているか。サブミクロン解像度のデータを多数の切片で取った例では、胚のような複雑な立体構造の再構成が実際に行われています。
5. 整列がうまくいったかを、どう確かめるか
- 既知の構造を重ねる。血管や大きな腺管が、切片をまたいで連続するか。
- 組織像を重ねる。整列後の座標で H&E 画像を並べ、目で見る。
- パラメータを振る。重みを変えても対応が保たれるか。
- ドメインの連続性を見る。同じドメインが、隣の切片の同じ位置に来るか。
⚠️ 整列は、対応する点があることを前提にしている
連続切片には、そもそも同じ細胞はいません。10 µm 離れた別の断面を見ています。対応づけているのは「似た組成の場所どうし」であって、「同じ細胞」ではありません。この区別は、結果を解釈するときに効いてきます。とくに細胞レベルの結論を 3D で語るときは、慎重になってください。
連続切片には、そもそも同じ細胞はいません。10 µm 離れた別の断面を見ています。対応づけているのは「似た組成の場所どうし」であって、「同じ細胞」ではありません。この区別は、結果を解釈するときに効いてきます。とくに細胞レベルの結論を 3D で語るときは、慎重になってください。
6. チェックリスト
- 切片が変形していることを前提に手法を選んだか
- 重なりが部分的でよい手法が必要な状況か、判断したか
- 発現と座標の両方を使ったか
- パラメータを振って、対応の安定性を見たか
- 3D にするか、1枚にまとめるかを、問いから決めたか
- 面内の間隔と面の間隔の桁の違いを理解しているか
- 既知の構造の連続性で、整列を確かめたか
- 「同じ細胞」ではないことを、解釈に織り込んでいるか
まとめ
- 連続切片は同じ形をしていない。伸び・縮み・裂け・向きの違いがある。
- 全体が重なる前提の整列は破れる。重なりが部分的でよいという立場の手法がある(Liu et al., 2023)。
- 発現と座標の両方を使うほうが正確(Zeira et al., 2022)。形が崩れても、発現が手がかりとして残る。
- パラメータを振って、対応の安定性を確かめる。
- 3D にするか、1枚にまとめるかを問いから決める。後者は検出力が上がる。
- 切片の厚みは、フィーチャの間隔よりずっと小さい。積み上げた 3D は等方的なボリュームにはならない。
- 整列しているのは「同じ細胞」ではない。似た組成の場所どうしを対応づけている。
関連記事
- シーケンス型 空間トランスクリプトーム:複数スライスの統合
- シーケンス型 空間トランスクリプトーム:空間マルチオミクス
- シーケンス型 空間トランスクリプトーム:データ読み込みとデータ構造
- シーケンス型 空間トランスクリプトーム:空間ドメイン同定
- scRNA-seq解析:サンプル統合とバッチ補正 ─ Harmony
- scRNA-seq解析:下流解析の全体像
- scRNA-seq解析:正規化・特徴選択・次元削減・クラスタリング
- scRNA-seq解析の土台:AnnData のデータ構造をリレーショナルDBの発想で理解する
参考文献
- Zeira, R., Land, M., Strzalkowski, A., & Raphael, B. J. (2022). Alignment and integration of spatial transcriptomics data. Nature Methods, 19(5), 567–575. doi:10.1038/s41592-022-01459-6
- Liu, X., Zeira, R., & Raphael, B. J. (2023). Partial alignment of multislice spatially resolved transcriptomics data. Genome Research, 33(7), 1124–1132. doi:10.1101/gr.277670.123
- Chen, A., Liao, S., Cheng, M., et al. (2022). Spatiotemporal transcriptomic atlas of mouse organogenesis using DNA nanoball-patterned arrays. Cell, 185(10), 1777–1792. doi:10.1016/j.cell.2022.04.003
- 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
- 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
- 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
- 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
- Ståhl, P. L., Salmén, F., Vickovic, S., et al. (2016). Visualization and analysis of gene expression in tissue sections by spatial transcriptomics. Science, 353(6294), 78–82. doi:10.1126/science.aaf2403
- 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


コメント