@nahisaho/satori 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -23
- package/package.json +1 -1
- package/src/.github/skills/scientific-civic-evidence/SKILL.md +292 -0
- package/src/.github/skills/scientific-compound-screening/SKILL.md +4 -0
- package/src/.github/skills/scientific-depmap-dependencies/SKILL.md +239 -0
- package/src/.github/skills/scientific-disease-research/SKILL.md +4 -0
- package/src/.github/skills/scientific-drugbank-resources/SKILL.md +269 -0
- package/src/.github/skills/scientific-gnomad-variants/SKILL.md +356 -0
- package/src/.github/skills/scientific-metabolomics-databases/SKILL.md +4 -0
- package/src/.github/skills/scientific-opentargets-genetics/SKILL.md +299 -0
- package/src/.github/skills/scientific-protein-interaction-network/SKILL.md +4 -0
- package/src/.github/skills/scientific-rare-disease-genetics/SKILL.md +4 -0
- package/src/.github/skills/scientific-rcsb-pdb-search/SKILL.md +280 -0
- package/src/.github/skills/scientific-reactome-pathways/SKILL.md +242 -0
- package/src/.github/skills/scientific-uniprot-proteome/SKILL.md +273 -0
- package/src/.github/skills/scientific-variant-interpretation/SKILL.md +4 -0
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
## Overview
|
|
9
9
|
|
|
10
|
-
このディレクトリには、Exp-01〜13 で蓄積した科学データ解析技法を Agent Skills として体系化した **
|
|
10
|
+
このディレクトリには、Exp-01〜13 で蓄積した科学データ解析技法を Agent Skills として体系化した **148 個**のスキルを格納しています。Copilot がプロンプトの文脈に応じて適切なスキルを自動ロードし、各実験で確立した解析パターンを再利用します。99 のスキルは [ToolUniverse](https://github.com/mims-harvard/ToolUniverse) SMCP 経由で 1,200 以上の外部科学データベースツールとも連携可能です。
|
|
11
11
|
|
|
12
12
|
### パイプラインフロー
|
|
13
13
|
|
|
@@ -208,7 +208,7 @@ symbolic-mathematics ──→ systems-biology ──→ admet-pharmacokinetics
|
|
|
208
208
|
|
|
209
209
|
### ToolUniverse MCP ツール連携
|
|
210
210
|
|
|
211
|
-
|
|
211
|
+
99 のスキル(HIGH 13 + MEDIUM 9 + Phase 3: 20 + Phase 4: 8 + Phase 5: 9 + Phase 6: 7 + Phase 7: 4 + Phase 8: 4 + Phase 9: 5 + Phase 10: 6 + Phase 11: 8 new + 6 existing key additions)は、[ToolUniverse](https://github.com/mims-harvard/ToolUniverse) SMCP サーバー経由で 1,200 以上の外部科学ツールを利用可能です。各 SKILL.md 内の `### 利用可能ツール` セクションに対応ツールが記載されています。
|
|
212
212
|
|
|
213
213
|
```
|
|
214
214
|
SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・計算)
|
|
@@ -259,7 +259,15 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
259
259
|
│ semantic-scholar │───MCP──│ Semantic Scholar Graph API │
|
|
260
260
|
│ pharmgkb-pgx │───MCP──│ PharmGKB, CPIC Guidelines │
|
|
261
261
|
│ crossref-metadata │───MCP──│ CrossRef DOI/Metadata │
|
|
262
|
-
│
|
|
262
|
+
│ uniprot-proteome │───MCP──│ UniProt REST API │
|
|
263
|
+
│ rcsb-pdb-search │───MCP──│ RCSB PDB Search/Data API │
|
|
264
|
+
│ opentargets-genetics │───MCP──│ Open Targets GraphQL │
|
|
265
|
+
│ reactome-pathways │───MCP──│ Reactome Content Service │
|
|
266
|
+
│ depmap-dependencies │───MCP──│ DepMap Portal, Cell Model │
|
|
267
|
+
│ drugbank-resources │───MCP──│ DrugBank API │
|
|
268
|
+
│ civic-evidence │───MCP──│ CIViC REST API │
|
|
269
|
+
│ gnomad-variants │───MCP──│ gnomAD GraphQL API │
|
|
270
|
+
│ ... (99 skills total) │ │ ... (1,200+ tools) │
|
|
263
271
|
└──────────────────────┘ └─────────────────────────────┘
|
|
264
272
|
```
|
|
265
273
|
|
|
@@ -272,18 +280,18 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
272
280
|
| C. 機械学習・モデリング | 3 | 回帰・分類・特徴量重要度 |
|
|
273
281
|
| D. 実験計画・プロセス最適化 | 2 | DOE・応答曲面法・ベイズ最適化 |
|
|
274
282
|
| E. 信号・スペクトル・時系列 | 4 | スペクトル解析・生体信号・時系列分解・神経電気生理学 |
|
|
275
|
-
| F. 生命科学・オミクス |
|
|
283
|
+
| F. 生命科学・オミクス | 24 | バイオインフォ・メタボロ・ゲノム配列・マルチオミクス・ネットワーク・プロテオミクス・トランスクリプトミクス・パスウェイ濃縮・代謝物 DB・HPA・ゲノム配列ツール・非コード RNA・オントロジー・EBI DB 群・Ensembl ゲノミクス・STRING/BioGRID PPI・発現比較・モデル生物 DB・GEO 発現プロファイル・寄生虫ゲノミクス・ArrayExpress 発現アーカイブ・GTEx 組織発現・UniProt プロテオーム・Reactome パスウェイ |
|
|
276
284
|
| G. 化学・材料・イメージング | 8 | ケモインフォ・材料特性評価・画像形態解析・計算材料科学・ChEMBL アッセイマイニング・MD シミュレーション・高度イメージング・深層化学 |
|
|
277
285
|
| H. 臨床・疫学・メタ科学 | 5 | 生存解析・因果推論・メタアナリシス・臨床試験解析・臨床レポート |
|
|
278
286
|
| I. Deep Research・文献検索 | 4 | 科学文献深層リサーチ・エビデンス階層評価・マルチ DB 文献検索・引用ネットワーク・プレプリント横断検索・Semantic Scholar 学術グラフ |
|
|
279
|
-
| J. 創薬・ファーマコロジー |
|
|
280
|
-
| K. 構造生物学・タンパク質工学 |
|
|
281
|
-
| L. 精密医療・臨床意思決定 |
|
|
287
|
+
| J. 創薬・ファーマコロジー | 8 | 標的プロファイリング・ADMET/PK・ドラッグリポジショニング・分子ドッキング・薬理学的ターゲット・化合物スクリーニング・NCI-60 スクリーニング・DrugBank リソース |
|
|
288
|
+
| K. 構造生物学・タンパク質工学 | 7 | PDB/AlphaFold 構造解析・de novo タンパク質設計・PPI ネットワーク・ドメイン/ファミリー・構造プロテオミクス・AlphaFold DB 構造予測・RCSB PDB 構造検索 |
|
|
289
|
+
| L. 精密医療・臨床意思決定 | 5 | 変異解釈 (ACMG/AMP)・エビデンスベース臨床意思決定・バリアント効果予測・CIViC 臨床エビデンス・gnomAD バリアント |
|
|
282
290
|
| M. 実験室自動化・データ管理 | 2 | 液体ハンドリング・プロトコル管理・ELN/LIMS 連携・ラボデータ管理 |
|
|
283
291
|
| N. 科学プレゼンテーション・図式 | 2 | 科学スライド・ポスター・ワークフロー図・科学図式 |
|
|
284
292
|
| O. 研究計画・グラント・規制 | 3 | 助成金申請書・研究方法論・倫理審査・規制科学 |
|
|
285
293
|
| P. ファーマコビジランス・薬理ゲノミクス | 3 | FAERS 不均衡分析・MedDRA 階層・安全性シグナル検出・PGx 代謝型・PharmGKB 臨床アノテーション |
|
|
286
|
-
| Q. 腫瘍学・疾患研究 |
|
|
294
|
+
| Q. 腫瘍学・疾患研究 | 8 | 精密腫瘍学 (CIViC/OncoKB)・疾患-遺伝子関連 (GWAS/Orphanet)・がんゲノミクス (COSMIC/DepMap)・希少疾患遺伝学・細胞株リソース・ICGC がんゲノムデータ・Open Targets 遺伝学・DepMap 依存性 |
|
|
287
295
|
| R. 量子・先端計算 | 7 | 量子計算・GNN・ベイズ統計・説明可能 AI・深層学習・ヘルスケア AI・強化学習 |
|
|
288
296
|
| S. 医用イメージング | 1 | DICOM/NIfTI・WSI 病理画像・Radiomics・MONAI |
|
|
289
297
|
| T. シングルセル・空間・エピゲノミクス | 11 | scRNA-seq・Visium・MERFISH・CELLxGENE・RNA velocity・エピゲノミクス・レギュラトリーゲノミクス・摂動解析・scVI 統合・scATAC-seq/Signac・GPU シングルセル・ENCODE/SCREEN・Human Cell Atlas・高度 Squidpy 空間解析 |
|
|
@@ -363,9 +371,9 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
363
371
|
| 24 | [scientific-time-series](scientific-time-series/SKILL.md) | STL 分解・SARIMA 予測・変化点検出・FFT 周期解析・Granger 因果 | 汎用 |
|
|
364
372
|
| 67 | [scientific-neuroscience-electrophysiology](scientific-neuroscience-electrophysiology/SKILL.md) | SpikeInterface/Kilosort4 スパイクソート・MNE EEG/ERP・NeuroKit2 HRV/EDA・脳機能結合 | 汎用 |
|
|
365
373
|
|
|
366
|
-
### F. 生命科学・オミクス(
|
|
374
|
+
### F. 生命科学・オミクス(24 種)
|
|
367
375
|
|
|
368
|
-
バイオ・オミクス・ネットワーク解析・オントロジー・EBI データベース・ゲノミクス・PPI・発現比較・モデル生物 DB・GEO 発現プロファイル・寄生虫ゲノミクス・ArrayExpress 発現アーカイブ・GTEx
|
|
376
|
+
バイオ・オミクス・ネットワーク解析・オントロジー・EBI データベース・ゲノミクス・PPI・発現比較・モデル生物 DB・GEO 発現プロファイル・寄生虫ゲノミクス・ArrayExpress 発現アーカイブ・GTEx 組織発現・UniProt プロテオーム・Reactome パスウェイを担うスキル群。
|
|
369
377
|
|
|
370
378
|
| # | Skill | 説明 | 参照 Exp |
|
|
371
379
|
|---|---|---|---|
|
|
@@ -391,6 +399,8 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
391
399
|
| 132 | [scientific-parasite-genomics](scientific-parasite-genomics/SKILL.md) | PlasmoDB/VectorBase/ToxoDB 寄生虫ゲノミクス・薬剤標的同定 | 汎用 |
|
|
392
400
|
| 135 | [scientific-arrayexpress-expression](scientific-arrayexpress-expression/SKILL.md) | ArrayExpress/BioStudies REST API 発現実験検索・SDRF メタデータ・データ再解析 | 汎用 |
|
|
393
401
|
| 137 | [scientific-gtex-tissue-expression](scientific-gtex-tissue-expression/SKILL.md) | GTEx Portal REST API v2 組織特異的発現・eQTL・多組織比較 | 汎用 |
|
|
402
|
+
| 141 | [scientific-uniprot-proteome](scientific-uniprot-proteome/SKILL.md) | UniProt REST API プロテオーム検索・ID マッピング・ドメイン/特徴抽出 | 汎用 |
|
|
403
|
+
| 144 | [scientific-reactome-pathways](scientific-reactome-pathways/SKILL.md) | Reactome Content Service パスウェイ検索・UniProt マッピング・参加者取得 | 汎用 |
|
|
394
404
|
|
|
395
405
|
### G. 化学・材料・イメージング(8 種)
|
|
396
406
|
|
|
@@ -430,9 +440,9 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
430
440
|
| 97 | [scientific-preprint-archive](scientific-preprint-archive/SKILL.md) | bioRxiv/medRxiv/arXiv/PMC/CORE/Zenodo/OpenAIRE/Unpaywall プレプリント・OA 横断検索 | 汎用 |
|
|
431
441
|
| 136 | [scientific-semantic-scholar](scientific-semantic-scholar/SKILL.md) | Semantic Scholar Academic Graph API 論文検索・引用グラフ・著者プロファイル・TLDR | 汎用 |
|
|
432
442
|
|
|
433
|
-
### J. 創薬・ファーマコロジー(
|
|
443
|
+
### J. 創薬・ファーマコロジー(8 種)
|
|
434
444
|
|
|
435
|
-
ドラッグディスカバリーの標的評価・薬物動態・リポジショニング・薬理学的ターゲット・化合物スクリーニング・NCI-60
|
|
445
|
+
ドラッグディスカバリーの標的評価・薬物動態・リポジショニング・薬理学的ターゲット・化合物スクリーニング・NCI-60 スクリーニング・DrugBank リソースを担うスキル群。
|
|
436
446
|
|
|
437
447
|
| # | Skill | 説明 | 参照 Exp |
|
|
438
448
|
|---|---|---|---|
|
|
@@ -443,10 +453,11 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
443
453
|
| 89 | [scientific-pharmacology-targets](scientific-pharmacology-targets/SKILL.md) | BindingDB/GPCRdb/GtoPdb/BRENDA/Pharos 薬理学的ターゲットプロファイリング | 汎用 |
|
|
444
454
|
| 94 | [scientific-compound-screening](scientific-compound-screening/SKILL.md) | ZINC 化合物ライブラリ検索・バーチャルスクリーニング前処理 | 汎用 |
|
|
445
455
|
| 120 | [scientific-nci60-screening](scientific-nci60-screening/SKILL.md) | NCI-60/CellMiner/DepMap がん細胞株薬剤応答スクリーニング | 汎用 |
|
|
456
|
+
| 146 | [scientific-drugbank-resources](scientific-drugbank-resources/SKILL.md) | DrugBank API 薬剤情報・薬理 MOA・標的タンパク質・薬物相互作用 | 汎用 |
|
|
446
457
|
|
|
447
|
-
### K. 構造生物学・タンパク質工学(
|
|
458
|
+
### K. 構造生物学・タンパク質工学(7 種)
|
|
448
459
|
|
|
449
|
-
タンパク質構造解析・設計・PPI ネットワーク・ドメイン解析・構造プロテオミクス・AlphaFold DB
|
|
460
|
+
タンパク質構造解析・設計・PPI ネットワーク・ドメイン解析・構造プロテオミクス・AlphaFold DB 構造予測・RCSB PDB 構造検索を担うスキル群。
|
|
450
461
|
|
|
451
462
|
| # | Skill | 説明 | 参照 Exp |
|
|
452
463
|
|---|---|---|---|
|
|
@@ -456,15 +467,19 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
456
467
|
| 86 | [scientific-protein-domain-family](scientific-protein-domain-family/SKILL.md) | InterPro/InterProScan ドメイン予測・ファミリー分類・アーキテクチャ可視化 | 汎用 |
|
|
457
468
|
| 93 | [scientific-structural-proteomics](scientific-structural-proteomics/SKILL.md) | EMDB/PDBe/Proteins API/Complex Portal/DeepGO/EVE 構造プロテオミクス | 汎用 |
|
|
458
469
|
| 134 | [scientific-alphafold-structures](scientific-alphafold-structures/SKILL.md) | AlphaFold DB REST API 構造予測取得・pLDDT 信頼度・PAE 解析 | 汎用 |
|
|
470
|
+
| 142 | [scientific-rcsb-pdb-search](scientific-rcsb-pdb-search/SKILL.md) | RCSB PDB Search/Data API 構造検索・メタデータ・リガンド情報 | 汎用 |
|
|
459
471
|
|
|
460
|
-
### L. 精密医療・臨床意思決定(
|
|
472
|
+
### L. 精密医療・臨床意思決定(5 種)
|
|
461
473
|
|
|
462
|
-
|
|
474
|
+
バリアント解釈とエビデンスベース臨床判断・CIViC 臨床エビデンス・gnomAD バリアントを担うスキル群。
|
|
463
475
|
|
|
464
476
|
| # | Skill | 説明 | 参照 Exp |
|
|
465
477
|
|---|---|---|---|
|
|
466
478
|
| 42 | [scientific-variant-interpretation](scientific-variant-interpretation/SKILL.md) | ACMG/AMP 28 基準・薬理ゲノミクス (CPIC)・OncoKB 体細胞変異レベル | 汎用 |
|
|
467
479
|
| 43 | [scientific-clinical-decision-support](scientific-clinical-decision-support/SKILL.md) | GRADE エビデンス枠組・精密腫瘍学ワークフロー・臨床試験マッチング | 汎用 || 80 | [scientific-variant-effect-prediction](scientific-variant-effect-prediction/SKILL.md) | AlphaMissense/CADD/SpliceAI バリアント効果予測・コンセンサス病原性判定 | 汎用 |
|
|
480
|
+
| 147 | [scientific-civic-evidence](scientific-civic-evidence/SKILL.md) | CIViC REST API がんバリアント臨床解釈・エビデンス・アサーション | 汎用 |
|
|
481
|
+
| 148 | [scientific-gnomad-variants](scientific-gnomad-variants/SKILL.md) | gnomAD GraphQL 集団アレル頻度・遺伝子制約 (pLI/LOEUF)・リージョンクエリ | 汎用 |
|
|
482
|
+
|
|
468
483
|
### M. 実験室自動化・データ管理(2 種)
|
|
469
484
|
|
|
470
485
|
ラボ実験の自動化とデータ管理を担うスキル群。
|
|
@@ -503,9 +518,9 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
503
518
|
| 75 | [scientific-pharmacogenomics](scientific-pharmacogenomics/SKILL.md) | PharmGKB/CPIC ガイドライン・Star アレル・代謝型・FDA PGx バイオマーカー | 汎用 |
|
|
504
519
|
| 138 | [scientific-pharmgkb-pgx](scientific-pharmgkb-pgx/SKILL.md) | PharmGKB REST API 臨床アノテーション・薬物遺伝子関連・投与量ガイドライン | 汎用 |
|
|
505
520
|
|
|
506
|
-
### Q. 腫瘍学・疾患研究(
|
|
521
|
+
### Q. 腫瘍学・疾患研究(8 種)
|
|
507
522
|
|
|
508
|
-
精密腫瘍学・疾患-遺伝子関連研究・がんゲノミクス・希少疾患遺伝学・細胞株リソース・ICGC
|
|
523
|
+
精密腫瘍学・疾患-遺伝子関連研究・がんゲノミクス・希少疾患遺伝学・細胞株リソース・ICGC がんゲノムデータ・Open Targets 遺伝学・DepMap 依存性を担うスキル群。
|
|
509
524
|
|
|
510
525
|
| # | Skill | 説明 | 参照 Exp |
|
|
511
526
|
|---|---|---|---|
|
|
@@ -515,6 +530,8 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
515
530
|
| 87 | [scientific-rare-disease-genetics](scientific-rare-disease-genetics/SKILL.md) | OMIM/Orphanet/DisGeNET/IMPC 希少疾患遺伝学・統合解析 | 汎用 |
|
|
516
531
|
| 101 | [scientific-cell-line-resources](scientific-cell-line-resources/SKILL.md) | Cellosaurus 細胞株検索・STR プロファイル検証・コンタミネーション検出 | 汎用 |
|
|
517
532
|
| 140 | [scientific-icgc-cancer-data](scientific-icgc-cancer-data/SKILL.md) | ICGC DCC API 国際がんゲノムデータ・体細胞変異・がん種統計 | 汎用 |
|
|
533
|
+
| 143 | [scientific-opentargets-genetics](scientific-opentargets-genetics/SKILL.md) | Open Targets Platform GraphQL 標的-疾患アソシエーション・薬剤エビデンス・L2G | 汎用 |
|
|
534
|
+
| 145 | [scientific-depmap-dependencies](scientific-depmap-dependencies/SKILL.md) | DepMap Portal CRISPR/RNAi 遺伝子依存性・薬剤感受性 | 汎用 |
|
|
518
535
|
|
|
519
536
|
### R. 量子・先端計算(7 種)
|
|
520
537
|
|
|
@@ -725,7 +742,9 @@ Skills は `.github/skills/` に配置されているため、Copilot が自動
|
|
|
725
742
|
│ ├── scientific-geo-expression/
|
|
726
743
|
│ ├── scientific-parasite-genomics/
|
|
727
744
|
│ ├── scientific-arrayexpress-expression/
|
|
728
|
-
│
|
|
745
|
+
│ ├── scientific-gtex-tissue-expression/
|
|
746
|
+
│ ├── scientific-uniprot-proteome/
|
|
747
|
+
│ └── scientific-reactome-pathways/
|
|
729
748
|
│
|
|
730
749
|
│── [G] 化学・材料・イメージング
|
|
731
750
|
│ ├── scientific-cheminformatics/
|
|
@@ -757,7 +776,8 @@ Skills は `.github/skills/` に配置されているため、Copilot が自動
|
|
|
757
776
|
│ ├── scientific-molecular-docking/
|
|
758
777
|
│ ├── scientific-pharmacology-targets/
|
|
759
778
|
│ ├── scientific-compound-screening/
|
|
760
|
-
│
|
|
779
|
+
│ ├── scientific-nci60-screening/
|
|
780
|
+
│ └── scientific-drugbank-resources/
|
|
761
781
|
│
|
|
762
782
|
├── [K] 構造生物学・タンパク質工学
|
|
763
783
|
│ ├── scientific-protein-structure-analysis/
|
|
@@ -765,12 +785,15 @@ Skills は `.github/skills/` に配置されているため、Copilot が自動
|
|
|
765
785
|
│ ├── scientific-protein-interaction-network/
|
|
766
786
|
│ ├── scientific-protein-domain-family/
|
|
767
787
|
│ ├── scientific-structural-proteomics/
|
|
768
|
-
│
|
|
788
|
+
│ ├── scientific-alphafold-structures/
|
|
789
|
+
│ └── scientific-rcsb-pdb-search/
|
|
769
790
|
│
|
|
770
791
|
├── [L] 精密医療・臨床意思決定
|
|
771
792
|
│ ├── scientific-variant-interpretation/
|
|
772
793
|
│ ├── scientific-clinical-decision-support/
|
|
773
|
-
│
|
|
794
|
+
│ ├── scientific-variant-effect-prediction/
|
|
795
|
+
│ ├── scientific-civic-evidence/
|
|
796
|
+
│ └── scientific-gnomad-variants/
|
|
774
797
|
│
|
|
775
798
|
├── [M] 実験室自動化・データ管理
|
|
776
799
|
│ ├── scientific-lab-automation/
|
|
@@ -796,7 +819,9 @@ Skills は `.github/skills/` に配置されているため、Copilot が自動
|
|
|
796
819
|
│ ├── scientific-cancer-genomics/
|
|
797
820
|
│ ├── scientific-rare-disease-genetics/
|
|
798
821
|
│ ├── scientific-cell-line-resources/
|
|
799
|
-
│
|
|
822
|
+
│ ├── scientific-icgc-cancer-data/
|
|
823
|
+
│ ├── scientific-opentargets-genetics/
|
|
824
|
+
│ └── scientific-depmap-dependencies/
|
|
800
825
|
│
|
|
801
826
|
├── [R] 量子・先端計算
|
|
802
827
|
│ ├── scientific-quantum-computing/
|
package/package.json
CHANGED
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scientific-civic-evidence
|
|
3
|
+
description: |
|
|
4
|
+
CIViC 臨床エビデンススキル。CIViC (Clinical Interpretation
|
|
5
|
+
of Variants in Cancer) REST API を用いたバリアント臨床解釈・
|
|
6
|
+
エビデンスアイテム・分子プロファイル・アサーション検索。
|
|
7
|
+
ToolUniverse 連携: civic。
|
|
8
|
+
tu_tools:
|
|
9
|
+
- key: civic
|
|
10
|
+
name: CIViC
|
|
11
|
+
description: がんバリアント臨床解釈データベース
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Scientific CIViC Evidence
|
|
15
|
+
|
|
16
|
+
CIViC (Clinical Interpretation of Variants in Cancer) REST API
|
|
17
|
+
を活用したバリアント臨床解釈・エビデンスアイテム取得・
|
|
18
|
+
分子プロファイル・アサーションパイプラインを提供する。
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
- がんバリアントの臨床的解釈を検索するとき
|
|
23
|
+
- エビデンスアイテム (薬剤応答・予後・診断) を取得するとき
|
|
24
|
+
- 遺伝子ごとのバリアントサマリーを確認するとき
|
|
25
|
+
- 分子プロファイル (Molecular Profile) を検索するとき
|
|
26
|
+
- アサーション (ガイドライン推奨) を取得するとき
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Quick Start
|
|
31
|
+
|
|
32
|
+
## 1. バリアント検索・臨床解釈
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
import requests
|
|
36
|
+
import pandas as pd
|
|
37
|
+
|
|
38
|
+
CIVIC_API = "https://civicdb.org/api"
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def civic_variant_search(gene_name, variant_name=None,
|
|
42
|
+
limit=50):
|
|
43
|
+
"""
|
|
44
|
+
CIViC — バリアント検索。
|
|
45
|
+
|
|
46
|
+
Parameters:
|
|
47
|
+
gene_name: str — 遺伝子名 (例: "BRAF")
|
|
48
|
+
variant_name: str — バリアント名
|
|
49
|
+
(例: "V600E")
|
|
50
|
+
limit: int — 最大結果数
|
|
51
|
+
"""
|
|
52
|
+
url = f"{CIVIC_API}/variants"
|
|
53
|
+
params = {"count": limit}
|
|
54
|
+
|
|
55
|
+
# 遺伝子名で検索
|
|
56
|
+
gene_url = f"{CIVIC_API}/genes/{gene_name}"
|
|
57
|
+
try:
|
|
58
|
+
resp = requests.get(gene_url, timeout=30)
|
|
59
|
+
if resp.status_code == 200:
|
|
60
|
+
gene_data = resp.json()
|
|
61
|
+
else:
|
|
62
|
+
# 検索 API フォールバック
|
|
63
|
+
search_url = f"{CIVIC_API}/genes"
|
|
64
|
+
params_g = {"name": gene_name, "count": 5}
|
|
65
|
+
resp = requests.get(search_url,
|
|
66
|
+
params=params_g,
|
|
67
|
+
timeout=30)
|
|
68
|
+
resp.raise_for_status()
|
|
69
|
+
records = resp.json().get("records", [])
|
|
70
|
+
gene_data = records[0] if records else {}
|
|
71
|
+
except Exception as e:
|
|
72
|
+
print(f" CIViC gene lookup: {e}")
|
|
73
|
+
gene_data = {}
|
|
74
|
+
|
|
75
|
+
if not gene_data:
|
|
76
|
+
return pd.DataFrame()
|
|
77
|
+
|
|
78
|
+
variants = gene_data.get("variants", [])
|
|
79
|
+
rows = []
|
|
80
|
+
for v in variants[:limit]:
|
|
81
|
+
name = v.get("name", "")
|
|
82
|
+
if variant_name and variant_name.lower() \
|
|
83
|
+
not in name.lower():
|
|
84
|
+
continue
|
|
85
|
+
rows.append({
|
|
86
|
+
"variant_id": v.get("id", ""),
|
|
87
|
+
"gene": gene_name,
|
|
88
|
+
"variant_name": name,
|
|
89
|
+
"description": (v.get("description", "")
|
|
90
|
+
[:200]),
|
|
91
|
+
"evidence_count": len(
|
|
92
|
+
v.get("evidence_items", [])),
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
df = pd.DataFrame(rows)
|
|
96
|
+
print(f"CIViC variants: {gene_name} → {len(df)}")
|
|
97
|
+
return df
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
def civic_gene_summary(gene_name):
|
|
101
|
+
"""
|
|
102
|
+
CIViC — 遺伝子サマリー取得。
|
|
103
|
+
|
|
104
|
+
Parameters:
|
|
105
|
+
gene_name: str — 遺伝子名 (例: "EGFR")
|
|
106
|
+
"""
|
|
107
|
+
url = f"{CIVIC_API}/genes/{gene_name}"
|
|
108
|
+
resp = requests.get(url, timeout=30)
|
|
109
|
+
resp.raise_for_status()
|
|
110
|
+
data = resp.json()
|
|
111
|
+
|
|
112
|
+
result = {
|
|
113
|
+
"gene_id": data.get("id", ""),
|
|
114
|
+
"name": data.get("name", ""),
|
|
115
|
+
"description": data.get("description", ""),
|
|
116
|
+
"n_variants": len(data.get("variants", [])),
|
|
117
|
+
"aliases": "; ".join(
|
|
118
|
+
data.get("aliases", [])),
|
|
119
|
+
}
|
|
120
|
+
return result
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## 2. エビデンスアイテム取得
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
def civic_evidence_items(variant_id, limit=50):
|
|
127
|
+
"""
|
|
128
|
+
CIViC — エビデンスアイテム取得。
|
|
129
|
+
|
|
130
|
+
Parameters:
|
|
131
|
+
variant_id: int — バリアント ID
|
|
132
|
+
limit: int — 最大結果数
|
|
133
|
+
"""
|
|
134
|
+
url = f"{CIVIC_API}/variants/{variant_id}"
|
|
135
|
+
resp = requests.get(url, timeout=30)
|
|
136
|
+
resp.raise_for_status()
|
|
137
|
+
data = resp.json()
|
|
138
|
+
|
|
139
|
+
rows = []
|
|
140
|
+
for ev in data.get("evidence_items", [])[:limit]:
|
|
141
|
+
drugs = [d.get("name", "")
|
|
142
|
+
for d in ev.get("drugs", [])]
|
|
143
|
+
rows.append({
|
|
144
|
+
"evidence_id": ev.get("id", ""),
|
|
145
|
+
"variant_id": variant_id,
|
|
146
|
+
"evidence_type": ev.get(
|
|
147
|
+
"evidence_type", ""),
|
|
148
|
+
"evidence_level": ev.get(
|
|
149
|
+
"evidence_level", ""),
|
|
150
|
+
"evidence_direction": ev.get(
|
|
151
|
+
"evidence_direction", ""),
|
|
152
|
+
"clinical_significance": ev.get(
|
|
153
|
+
"clinical_significance", ""),
|
|
154
|
+
"disease": ev.get("disease", {}).get(
|
|
155
|
+
"name", ""),
|
|
156
|
+
"drugs": "; ".join(drugs),
|
|
157
|
+
"rating": ev.get("rating", ""),
|
|
158
|
+
"status": ev.get("status", ""),
|
|
159
|
+
"source_citation": ev.get(
|
|
160
|
+
"source", {}).get("citation", ""),
|
|
161
|
+
})
|
|
162
|
+
|
|
163
|
+
df = pd.DataFrame(rows)
|
|
164
|
+
print(f"CIViC evidence: variant {variant_id} "
|
|
165
|
+
f"→ {len(df)} items")
|
|
166
|
+
return df
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## 3. アサーション取得
|
|
170
|
+
|
|
171
|
+
```python
|
|
172
|
+
def civic_assertions(gene_name=None, limit=50):
|
|
173
|
+
"""
|
|
174
|
+
CIViC — アサーション (ガイドライン推奨) 取得。
|
|
175
|
+
|
|
176
|
+
Parameters:
|
|
177
|
+
gene_name: str — 遺伝子名フィルタ
|
|
178
|
+
limit: int — 最大結果数
|
|
179
|
+
"""
|
|
180
|
+
url = f"{CIVIC_API}/assertions"
|
|
181
|
+
params = {"count": limit}
|
|
182
|
+
|
|
183
|
+
resp = requests.get(url, params=params, timeout=30)
|
|
184
|
+
resp.raise_for_status()
|
|
185
|
+
data = resp.json()
|
|
186
|
+
|
|
187
|
+
rows = []
|
|
188
|
+
for a in data.get("records", []):
|
|
189
|
+
genes = [g.get("name", "")
|
|
190
|
+
for g in a.get("genes", [])]
|
|
191
|
+
if gene_name and gene_name not in genes:
|
|
192
|
+
continue
|
|
193
|
+
drugs = [d.get("name", "")
|
|
194
|
+
for d in a.get("drugs", [])]
|
|
195
|
+
rows.append({
|
|
196
|
+
"assertion_id": a.get("id", ""),
|
|
197
|
+
"genes": "; ".join(genes),
|
|
198
|
+
"variant": a.get("variant", {}).get(
|
|
199
|
+
"name", ""),
|
|
200
|
+
"disease": a.get("disease", {}).get(
|
|
201
|
+
"name", ""),
|
|
202
|
+
"drugs": "; ".join(drugs),
|
|
203
|
+
"assertion_type": a.get(
|
|
204
|
+
"assertion_type", ""),
|
|
205
|
+
"assertion_direction": a.get(
|
|
206
|
+
"assertion_direction", ""),
|
|
207
|
+
"clinical_significance": a.get(
|
|
208
|
+
"clinical_significance", ""),
|
|
209
|
+
"amp_level": a.get("amp_level", ""),
|
|
210
|
+
"status": a.get("status", ""),
|
|
211
|
+
})
|
|
212
|
+
|
|
213
|
+
df = pd.DataFrame(rows)
|
|
214
|
+
print(f"CIViC assertions: {len(df)}")
|
|
215
|
+
return df
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## 4. CIViC 統合パイプライン
|
|
219
|
+
|
|
220
|
+
```python
|
|
221
|
+
def civic_pipeline(gene_name, variant_name=None,
|
|
222
|
+
output_dir="results"):
|
|
223
|
+
"""
|
|
224
|
+
CIViC 統合パイプライン。
|
|
225
|
+
|
|
226
|
+
Parameters:
|
|
227
|
+
gene_name: str — 遺伝子名 (例: "BRAF")
|
|
228
|
+
variant_name: str — バリアント名 (例: "V600E")
|
|
229
|
+
output_dir: str — 出力ディレクトリ
|
|
230
|
+
"""
|
|
231
|
+
from pathlib import Path
|
|
232
|
+
output_dir = Path(output_dir)
|
|
233
|
+
output_dir.mkdir(parents=True, exist_ok=True)
|
|
234
|
+
|
|
235
|
+
# 1) 遺伝子サマリー
|
|
236
|
+
summary = civic_gene_summary(gene_name)
|
|
237
|
+
pd.DataFrame([summary]).to_csv(
|
|
238
|
+
output_dir / "civic_gene.csv", index=False)
|
|
239
|
+
|
|
240
|
+
# 2) バリアント検索
|
|
241
|
+
variants = civic_variant_search(gene_name,
|
|
242
|
+
variant_name)
|
|
243
|
+
variants.to_csv(output_dir / "civic_variants.csv",
|
|
244
|
+
index=False)
|
|
245
|
+
|
|
246
|
+
# 3) トップバリアントのエビデンス
|
|
247
|
+
if not variants.empty:
|
|
248
|
+
top_vid = variants.iloc[0]["variant_id"]
|
|
249
|
+
evidence = civic_evidence_items(top_vid)
|
|
250
|
+
evidence.to_csv(
|
|
251
|
+
output_dir / "civic_evidence.csv",
|
|
252
|
+
index=False)
|
|
253
|
+
|
|
254
|
+
# 4) アサーション
|
|
255
|
+
assertions = civic_assertions(gene_name)
|
|
256
|
+
assertions.to_csv(
|
|
257
|
+
output_dir / "civic_assertions.csv",
|
|
258
|
+
index=False)
|
|
259
|
+
|
|
260
|
+
print(f"CIViC pipeline: {gene_name} → {output_dir}")
|
|
261
|
+
return {"variants": variants}
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## ToolUniverse 連携
|
|
267
|
+
|
|
268
|
+
| TU Key | ツール名 | 連携内容 |
|
|
269
|
+
|--------|---------|---------|
|
|
270
|
+
| `civic` | CIViC | がんバリアント臨床解釈 (~12 tools) |
|
|
271
|
+
|
|
272
|
+
## パイプライン統合
|
|
273
|
+
|
|
274
|
+
```
|
|
275
|
+
variant-interpretation → civic-evidence → precision-oncology
|
|
276
|
+
(ClinVar バリアント) (CIViC REST) (精密腫瘍学)
|
|
277
|
+
│ │ ↓
|
|
278
|
+
gnomad-variants ────────────┘ drug-target-profiling
|
|
279
|
+
(集団頻度) │ (標的プロファイリング)
|
|
280
|
+
↓
|
|
281
|
+
opentargets-genetics
|
|
282
|
+
(OT 標的-疾患)
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
## パイプライン出力
|
|
286
|
+
|
|
287
|
+
| ファイル | 説明 | 次スキル |
|
|
288
|
+
|---------|------|---------|
|
|
289
|
+
| `results/civic_gene.csv` | 遺伝子サマリー | → cancer-genomics |
|
|
290
|
+
| `results/civic_variants.csv` | バリアント一覧 | → variant-interpretation |
|
|
291
|
+
| `results/civic_evidence.csv` | エビデンス | → precision-oncology |
|
|
292
|
+
| `results/civic_assertions.csv` | アサーション | → pharmacogenomics |
|