シーケンス型 空間トランスクリプトーム:組織画像からの発現予測

Spatial transcriptome
📚 この記事について
H&E 画像から遺伝子発現を予測する取り組みを扱います。何が予測できて何ができないのか、評価でいちばん多い誤りは何か、そしてこの技術を何に使うべきかを整理します。
🔙 前の記事:シーケンス型 空間トランスクリプトーム:空間マルチオミクス
🔜 次の記事:シーケンス型 空間トランスクリプトーム:空間の基盤モデル
📌 前提空間ドメイン同定scRNA-seq解析:正規化・クラスタリング

空間トランスクリプトーム解析(spatial transcriptomics)のうちシーケンス型(Visium・Stereo-seq など NGS で読み出す方式)は、組織像と発現が同じ座標に載っています。そこで、画像から発現を予測するという発想が出てきます。実際に、乳がんの検体で 30,612 のフィーチャと組織像を対応づけて学習した研究では、100 µm の解像度で100 以上の遺伝子の発現をH&E 画像から予測できることが示されました(He et al., Nature Biomedical Engineering, 2020)。しかもそのモデルは、再学習なしに別のデータセットへも一般化しています。

1. 何が予測できて、何が予測できないか


図:見た目に現れるものだけが、予測できる
図:見た目に現れるものだけが、予測できる

原理を考えれば、答えははっきりしています。予測できるのは、形態と相関する成分だけです。

予測しやすい 予測しにくい
細胞の密度と関係する遺伝子 形態に現れない制御の違い
腫瘍と間質を分ける遺伝子 同じ見た目の細胞の、状態の違い
増殖に関わる遺伝子 発現量が小さい遺伝子
発現量が大きく、差もはっきりしている遺伝子 染色に写らない分子の変化
⚠️ 予測できることと、測ったことは違う
モデルが返すのは、「この見た目なら、発現はこのくらいだろう」という推定です。測定値ではありません。予測値をそのまま実測値のように扱って差次発現解析にかければ、形態の違いを発現の違いとして報告することになります。予測は仮説を作る道具であって、結論を出す道具ではありません。

2. 評価で最も多い誤り ─ 空間自己相関による漏洩


図:フィーチャ単位で分けると、答えが漏れる
図:フィーチャ単位で分けると、答えが漏れる

これは、空間データを機械学習に使うときの最も基本的な作法です。

隣り合うフィーチャは、発現も見た目もよく似ています。フィーチャをランダムに学習用と評価用に分ければ、評価用フィーチャのすぐ隣が学習用に入っている状態になります。これは、答えをほぼ見ながら答えているのと変わりません。

python
import numpy as np
from sklearn.model_selection import GroupKFold

# やってはいけない分け方:フィーチャをランダムに分ける
#   隣り合うフィーチャが学習側と評価側に散らばり、答えが漏れる
# from sklearn.model_selection import KFold   <- これは使わない

# 正しい分け方:患者またはスライドを単位にする
groups = adata.obs["patient"].to_numpy()
gkf = GroupKFold(n_splits=5)

for tr, te in gkf.split(X, y, groups=groups):
    print("学習:", sorted(set(groups[tr])),
          "評価:", sorted(set(groups[te])))
    # 評価側の患者は、学習側に一度も出てこない
⚠️ 精度は高く出る。しかし、意味は無い
この誤りが厄介なのは、結果が良く見えることです。相関が 0.9 を超えることもあります。しかし別の患者に当てた瞬間、性能は崩れます。分ける単位は、患者かスライドです。論文を読むときも、ここをどう分けたかを確認してください。書かれていなければ、その性能の数字は評価できません。

3. 評価は、遺伝子ごとに行う


python
# 評価は、遺伝子ごとに行う。全体の平均だけを見ない
import pandas as pd

rows = []
for i, g in enumerate(genes):
    obs = y_true[:, i]
    pred = y_pred[:, i]
    # 予測と実測の相関
    r = np.corrcoef(obs, pred)[0, 1]
    # ベースライン:いつも学習データの平均を答える場合
    base = np.full_like(obs, y_train[:, i].mean())
    rmse_m = np.sqrt(((obs - pred) ** 2).mean())
    rmse_b = np.sqrt(((obs - base) ** 2).mean())
    rows.append((g, round(float(r), 3),
                 round(float(rmse_b / rmse_m), 3)))

