mcpField
T
tooluniverse-spatial-transcriptomics

tooluniverse-spatial-transcriptomics

github.com/mims-harvardデータ・データベース1.8k409 回インストール2 日前に更新
リポジトリ

tooluniverse-spatial-transcriptomics について

遺伝子発現と組織座標を組み合わせ、組織構造、細胞近傍、空間的可変遺伝子を調べる空間トランスクリプトミクス向け ToolUniverse スキルです。単一細胞データとの統合や組織画像の解析にも対応します。

主な機能

  1. 01複数の空間解析プラットフォームのデータ読み込み
  2. 02空間データの品質管理と画像位置合わせ
  3. 03空間ドメインのクラスタリングと可変遺伝子解析
  4. 04細胞近傍と空間的相互作用の解析
  5. 05scRNA-seq と統合した細胞型マッピング

活用シーン

  1. 01腫瘍微小環境の空間構造のマッピング
  2. 02発生組織における発現勾配の解析
  3. 03組織内の空間領域の特定
  4. 04単一細胞アノテーションによる細胞型のマッピング

MCP 対応

ToolUniverse のツールでリガンド・受容体情報、遺伝子情報、空間データセットを検索します。クラスタリングや品質管理などはローカルの Python ツールで行います。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-spatial-transcriptomics

インストール後、Claude Code で/tooluniverse-spatial-transcriptomicsを入力して読み込まれたか確認します。

同梱ファイルcode_examples.mdreport_template.md

詳細

空間トランスクリプトミクス解析

組織構造の文脈で遺伝子発現パターンを理解するための、空間分解トランスクリプトミクスデータの包括的な解析です。発現プロファイリングと空間座標を組み合わせ、組織構造、細胞間相互作用、空間的に変動する遺伝子を明らかにします。

推測せず、調べる

科学的な事実に確信が持てない場合は、記憶を頼りに推論するのではなく、まずデータベースを検索してください。データベースで検証した回答は、推測よりも常に信頼できます。

このスキルを使用する場面

トリガー:

  • ユーザーが空間トランスクリプトミクスデータ(Visium、MERFISH、seqFISH など)を持っている
  • ユーザーがH&E組織画像のみを持ち、空間アッセイデータがまったくない場合 — DeepSpotM_predict_gene_expression(ローカルモデル。APIやキーは不要)は、224x224のH&Eタイルから空間遺伝子発現を直接予測します。実際の空間データがまだない場合の仮想的な読み出しとして使用できます。その出力は、フォローアップ(たとえば、実際にアッセイを行う領域の選定)の指針となるモデル予測として扱ってください。実際の空間データが目的の場合、上記のプラットフォームの代替としては扱わないでください。
  • 組織構造や空間構成に関する質問
  • 空間遺伝子発現パターンの解析
  • 細胞間の近接性や近傍解析の依頼
  • 腫瘍微小環境の空間構造に関する質問
  • 空間データと単一細胞データの統合
  • 空間ドメインの特定
  • 組織形態と発現の相関

質問例:

  1. 「この10x Visiumデータセットを解析して、空間ドメインを特定してください」
  2. 「この組織で空間的に変動する発現を示す遺伝子はどれですか?」
  3. 「腫瘍微小環境の空間構成をマッピングしてください」
  4. 「組織境界で濃縮される遺伝子を見つけてください」
  5. 「空間的近接性に基づいて細胞間相互作用を特定してください」
  6. 「空間トランスクリプトミクスをscRNA-seqのアノテーションと統合してください」

