シーケンス型 空間トランスクリプトーム:パスウェイ・転写因子活性

Spatial transcriptome
📚 この記事について
パスウェイや転写因子の活性を、空間データで推定する工程を扱います。フィーチャが混合であることが活性の推定に何をもたらすのか、そして単位の選び方でどう結果が変わるのかを整理します。
🔙 前の記事:シーケンス型 空間トランスクリプトーム:空間の細胞間コミュニケーション
🔜 次の記事:シーケンス型 空間トランスクリプトーム:空間 CNV と腫瘍微小環境
📌 前提scRNA-seq解析:機能エンリッチメント・パスウェイ解析空間ドメイン同定

空間トランスクリプトーム解析(spatial transcriptomics)のうちシーケンス型(Visium・Stereo-seq など NGS で読み出す方式)は、パスウェイや転写因子の活性を、scRNA-seq と同じ道具で推定できます。行列の形が同じだからです。ただし、行が細胞ではなく場所であることが、推定される活性の意味を変えます。

1. フィーチャ単位の活性は、混合の平均


図:フィーチャ単位で計算すると、混ざった細胞の平均になる
図:フィーチャ単位で計算すると、混ざった細胞の平均になる

1つのフィーチャの発現は、そこにいる細胞たちの足し合わせです。そこから推定される活性も、混ざった細胞の平均になります。

⚠️ 「高い細胞がいた」のか「全体が中くらいだった」のか、区別できない
活性が中間的な値になったとき、2つの可能性があります。活性の非常に高い細胞が少数いたのか、全体がほどほどに活性化していたのか。フィーチャ単位の計算では、この区別がつきません。とくに、希少な細胞型の活性は、まわりの多数派に埋もれます。
python
import decoupler as dc
import scanpy as sc

# 転写因子の制御対象(レギュロン)を取ってくる
net = dc.get_collectri(organism="human", split_complexes=False)

# 各フィーチャで、転写因子の活性を推定する
dc.run_ulm(mat=adata, net=net,
           source="source", target="target", weight="weight", use_raw=False)

# 活性は obsm に入る。obs に移すと、そのまま空間プロットできる
acts = dc.get_acts(adata, obsm_key="ulm_estimate")
print(acts.shape)   # (フィーチャ数, 転写因子の数)

decoupleR(Badia-i-Mompel et al., Bioinformatics Advances, 2022)は、事前知識のリソースと推定手法を統一的な枠組みで扱えるパッケージです。転写因子の活性なら CollecTRI(Müller-Dott et al., Nucleic Acids Research, 2023)のようなレギュロンのリソースと組み合わせます。

2. 何を単位に計算するか


図:何を単位に、活性を計算するか
図:何を単位に、活性を計算するか
単位 得られるもの 限界
フィーチャ単位 活性の空間分布が地図になる 混合の平均になる
ドメイン単位 統計が安定する 領域内の違いは見えない
細胞型で重み付け 細胞型ごとの活性に近づく デコンボリューションの誤差を引き継ぐ
python
import squidpy as sq
import numpy as np

# 単位1:フィーチャ単位。活性の空間分布が地図になる
acts.obsm["spatial"] = adata.obsm["spatial"]
sq.pl.spatial_scatter(acts, color=["MYC", "STAT1", "TP53"], ncols=3)

# 単位2:ドメイン単位。統計が安定する
acts.obs["domain"] = adata.obs["domain"].values
mean_by_dom = dc.rank_sources_groups(acts, groupby="domain", reference="rest", method="t-test_overestim_var")
print(mean_by_dom.head(10))

# 単位3:細胞型の割合で重み付ける
#   活性を、割合で説明できるかを回帰で見る
from sklearn.linear_model import LinearRegression
P = adata.obsm["cell_type_proportions"].to_numpy()
A = acts[:, "STAT1"].X.ravel()
m = LinearRegression().fit(P, A)
print("割合で説明できる割合:", round(m.score(P, A), 3))
print("型ごとの寄与:", dict(zip(adata.obsm["cell_type_proportions"].columns, m.coef_.round(2))))
💡 問いによって、正しい単位が変わる
「どこで活性が高いか」を問うならフィーチャ単位で十分です。地図を描くのが目的だからです。「どの細胞型で高いか」を問うなら、重み付けが要ります。活性を細胞型の割合で回帰し、係数を見れば、どの型がその活性に寄与しているかの見当がつきます。問いを先に決めてから、単位を選んでください。
⚠️ 正規化のやり方が、ここにも効く
活性の推定は、遺伝子セットの発現をまとめる操作です。だから正規化のやり方が、そのまま活性の値に伝わります。総カウントを強く補正すれば、細胞密度の情報が消えるぶん、活性の空間パターンも弱まります。ドメイン同定や空間可変遺伝子の検出と、同じ判断がここでも要ります。

3. 活性を、地図として読む


図:活性を、地図として読む
図:活性を、地図として読む

活性の値を obs に入れてしまえば、遺伝子とまったく同じように空間統計が使えます。空間的な自己相関を調べ、活性が空間パターンを持つかを検定できます。