df = pd.DataFrame(rows, columns=["gene", "相関", "平均予測に対する改善"])
print(df.sort_values("相関", ascending=False).head(20))
# 改善が 1 に近い遺伝子は、平均を答えるのと変わらない
💡 「いつも平均を答える」ベースラインと比べる
全フィーチャで同じ値(学習データの平均)を答えるだけのモデルでも、評価指標によってはそれなりの値が出ます。そのベースラインをどれだけ上回ったかが、実質的な性能です。元の研究でも、病理医が付けた腫瘍・正常のラベルから予測した場合と比較されています。単純な方法と比べて、初めて意味のある数字になります。

そして、遺伝子ごとに当たり外れが大きく違います。全体の平均だけを見ると、この差が見えません。「この遺伝子は予測できる」「この遺伝子はできない」を、個別に把握してください。

4. 何のために予測するのか


図:何のために予測するのか
図:何のために予測するのか
用途 考え方 注意点
過去の標本に当てる アーカイブの H&E は膨大にある 検証していない検体への外挿
解像度を上げる 画像は細かく、発現は粗い 内挿であって、測定ではない
測る場所を決める 先に予測して当たりをつける 予測が外れれば、見落とす
💡 組織像は、予測以外にも使える
画像を「発現を予測するため」に使う以外に、解析の補助情報として使う道もあります。SpaGCN(Hu et al., Nature Methods, 2021)は、発現・空間座標・組織像の3つを合わせて空間ドメインを同定します。BayesSpace(Zhao et al., Nature Biotechnology, 2021)は、格子構造を使ってサブスポット解像度まで推定します。予測という形をとらずに、画像の情報を取り込むアプローチです。

5. 病理の基盤モデルを、特徴抽出に使う


近年は、大量の病理画像で事前学習した基盤モデルが公開されています。UNI(Chen et al., Nature Medicine, 2024)は、20 の主要な組織型にわたる 10 万枚以上の診断用スライドから、1 億を超える画像パッチで学習されたモデルです。

こうしたモデルから取り出した特徴を入力にすれば、自前で画像エンコーダを学習させるより、少ないデータで済みます。この使い方は、次の記事で詳しく扱います。

6. チェックリスト


  • 患者またはスライド単位で学習・評価を分けたか
  • フィーチャをランダムに分けていないか
  • 「いつも平均を答える」ベースラインと比べたか
  • 遺伝子ごとに精度を出したか(全体平均だけを見ていないか)
  • 予測値を、測定値として扱っていないか
  • 予測から出た所見を、実測で確かめる計画があるか
  • 画像を、予測以外の形で使う選択肢も検討したか

まとめ


  • 予測できるのは、形態と相関する成分だけ。形態に現れないものは、原理的に取り出せない。
  • H&E から 100 以上の遺伝子が 100 µm 解像度で予測でき、別データセットへも一般化した(He et al., 2020)。
  • 評価で最も多い誤りは、フィーチャをランダムに分けること。隣が学習側にいるので、答えが漏れる。
  • 分ける単位は、患者かスライド。論文を読むときも、ここを確認する。
  • 「いつも平均を答える」ベースラインと比べる。遺伝子ごとに当たり外れが大きく違う。
  • 用途はどれも仮説を作るもの。予測値を測定値として扱わない。
  • 画像は、予測という形をとらずに解析の補助情報としても使える。

関連記事


参考文献


  • He, B., Bergenstråhle, L., Stenbeck, L., et al. (2020). Integrating spatial gene expression and breast tumour morphology via deep learning. Nature Biomedical Engineering, 4(8), 827–834. doi:10.1038/s41551-020-0578-x
  • Chen, R. J., Ding, T., Lu, M. Y., et al. (2024). Towards a general-purpose foundation model for computational pathology. Nature Medicine, 30(3), 850–862. doi:10.1038/s41591-024-02857-3
  • Lu, M. Y., Chen, B., Williamson, D. F. K., et al. (2024). A visual-language foundation model for computational pathology. Nature Medicine, 30(3), 863–874. doi:10.1038/s41591-024-02856-4
  • Hu, J., Li, X., Coleman, K., et al. (2021). SpaGCN: integrating gene expression, spatial location and histology to identify spatial domains and spatially variable genes by graph convolutional network. Nature Methods, 18(11), 1342–1351. doi:10.1038/s41592-021-01255-8
  • Zhao, E., Stone, M. R., Ren, X., et al. (2021). Spatial transcriptomics at subspot resolution with BayesSpace. Nature Biotechnology, 39(11), 1375–1384. doi:10.1038/s41587-021-00935-2
  • 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
  • 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をコピーしました