主な機能

  • データのインポート:10x Visium、MERFISH、seqFISH、Slide-seq、STARmap、Xenium形式
  • 品質管理:スポット/細胞のQC、空間アラインメントの検証、組織のカバレッジ
  • 正規化:組織の不均一性を考慮した空間対応型の正規化
  • 空間クラスタリング:類似した発現プロファイルを持つ空間ドメインを特定
  • 空間可変遺伝子:ランダムではない空間パターンを持つ遺伝子を検出
  • 近傍解析:細胞間の近接性、空間近傍、ニッチの特定
  • 統合:細胞型マッピングのためscRNA-seqと統合(Cell2location、Tangram、SPOTlight)
  • リガンド・受容体の空間解析:OmniPathを介して、組織の文脈における細胞間コミュニケーションをマッピング

対応プラットフォーム

  • 10x Visium:55umスポット(約50細胞/スポット)、全ゲノム対象、H&E画像付き — 最も一般的
  • MERFISH/seqFISH:単一細胞解像度、100~10,000個の標的遺伝子、イメージングベース
  • Slide-seq/V2:10umビーズ、全ゲノム対象 — Visiumより高解像度
  • Xenium:単一細胞/細胞内解像度、300個以上の標的遺伝子(10xプラットフォーム)

ワークフロー概要

Input: Spatial Transcriptomics Data + Tissue Image
    |
    v
Phase 1: Data Import & QC
    |-- Load spatial coordinates + expression matrix
    |-- Load tissue histology image
    |-- Quality control per spot/cell (min 200 genes, 500 UMI, <20% MT)
    |-- Align spatial coordinates to tissue
    |
    v
Phase 2: Preprocessing
    |-- Normalization (spatial-aware methods)
    |-- Highly variable gene selection (top 2000)
    |-- Dimensionality reduction (PCA)
    |-- Spatial lag smoothing (optional)
    |
    v
Phase 3: Spatial Clustering
    |-- Build spatial neighbor graph (squidpy)
    |-- Graph-based clustering with spatial constraints (Leiden)
    |-- Annotate domains with marker genes (Wilcoxon)
    |-- Visualize domains on tissue
    |
    v
Phase 4: Spatial Variable Genes
    |-- Test spatial autocorrelation (Moran's I, Geary's C)
    |-- Filter significant spatial genes (FDR < 0.05)
    |-- Classify pattern types (gradient, hotspot, boundary, periodic)
    |
    v
Phase 5: Neighborhood Analysis
    |-- Define spatial neighborhoods (k-NN, radius)
    |-- Calculate neighborhood composition (squidpy nhood_enrichment)
    |-- Identify interaction zones between domains
    |
    v
Phase 6: Integration with scRNA-seq
    |-- Cell type deconvolution (Cell2location, Tangram, SPOTlight)
    |-- Map cell types to spatial locations
    |-- Validate with marker genes
    |
    v
Phase 7: Spatial Cell Communication
    |-- Identify proximal cell type pairs
    |-- Query ligand-receptor database (OmniPath)
    |-- Score spatial interactions (squidpy ligrec)
    |-- Map communication hotspots
    |
    v
Phase 8: Generate Spatial Report
    |-- Tissue overview with domains
    |-- Spatially variable genes
    |-- Cell type spatial maps
    |-- Interaction networks in tissue context

各フェーズの概要

フェーズ1:データのインポートとQC

プラットフォーム固有のデータを読み込みます(Visiumではscanpy read_visiumを使用)。QCフィルターを適用します:1スポットあたり最小200遺伝子、1スポットあたり最小500 UMI、ミトコンドリア遺伝子の割合は最大20%。組織画像との重ね合わせで空間アラインメントを検証します。

フェーズ2:前処理

総カウント数の中央値に正規化し、対数変換を行い、上位2000個のHVGを選択します。任意で、近傍の平均化による空間平滑化を適用します(ノイズの多いデータに有用ですが、境界がぼやけます)。

フェーズ3:空間クラスタリング

PCA(50成分)の後、空間近傍グラフを構築します(squidpy)。空間制約を加えたLeidenクラスタリングにより、空間ドメインが得られます。Wilcoxon順位和検定でドメインマーカーを特定します。

フェーズ4:空間的に変動する遺伝子