python
# 活性を obs に入れれば、遺伝子と同じように空間統計が使える
adata.obs["STAT1_act"] = acts[:, "STAT1"].X.ravel()

# 空間的な自己相関を調べる
sq.gr.spatial_neighbors(adata, coord_type="grid", n_neighs=6)
sq.gr.spatial_autocorr(adata, mode="moran",
                       attr="obs", genes=["STAT1_act"])

# 腫瘍の縁からの距離を軸にして、勾配として読む
from scipy.spatial import cKDTree
edge = adata.obsm["spatial"][adata.obs["is_tumor_edge"]]
tree = cKDTree(edge)
adata.obs["dist_to_edge"], _ = tree.query(adata.obsm["spatial"])

# 距離で区切って、活性の平均を並べる
bins = np.digitize(adata.obs["dist_to_edge"], np.arange(0, 1000, 100))
print(adata.obs.groupby(bins)["STAT1_act"].mean().round(2))
💡 距離を軸にすると、勾配が見える
腫瘍の縁からの距離を計算して、その距離ごとに活性の平均を並べてください。ドメインで区切るより、連続的な変化が見えやすくなります。「腫瘍から離れるほど活性が下がる」といったパターンは、領域ごとの比較では出てきません。空間可変遺伝子で見た2種類のパターンが、活性についても同じように現れます。

4. 解釈するときの注意


  • 活性は推定値であって、測定値ではない。下流遺伝子の発現から逆算したものです。
  • リソースの偏りが結果に出る。よく研究された経路ほど、遺伝子セットが充実しています。
  • 細胞型の分布と重ねる。活性の地図が、特定の細胞型の分布と同じ形なら、それは細胞型の写しかもしれません。
  • 組織像と照らす。解剖学的な構造と対応するか。
⚠️ 細胞型の分布による交絡は、ここでも起きる
ある細胞型が組織の一部に集まっていれば、その細胞型で高い経路の活性も、当然その場所で高くなります。これは新しい情報ではありません。空間可変遺伝子のときと同じで、細胞型の割合で説明できるかを確かめてから解釈してください。説明できない部分にこそ、追う価値があります。

5. チェックリスト


  • 問いに合った単位を選んだか(フィーチャ/ドメイン/重み付け)
  • 活性が細胞型の割合で説明できないかを確かめたか
  • 正規化を変えて、活性の空間パターンがどう変わるかを見たか
  • 活性を obs に入れて、空間統計にかけた
  • 距離を軸にした勾配としても読んだか
  • 活性の地図を組織像と照らした

まとめ


  • 行列の形が同じなので、scRNA-seq の道具がそのまま使える。
  • ただしフィーチャ単位の活性は、混合の平均。「高い細胞がいた」のか「全体が中くらい」なのか区別できない。
  • 単位は3つ。フィーチャ/ドメイン/細胞型で重み付け。問いを先に決めてから選ぶ。
  • 「どこで高いか」ならフィーチャ単位、「どの細胞型で高いか」なら重み付けが要る
  • 正規化のやり方が、活性の値にそのまま伝わる
  • 活性を obs に入れれば、遺伝子と同じように空間統計が使える
  • 距離を軸にすると、勾配が見える。領域ごとの比較では出てこないパターン。
  • 細胞型の分布による交絡は、活性についても起きる。割合で説明できない部分にこそ、追う価値がある。

関連記事


参考文献


  • Badia-i-Mompel, P., Vélez Santiago, J., Braunger, J., et al. (2022). decoupleR: ensemble of computational methods to infer biological activities from omics data. Bioinformatics Advances, 2(1), vbac016. doi:10.1093/bioadv/vbac016
  • Müller-Dott, S., Tsirvouli, E., Vazquez, M., et al. (2023). Expanding the coverage of regulons from high-confidence prior knowledge for accurate estimation of transcription factor activities. Nucleic Acids Research, 51(20), 10934–10949. doi:10.1093/nar/gkad841
  • Subramanian, A., Tamayo, P., Mootha, V. K., et al. (2005). Gene set enrichment analysis: a knowledge-based approach for interpreting genome-wide expression profiles. PNAS, 102(43), 15545–15550. doi:10.1073/pnas.0506580102
  • Kanehisa, M., Furumichi, M., Sato, Y., Kawashima, M., & Ishiguro-Watanabe, M. (2023). KEGG for taxonomy-based analysis of pathways and genomes. Nucleic Acids Research, 51(D1), D587–D592. doi:10.1093/nar/gkac963
  • 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
  • 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
  • Salim, A., Bhuva, D. D., Chen, C., et al. (2025). SpaNorm: spatially-aware normalization for spatial transcriptomics data. Genome Biology, 26, 109. doi:10.1186/s13059-025-03565-y
  • Bhuva, D. D., Tan, C. W., Salim, A., et al. (2024). Library size confounds biology in spatial transcriptomics data. Genome Biology, 25, 99. doi:10.1186/s13059-024-03241-7
  • 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
  • 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

コメント

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