シーケンス型 空間トランスクリプトーム:スライス整列と 3D 再構成

Spatial transcriptome
📚 この記事について
連続切片を物理的に重ね合わせ、3D として扱う工程を扱います。なぜ座標だけでは重ならないのか、発現をどう手がかりに使うのか、そして積み上げた 3D に何を期待してよいのかを整理します。
🔙 前の記事:シーケンス型 空間トランスクリプトーム:複数スライスの統合
🔜 次の記事:シーケンス型 空間トランスクリプトーム:空間マルチオミクス
📌 前提複数スライスの統合データ読み込みとデータ構造

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

1. 切片は、形が保たれていない


図:連続切片は、同じ形をしていない
図:連続切片は、同じ形をしていない
  • 変形:切る過程で伸びる、縮む、ねじれる。
  • 裂けや欠け:切片の一部が失われる。
  • 向きの違い:スライドに載せるときの角度が毎回違う。
  • 写る範囲の違い:切る位置が進むにつれて、組織の断面そのものが変わる。
⚠️ 全体が重なることを前提にした整列は、そこで破れる
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枚あたりのデータの質が上がる、という取引です。問いが「立体構造」でないなら、こちらのほうが有利なことがあります。

4. 積み上げた 3D は、思ったより粗い


図:積み上げても、3D としては粗い
図:積み上げても、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 で語るときは、慎重になってください。

6. チェックリスト


  • 切片が変形していることを前提に手法を選んだか
  • 重なりが部分的でよい手法が必要な状況か、判断したか
  • 発現と座標の両方を使ったか
  • パラメータを振って、対応の安定性を見たか
  • 3D にするか、1枚にまとめるかを、問いから決めたか
  • 面内の間隔と面の間隔の桁の違いを理解しているか
  • 既知の構造の連続性で、整列を確かめたか
  • 「同じ細胞」ではないことを、解釈に織り込んでいるか

まとめ


  • 連続切片は同じ形をしていない。伸び・縮み・裂け・向きの違いがある。
  • 全体が重なる前提の整列は破れる。重なりが部分的でよいという立場の手法がある(Liu et al., 2023)。
  • 発現と座標の両方を使うほうが正確(Zeira et al., 2022)。形が崩れても、発現が手がかりとして残る。
  • パラメータを振って、対応の安定性を確かめる。
  • 3D にするか、1枚にまとめるかを問いから決める。後者は検出力が上がる。
  • 切片の厚みは、フィーチャの間隔よりずっと小さい。積み上げた 3D は等方的なボリュームにはならない。
  • 整列しているのは「同じ細胞」ではない。似た組成の場所どうしを対応づけている。

関連記事


参考文献


  • 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

コメント

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