Moran's I統計量で空間的自己相関を検定します:I > 0 = クラスタリング、I ~ 0 = ランダム、I < 0 = チェッカーボード状。FDR < 0.05でフィルタリングします。パターンを勾配、ホットスポット、境界、周期性に分類します。

Phase 5: 近傍解析

近傍エンリッチメント解析(squidpy)では、細胞タイプ/ドメインがランダムな場合の予測を超えて共局在するかを検証します。k-NN 空間グラフを使用して、ドメイン境界にある相互作用ゾーンを特定します。

Phase 6: scRNA-seq の統合

細胞タイプのデコンボリューションでは、単一細胞のアノテーションを空間スポットに対応付けます。手法:Cell2location(Visium に推奨)、Tangram、SPOTlight。スポットごとの細胞タイプ割合の推定値を生成します。

Phase 7: 空間的な細胞間コミュニケーション

空間的近接性とリガンド・受容体データベースを組み合わせます。主な ToolUniverse ツール:

  • OmniPath_get_ligand_receptor_interactions — CellPhoneDB、CellChatDB などから 14,000 組以上の L-R ペアを取得します。特定の遺伝子には partners パラメーターを使用します。
  • OmniPath_get_intercell_roles — タンパク質をリガンド/受容体/ECM に分類します。proteins パラメーターを使用します。
  • OmniPath_get_cell_communication_annotations — CellPhoneDB/CellChatDB の経路アノテーションを取得します。proteins パラメーターを使用します。
  • OmniPath_get_signaling_interactions — 受容体の下流にある細胞内シグナル伝達を取得します。

近接する細胞における L-R ペアの共発現に基づいて相互作用をスコアリングします。相互作用スコアが高い領域をマッピングします。

Phase 7.5: データ検索と遺伝子コンテキスト(ToolUniverse API ツール)

データセットの検索と遺伝子アノテーションには、API ベースの方法を使用します(ローカル計算は不要です)。

  • geo_search_datasets / OmicsDI_search_datasets / NCBI_SRA_search_runs — 空間 TX データセットを検索します
  • UniProt_get_function_by_accession — 間質/免疫マーカーのタンパク質機能を取得します
  • STRING_get_network — 主要マーカーのタンパク質相互作用ネットワークを取得します
  • kegg_search_pathway / kegg_get_pathway_info — 関連する代謝/シグナル伝達経路を取得します
  • DGIdb_get_drug_gene_interactions — 空間コンテキストにおける創薬可能な標的を取得します
  • PubMed_search_articles — 空間生物学のコンテキストに関連する文献を検索します

API ツールとローカル計算の違い:Phase 1~2(データのインポート、QC)と Phase 3~6(クラスタリング、SVG、近傍解析、デコンボリューション)には、squidpy/scanpy を使ったローカルの Python 環境が必要です。Phase 7 の L-R データベースと Phase 7.5 の遺伝子コンテキストでは、ToolUniverse API ツールを使用します。

Phase 8: レポートの生成

出力例の全体については、report_template.md を参照してください。


ToolUniverse スキルとの統合

  • tooluniverse-single-cell:デコンボリューション(Phase 6)の scRNA-seq リファレンスと L-R データベース(Phase 7)
  • tooluniverse-gene-enrichment:空間ドメインのマーカー遺伝子を対象とした経路エンリッチメント(Phase 3)
  • tooluniverse-multi-omics-integration:他のオミクスレイヤーとの統合(Phase 8)

ToolUniverse データ取得ツール

HuBMAP Spatial Atlas ツール

HuBMAP ツールを使用して、参照、検証、または研究間比較に利用できる公開済みの空間生物学データセットを検索します。

利用可能性に関する注意:HuBMAP_search_datasets、HuBMAP_list_organs、HuBMAP_get_dataset は、ToolUniverse インスタンスに登録されていない場合があります。使用前に tu.list_tools() で確認してください。利用できない場合は、空間データセットを確実に検索できる代替手段として、OmicsDI(OmicsDI_search_datasets(query="spatial transcriptomics kidney"))または CELLxGENE(CELLxGENE_get_cell_metadata)を使用してください。

  • HuBMAP_search_datasets:organ(コード。例:「LK」=左腎臓、「BR」=脳)、dataset_type、query、limit で公開済みデータセットを検索します
  • HuBMAP_list_organs:コードと UBERON ID 付きの臓器一覧を取得します(必須パラメーターなし)
  • HuBMAP_get_dataset:特定の hubmap_id(例:「HBM626.FHJD.938」)の詳細なメタデータを取得します

臓器コード:LK/RK=腎臓、LI=大腸、SI=小腸、HT=心臓、LV=肝臓、LU=肺、SP=脾臓、BR=脳、PA=膵臓、SK=皮膚。

HuBMAP 生体試料 + 空間登録レイヤー (サンプルとドナー)

データセットレベルより下層で、HuBMAP は物理的な組織 サンプル (解剖学的ブロック/切片/臓器/懸濁液) とヒト ドナー をインデックス化しています。これらを使用して CCF/RUI の空間登録とドナーの人口統計を検査できます — これはデータセットツールでは公開されないコンテキストです。

  • HuBMAP_search_samples: organ (2文字コード)、sample_category ("block"/"section"/"organ"/"suspension")、registered_only (CCF/RUI 登録済み検体のみ)、limit で組織サンプルを検索します。各結果は spatially_registered を示し、親ドナーにリンクします。
  • HuBMAP_get_sample: 1つのサンプルの hubmap_id (例: "HBM658.BXNB.873") の完全なレコード。解析済みの rui_location を含みます — CCF の placement_target 参照臓器、x/y/z の dimension と単位、および ccf_annotations (ブロックが重複する UBERON/FMA 構造)。
  • HuBMAP_search_donors: group_name (例: "Stanford") またはフリーテキストの query でドナーを検索し、UMLS/SNOMED コード化メタデータから抽出された正規化された demographics (年齢、性別、人種、body_mass_index、死因) を取得します。人口統計的にマッチした組織コホートを構築するために使用します。
# Spatially-registered kidney blocks (carry CCF coordinates)
blocks = tu.tools.HuBMAP_search_samples(organ="LK", sample_category="block", registered_only=True, limit=5)

# Inspect the CCF spatial registration of one block
s = tu.tools.HuBMAP_get_sample(hubmap_id="HBM658.BXNB.873")
# s["data"]["rui_location"] -> {placement_target: ...VHMLung..., x/y/z_dimension, dimension_units, ccf_annotations:[UBERON...]}

# Demographically-matched donor cohort
donors = tu.tools.HuBMAP_search_donors(group_name="Stanford", limit=10)
# donors["data"]["donors"][i]["demographics"] -> {age, sex, race, body_mass_index, ...}

使用する場面:

  • 特定の臓器/組織に対する参照空間データセットの検索
  • 組織で利用可能な空間アッセイタイプ (Visium、CODEX、MERFISH) の特定
  • 空間データセットのドナーメタデータ (年齢、性別) の相互参照
  • 公開された空間アトラスデータセットの DOI リンクの取得

HuBMAP ツールが利用できない場合のフォールバック:

# Use OmicsDI for spatial dataset discovery
result = tu.tools.OmicsDI_search_datasets(query="spatial transcriptomics kidney Visium")

# Use CELLxGENE for cell-level expression context
# obs_value_filter is required (unfiltered Census queries time out)
result = tu.tools.CELLxGENE_get_cell_metadata(
    obs_value_filter='tissue_general == "kidney"',
    column_names=["cell_type", "tissue", "disease"],
)
# Example: Find spatial datasets for kidney (if HuBMAP tools available)
result = tu.tools.HuBMAP_search_datasets(organ="LK", limit=5)
# Returns: {data: {total, returned, datasets: [{hubmap_id, title, dataset_type, organ, doi_url, ...}]}}

# Example: Get all available organs
organs = tu.tools.HuBMAP_list_organs()
# Returns: {data: {total, organs: [{code, term, organ_uberon, rui_supported}]}}

ユースケースの例

ユースケース 1: 腫瘍微小環境のマッピング

質問: 「腫瘍細胞、免疫細胞、間質細胞の空間的組織化をマッピングする」 ワークフロー: Visium の読み込み -> QC -> 空間クラスタリング -> デコンボリューション -> 相互作用ゾーン -> L-R 解析 -> レポート

ユースケース 2: 発生勾配の解析

質問: 「発生中の組織における空間的遺伝子発現勾配を特定する」 ワークフロー: 空間データの読み込み -> SVG 解析 -> 勾配パターンの分類 -> モルフォゲンのマッピング -> 細胞運命との相関 -> レポート

ユースケース 3: 脳領域の特定

質問: 「脳組織を解剖学的領域に自動的にセグメント化する」 ワークフロー: Visium 脳の読み込み -> 高解像度クラスタリング -> 既知の領域へのマッチング -> Allen Brain Atlas での検証 -> レポート


定量化された最小要件

  • QC 後に少なくとも 500 の空間位置
  • 低品質スポットのフィルタリング (最小 200 遺伝子、最小 500 UMI、<20% MT) とアラインメントの検証
  • 少なくとも 1 つの空間クラスタリング手法 (空間制約付きグラフベース)
  • Moran's I または同等の手法で検定された空間可変遺伝子 (FDR < 0.05)
  • すべての主要な所見に対する組織画像上の空間プロット
  • レポートの対象: ドメイン、空間遺伝子、細胞タイプマップ、主要な相互作用

推論フレームワーク

出発点: 空間的な問いとは何か?

空間データは発現に位置情報を追加します。重要な問い: 空間パターンは細胞タイプの構成によって駆動されているのか (自明)、それとも同じ細胞タイプ内の空間的に制御された遺伝子発現によって駆動されているのか (興味深い)。デコンボリューションはこれらを区別するのに役立ちます。

空間可変遺伝子 (SVG) を解釈する前に、次を問いかけてください:

  1. この遺伝子は単に空間的に制限された細胞タイプを標識しているだけなのか? (例: 免疫浸潤ゾーンに濃縮された T 細胞マーカー — 予想通りであり、情報量はない)
  2. それとも、この遺伝子は空間的位置に応じて同じ細胞タイプ内で差次的に発現しているのか? (例: 腫瘍-間質境界で上方制御される線維芽細胞遺伝子 — 空間的に制御されており、生物学的に興味深い)

これらを区別するには: (a) デコンボリューション (Cell2location、Tangram) を実行してスポットごとの細胞タイプ割合を取得する、(b) SVG 発現を細胞タイプ割合に対して回帰する、(c) 細胞タイプ構成を制御した後でも空間パターンが持続するなら、それは真の空間制御を反映している。解釈する前に常にその遺伝子の既知の生物学を調べてください — 推測するのではなく、UniProt の機能と STRING の相互作用を確認してください。

エビデンスの評価
  • T1:直交的な手法(IHC、smFISH、既知の解剖学的情報)で検証済み — 例:空間ドメインが組織学的に確認された腫瘍辺縁と一致する
  • T2:統計的に有意で、生物学的に整合性がある — 予想される組織領域において、Moran's I > 0.3、FDR < 0.01 のSVG
  • T3:計算により特定され、検証待ち — 組織学的な対応物がない、クラスタリングで得られた新規の空間ドメイン
  • T4:探索的、またはアーティファクトの影響を受けやすい — UMI数の少ない組織辺縁のスポット、バッチ効果に左右されるドメイン
解釈の指針

空間ドメイン:ドメインは遺伝子発現が一貫した領域を表し、多くの場合、組織構造(腫瘍コア、間質、免疫細胞浸潤、壊死)に対応します。マーカー遺伝子が既知の細胞型シグネチャーと一致する場合、そのドメインは生物学的に意味があると考えられます。組織境界(例:腫瘍と間質の境界)にあるドメインは、微小環境の研究において特に有用です。

細胞間近接の有意性:近傍濃縮のzスコアが2を超える場合、細胞型同士が偶然に期待されるよりも多く共局在していることを示します。負のzスコアは、空間的な回避を示します。生物学的な文脈で解釈してください。腫瘍細胞近傍で免疫細胞が濃縮している場合、関与する細胞型(例:CD8+ T細胞とTreg)によって、活発な免疫応答を示すことも、免疫抑制性のニッチを示すこともあります。

空間変動遺伝子(SVG):Moran's I > 0.3、FDR < 0.05 は、強い空間パターンを示します。SVGはパターン別に分類します。勾配(モルフォゲンシグナル伝達、例:陰窩から絨毛にかけての軸に沿ったWNT)、ホットスポット(免疫細胞集積部位での局所的な発現)、境界遺伝子(ドメイン境界で濃縮、例:上皮間葉転換マーカー)です。既知の空間生物学的役割を持つSVG(例:組織極性遺伝子)は、新規候補よりも信頼度が高いと考えられます。

統合に関する質問

空間トランスクリプトミクスの完全なレポートでは、次の質問に答える必要があります。

  1. どのような空間ドメインが特定され、それらは既知の組織構造に対応していますか?
  2. どの遺伝子が有意な空間変動を示し、どのようなパターンを呈していますか?
  3. 特定の細胞型のペアは、空間的近接において濃縮または減少していますか?
  4. ドメイン境界または細胞間の境界で、どのようなリガンド・受容体相互作用が活性化していますか?
  5. 空間解析の結果は、同じ組織型のバルクデータまたは単一細胞データとどのように比較されますか?

プログラムからのアクセス(ツール以外)

ToolUniverse のツールがメタデータを返すものの、実際の発現行列が必要な場合:

import scanpy as sc, pandas as pd, requests, io

# Load h5ad (most common format for spatial/single-cell)
adata = sc.read_h5ad("spatial_data.h5ad")

# Load 10X Visium output directory
adata = sc.read_visium("path/to/spaceranger_output/")

# Download from GEO supplementary files
geo_id = "GSE123456"
# Check for h5ad or MTX in supplementary files
url = f"https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc={geo_id}&targ=gsm&view=data"

# Load 10X MTX format (matrix + barcodes + features)
adata = sc.read_10x_mtx("filtered_feature_bc_matrix/", var_names="gene_symbols")

# HuBMAP data portal
# Search at https://portal.hubmapconsortium.org/search then download via globus or direct link
# Human Cell Atlas: https://data.humancellatlas.org/ — download h5ad/loom files

形式別の手引きと一括ダウンロードのパターンについては、tooluniverse-data-wrangling スキルを参照してください。


制限事項

  • 解像度:Visium のスポットには複数の細胞が含まれます(単一細胞ではありません)
  • 遺伝子の網羅範囲:イメージング手法では、対象となる遺伝子パネルに制限があります
  • 3D構造:ほとんどのプラットフォームは2D切片を使用します
  • 組織の品質:イメージングには、良好に保存された組織が必要です
  • 計算:大規模なデータセットには、かなりのメモリが必要です
  • 参照データへの依存:デコンボリューションの品質は、scRNA-seq参照データに依存します

参考文献

手法:

プラットフォーム:


参照ファイル

  • code_examples.md - すべてのフェーズに対応するPythonコード(scanpy、squidpy、cell2location)
  • report_template.md - レポートの完全な例(乳がんTME)

コメント