@nahisaho/satori 0.10.0 → 0.11.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 +73 -43
- package/package.json +1 -1
- package/src/.github/skills/scientific-clinical-trials-analytics/SKILL.md +340 -0
- package/src/.github/skills/scientific-computational-materials/SKILL.md +353 -0
- package/src/.github/skills/scientific-epigenomics-chromatin/SKILL.md +567 -0
- package/src/.github/skills/scientific-gene-expression-transcriptomics/SKILL.md +330 -0
- package/src/.github/skills/scientific-lab-data-management/SKILL.md +334 -0
- package/src/.github/skills/scientific-neuroscience-electrophysiology/SKILL.md +400 -0
- package/src/.github/skills/scientific-pharmacogenomics/SKILL.md +342 -0
- package/src/.github/skills/scientific-proteomics-mass-spectrometry/SKILL.md +401 -0
- package/src/.github/skills/scientific-regulatory-science/SKILL.md +256 -0
- package/src/.github/skills/scientific-scientific-schematics/SKILL.md +336 -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 として体系化した **76 個**のスキルを格納しています。Copilot がプロンプトの文脈に応じて適切なスキルを自動ロードし、各実験で確立した解析パターンを再利用します。42 のスキルは [ToolUniverse](https://github.com/mims-harvard/ToolUniverse) SMCP 経由で 1,200 以上の外部科学データベースツールとも連携可能です。
|
|
11
11
|
|
|
12
12
|
### パイプラインフロー
|
|
13
13
|
|
|
@@ -115,10 +115,20 @@ epidemiology-public-health → text-mining-nlp ← [X+Z 疫学・NLP]
|
|
|
115
115
|
| 疫学・公衆衛生 | `results/epi_risk_measures.json`, `results/spatial_clusters.json`, `results/dag_analysis.json` | → survival-clinical, causal-inference |
|
|
116
116
|
| 集団遺伝学 | `results/pop_structure.json`, `results/fst_matrix.json`, `results/selection_scan.json` | → disease-research, variant-interpretation |
|
|
117
117
|
| テキストマイニング | `results/ner_entities.json`, `results/knowledge_graph.json`, `results/topic_model.json` | → deep-research, meta-analysis |
|
|
118
|
+
| 神経電気生理学 | `results/spike_sorting.json`, `results/eeg_erp.json`, `results/connectivity.json` | → biosignal, deep-learning |
|
|
119
|
+
| プロテオミクス | `results/protein_quant.csv`, `results/ptm_sites.json`, `results/molecular_network.json` | → multi-omics, network-analysis |
|
|
120
|
+
| トランスクリプトミクス | `results/deseq2_results.csv`, `results/gsea/`, `figures/volcano_rnaseq.png` | → bioinformatics, multi-omics |
|
|
121
|
+
| 計算材料科学 | `results/structure.cif`, `figures/phase_diagram.png`, `figures/band_structure.png` | → quantum-computing |
|
|
122
|
+
| 臨床試験解析 | `results/clinical_trials.csv`, `results/competitive_landscape.json` | → survival-clinical, meta-analysis |
|
|
123
|
+
| ラボデータ管理 | `results/benchling_sequences.json`, `results/dnanexus_workflow_output.json` | → bioinformatics, lab-automation |
|
|
124
|
+
| 科学図式 | `figures/consort_flow.svg`, `figures/nn_architecture.svg`, `figures/pathway.md` | → presentation, writing |
|
|
125
|
+
| 規制科学 | `results/fda_orange_book.json`, `results/510k_clearances.csv`, `results/patent_search.csv` | → pharmacovigilance, clinical-trials |
|
|
126
|
+
| 薬理ゲノミクス | `results/pgx_report.json`, `results/cpic_recommendations.json` | → variant-interpretation, clinical-decision |
|
|
127
|
+
| エピゲノミクス | `results/peak_calls.bed`, `results/dmr_results.csv`, `results/chromatin_states.bed` | → single-cell, multi-omics |
|
|
118
128
|
|
|
119
129
|
### ToolUniverse MCP ツール連携
|
|
120
130
|
|
|
121
|
-
|
|
131
|
+
42 のスキル(HIGH 13 + MEDIUM 9 + 新規 20)は、[ToolUniverse](https://github.com/mims-harvard/ToolUniverse) SMCP サーバー経由で 1,200 以上の外部科学ツールを利用可能です。各 SKILL.md 内の `### 利用可能ツール` セクションに対応ツールが記載されています。
|
|
122
132
|
|
|
123
133
|
```
|
|
124
134
|
SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・計算)
|
|
@@ -129,7 +139,7 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
129
139
|
│ drug-target-profiling│───MCP──│ UniProt, ChEMBL, DGIdb │
|
|
130
140
|
│ variant-interpretation│──MCP──│ ClinVar, gnomAD, ClinGen │
|
|
131
141
|
│ admet-pharmacokinetics│──MCP──│ ADMET-AI, PubChem, ChEMBL │
|
|
132
|
-
│ ... (
|
|
142
|
+
│ ... (42 skills total) │ │ ... (1,200+ tools) │
|
|
133
143
|
└──────────────────────┘ └─────────────────────────────┘
|
|
134
144
|
```
|
|
135
145
|
|
|
@@ -141,22 +151,22 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
141
151
|
| B. 統計・探索的解析 | 3 | EDA・仮説検定・次元削減 |
|
|
142
152
|
| C. 機械学習・モデリング | 3 | 回帰・分類・特徴量重要度 |
|
|
143
153
|
| D. 実験計画・プロセス最適化 | 2 | DOE・応答曲面法・ベイズ最適化 |
|
|
144
|
-
| E. 信号・スペクトル・時系列 |
|
|
145
|
-
| F. 生命科学・オミクス |
|
|
146
|
-
| G. 化学・材料・イメージング |
|
|
147
|
-
| H. 臨床・疫学・メタ科学 |
|
|
154
|
+
| E. 信号・スペクトル・時系列 | 4 | スペクトル解析・生体信号・時系列分解・神経電気生理学 |
|
|
155
|
+
| F. 生命科学・オミクス | 7 | バイオインフォ・メタボロ・ゲノム配列・マルチオミクス・ネットワーク・プロテオミクス・トランスクリプトミクス |
|
|
156
|
+
| G. 化学・材料・イメージング | 4 | ケモインフォ・材料特性評価・画像形態解析・計算材料科学 |
|
|
157
|
+
| H. 臨床・疫学・メタ科学 | 4 | 生存解析・因果推論・メタアナリシス・臨床試験解析 |
|
|
148
158
|
| I. Deep Research | 1 | 科学文献深層リサーチ・エビデンス階層評価・ソース追跡・交差検証 |
|
|
149
159
|
| J. 創薬・ファーマコロジー | 3 | 標的プロファイリング・ADMET/PK・ドラッグリポジショニング |
|
|
150
160
|
| K. 構造生物学・タンパク質工学 | 2 | PDB/AlphaFold 構造解析・de novo タンパク質設計 |
|
|
151
161
|
| L. 精密医療・臨床意思決定 | 2 | 変異解釈 (ACMG/AMP)・エビデンスベース臨床意思決定 |
|
|
152
|
-
| M.
|
|
153
|
-
| N.
|
|
154
|
-
| O.
|
|
155
|
-
| P.
|
|
162
|
+
| M. 実験室自動化・データ管理 | 2 | 液体ハンドリング・プロトコル管理・ELN/LIMS 連携・ラボデータ管理 |
|
|
163
|
+
| N. 科学プレゼンテーション・図式 | 2 | 科学スライド・ポスター・ワークフロー図・科学図式 |
|
|
164
|
+
| O. 研究計画・グラント・規制 | 3 | 助成金申請書・研究方法論・倫理審査・規制科学 |
|
|
165
|
+
| P. ファーマコビジランス・薬理ゲノミクス | 2 | FAERS 不均衡分析・MedDRA 階層・安全性シグナル検出・PGx 代謝型 |
|
|
156
166
|
| Q. 腫瘍学・疾患研究 | 2 | 精密腫瘍学 (CIViC/OncoKB)・疾患-遺伝子関連 (GWAS/Orphanet) |
|
|
157
167
|
| R. 量子・先端計算 | 5 | 量子計算・GNN・ベイズ統計・説明可能 AI・深層学習 |
|
|
158
168
|
| S. 医用イメージング | 1 | DICOM/NIfTI・WSI 病理画像・Radiomics・MONAI |
|
|
159
|
-
| T.
|
|
169
|
+
| T. シングルセル・空間・エピゲノミクス | 3 | scRNA-seq・Visium・MERFISH・CELLxGENE・RNA velocity・エピゲノミクス |
|
|
160
170
|
| U. 免疫・感染症 | 2 | 免疫情報学・MHC 結合予測・病原体ゲノミクス・AMR・IEDB |
|
|
161
171
|
| V. マイクロバイオーム・環境 | 2 | 16S/メタゲノム・α/β 多様性・SDM・OBIS・GBIF |
|
|
162
172
|
| W. システム生物学 | 1 | SBML シミュレーション・FBA・GRN 推定・BioModels |
|
|
@@ -217,17 +227,18 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
217
227
|
| 20 | [scientific-doe](scientific-doe/SKILL.md) | 田口直交表・CCD/Box-Behnken・ANOVA 因子効果・ベイズ最適化 | 汎用 |
|
|
218
228
|
| 21 | [scientific-process-optimization](scientific-process-optimization/SKILL.md) | 応答曲面法 (ML-RSM)・パレート最適化・プロセスウィンドウ | 12, 13 |
|
|
219
229
|
|
|
220
|
-
### E. 信号・スペクトル・時系列(
|
|
230
|
+
### E. 信号・スペクトル・時系列(4 種)
|
|
221
231
|
|
|
222
|
-
|
|
232
|
+
波形・周波数領域・神経電気生理学の解析を担うスキル群。
|
|
223
233
|
|
|
224
234
|
| # | Skill | 説明 | 参照 Exp |
|
|
225
235
|
|---|---|---|---|
|
|
226
236
|
| 22 | [scientific-spectral-signal](scientific-spectral-signal/SKILL.md) | スペクトル前処理・フィルタリング・ピーク検出 | 11 |
|
|
227
237
|
| 23 | [scientific-biosignal-processing](scientific-biosignal-processing/SKILL.md) | ECG R波/HRV・EEG バンドパワー/ERP・EMG バースト・Poincaré | 08 |
|
|
228
238
|
| 24 | [scientific-time-series](scientific-time-series/SKILL.md) | STL 分解・SARIMA 予測・変化点検出・FFT 周期解析・Granger 因果 | 汎用 |
|
|
239
|
+
| 67 | [scientific-neuroscience-electrophysiology](scientific-neuroscience-electrophysiology/SKILL.md) | SpikeInterface/Kilosort4 スパイクソート・MNE EEG/ERP・NeuroKit2 HRV/EDA・脳機能結合 | 汎用 |
|
|
229
240
|
|
|
230
|
-
### F. 生命科学・オミクス(
|
|
241
|
+
### F. 生命科学・オミクス(7 種)
|
|
231
242
|
|
|
232
243
|
バイオ・オミクス・ネットワーク解析を担うスキル群。
|
|
233
244
|
|
|
@@ -238,26 +249,30 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
238
249
|
| 27 | [scientific-sequence-analysis](scientific-sequence-analysis/SKILL.md) | RSCU/CAI コドン解析・アラインメント・系統樹・ORF/CpG 島 | 09 |
|
|
239
250
|
| 28 | [scientific-multi-omics](scientific-multi-omics/SKILL.md) | CCA 正準相関・SNF ネットワーク融合・パスウェイ統合・マルチオミクスクラスタ | 汎用 |
|
|
240
251
|
| 29 | [scientific-network-analysis](scientific-network-analysis/SKILL.md) | ネットワーク構築・中心性・コミュニティ・PSP パス図 | 04, 07, 13 |
|
|
252
|
+
| 68 | [scientific-proteomics-mass-spectrometry](scientific-proteomics-mass-spectrometry/SKILL.md) | pyOpenMS LC-MS/MS・ペプチド ID・タンパク質定量・PTM・GNPS 分子ネットワーク | 汎用 |
|
|
253
|
+
| 69 | [scientific-gene-expression-transcriptomics](scientific-gene-expression-transcriptomics/SKILL.md) | GEO データ取得・PyDESeq2 差次発現・GTEx 組織発現/eQTL・GSEA | 汎用 |
|
|
241
254
|
|
|
242
|
-
### G. 化学・材料・イメージング(
|
|
255
|
+
### G. 化学・材料・イメージング(4 種)
|
|
243
256
|
|
|
244
|
-
|
|
257
|
+
化学構造・材料特性評価・画像形態解析・計算材料科学を担うスキル群。
|
|
245
258
|
|
|
246
259
|
| # | Skill | 説明 | 参照 Exp |
|
|
247
260
|
|---|---|---|---|
|
|
248
261
|
| 30 | [scientific-cheminformatics](scientific-cheminformatics/SKILL.md) | RDKit 分子記述子・Tanimoto・構造アラート・Lipinski | 02, 05 |
|
|
249
262
|
| 31 | [scientific-materials-characterization](scientific-materials-characterization/SKILL.md) | Thornton-Anders SZM・XRD Scherrer・Tauc プロット | 11, 12, 13 |
|
|
250
263
|
| 32 | [scientific-image-analysis](scientific-image-analysis/SKILL.md) | Otsu/Watershed セグメンテーション・粒径分布・GLCM テクスチャ・蛍光合成 | 汎用 |
|
|
264
|
+
| 70 | [scientific-computational-materials](scientific-computational-materials/SKILL.md) | pymatgen 結晶構造・Materials Project・相図・バンド構造/DOS・VASP/QE I/O | 汎用 |
|
|
251
265
|
|
|
252
|
-
### H. 臨床・疫学・メタ科学(
|
|
266
|
+
### H. 臨床・疫学・メタ科学(4 種)
|
|
253
267
|
|
|
254
|
-
|
|
268
|
+
臨床試験・因果推論・メタアナリシス・臨床試験解析を担うスキル群。
|
|
255
269
|
|
|
256
270
|
| # | Skill | 説明 | 参照 Exp |
|
|
257
271
|
|---|---|---|---|
|
|
258
272
|
| 33 | [scientific-survival-clinical](scientific-survival-clinical/SKILL.md) | Kaplan-Meier・Cox PH・検出力分析・安全性解析 | 03, 06 |
|
|
259
273
|
| 34 | [scientific-causal-inference](scientific-causal-inference/SKILL.md) | PSM 傾向スコア・IPW・DID・RDD・DAG 共変量選択・Rosenbaum 感度分析 | 汎用 |
|
|
260
274
|
| 35 | [scientific-meta-analysis](scientific-meta-analysis/SKILL.md) | 固定/ランダム効果モデル・Forest/Funnel プロット・Egger 検定・サブグループ | 汎用 |
|
|
275
|
+
| 71 | [scientific-clinical-trials-analytics](scientific-clinical-trials-analytics/SKILL.md) | ClinicalTrials.gov API v2 検索・競合ランドスケープ・AE/アウトカム抽出 | 汎用 |
|
|
261
276
|
|
|
262
277
|
### I. Deep Research(1 種)
|
|
263
278
|
|
|
@@ -295,38 +310,42 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
295
310
|
| 42 | [scientific-variant-interpretation](scientific-variant-interpretation/SKILL.md) | ACMG/AMP 28 基準・薬理ゲノミクス (CPIC)・OncoKB 体細胞変異レベル | 汎用 |
|
|
296
311
|
| 43 | [scientific-clinical-decision-support](scientific-clinical-decision-support/SKILL.md) | GRADE エビデンス枠組・精密腫瘍学ワークフロー・臨床試験マッチング | 汎用 |
|
|
297
312
|
|
|
298
|
-
### M.
|
|
313
|
+
### M. 実験室自動化・データ管理(2 種)
|
|
299
314
|
|
|
300
|
-
|
|
315
|
+
ラボ実験の自動化とデータ管理を担うスキル群。
|
|
301
316
|
|
|
302
317
|
| # | Skill | 説明 | 参照 Exp |
|
|
303
318
|
|---|---|---|---|
|
|
304
319
|
| 44 | [scientific-lab-automation](scientific-lab-automation/SKILL.md) | PyLabRobot/Opentrons プロトコル・SOP テンプレート・ELN/LIMS 連携・QC 検証 | 汎用 |
|
|
320
|
+
| 72 | [scientific-lab-data-management](scientific-lab-data-management/SKILL.md) | Benchling ELN/DNA 設計・DNAnexus PaaS・OMERO バイオイメージング・Protocols.io | 汎用 |
|
|
305
321
|
|
|
306
|
-
### N.
|
|
322
|
+
### N. 科学プレゼンテーション・図式(2 種)
|
|
307
323
|
|
|
308
|
-
|
|
324
|
+
学会発表用スライド・ポスター・科学図式のデザインを担うスキル群。
|
|
309
325
|
|
|
310
326
|
| # | Skill | 説明 | 参照 Exp |
|
|
311
327
|
|---|---|---|---|
|
|
312
328
|
| 45 | [scientific-presentation-design](scientific-presentation-design/SKILL.md) | 15 スライド構成テンプレート・tikzposter・matplotlib ワークフロー図・アクセシビリティ | 汎用 |
|
|
329
|
+
| 73 | [scientific-scientific-schematics](scientific-scientific-schematics/SKILL.md) | CONSORT フロー図・NN アーキテクチャ図・パスウェイ図・TikZ/SVG | 汎用 |
|
|
313
330
|
|
|
314
|
-
### O.
|
|
331
|
+
### O. 研究計画・グラント・規制(3 種)
|
|
315
332
|
|
|
316
|
-
|
|
333
|
+
助成金申請書と研究方法論・規制科学の設計を担うスキル群。
|
|
317
334
|
|
|
318
335
|
| # | Skill | 説明 | 参照 Exp |
|
|
319
336
|
|---|---|---|---|
|
|
320
337
|
| 46 | [scientific-grant-writing](scientific-grant-writing/SKILL.md) | NIH Specific Aims テンプレート・JSPS 科研費・予算計画・Budget Justification | 汎用 |
|
|
321
338
|
| 47 | [scientific-research-methodology](scientific-research-methodology/SKILL.md) | SCAMPER/TRIZ ブレインストーミング・研究デザインマトリクス・FINER 基準・IRB 倫理チェック | 汎用 |
|
|
339
|
+
| 74 | [scientific-regulatory-science](scientific-regulatory-science/SKILL.md) | FDA Orange Book/医療機器 510(k)/ISO 13485 QMS/CAPA/USPTO 特許検索 | 汎用 |
|
|
322
340
|
|
|
323
|
-
### P.
|
|
341
|
+
### P. ファーマコビジランス・薬理ゲノミクス(2 種)
|
|
324
342
|
|
|
325
|
-
|
|
343
|
+
市販後医薬品安全性監視と薬理ゲノミクスのためのシグナル検出・定量評価を担うスキル群。
|
|
326
344
|
|
|
327
345
|
| # | Skill | 説明 | 参照 Exp |
|
|
328
346
|
|---|---|---|---|
|
|
329
347
|
| 48 | [scientific-pharmacovigilance](scientific-pharmacovigilance/SKILL.md) | FAERS 不均衡分析 (PRR/ROR/IC/EBGM)・MedDRA 階層・時系列トレンド・Naranjo 因果評価 | 汎用 |
|
|
348
|
+
| 75 | [scientific-pharmacogenomics](scientific-pharmacogenomics/SKILL.md) | PharmGKB/CPIC ガイドライン・Star アレル・代謝型・FDA PGx バイオマーカー | 汎用 |
|
|
330
349
|
|
|
331
350
|
### Q. 腫瘍学・疾患研究(2 種)
|
|
332
351
|
|
|
@@ -357,14 +376,15 @@ DICOM・WSI 等の医用画像の解析・セグメンテーションを担う
|
|
|
357
376
|
|---|---|---|---|
|
|
358
377
|
| 56 | [scientific-medical-imaging](scientific-medical-imaging/SKILL.md) | DICOM/NIfTI 処理・MONAI U-Net/SwinUNETR・WSI パッチ抽出・Radiomics・3D 可視化 | 汎用 |
|
|
359
378
|
|
|
360
|
-
### T.
|
|
379
|
+
### T. シングルセル・空間・エピゲノミクス(3 種)
|
|
361
380
|
|
|
362
|
-
scRNA-seq
|
|
381
|
+
scRNA-seq・空間トランスクリプトミクス・エピゲノミクスの解析パイプラインを担うスキル群。
|
|
363
382
|
|
|
364
383
|
| # | Skill | 説明 | 参照 Exp |
|
|
365
384
|
|---|---|---|---|
|
|
366
385
|
| 57 | [scientific-single-cell-genomics](scientific-single-cell-genomics/SKILL.md) | scRNA-seq QC・Scanpy Leiden クラスタリング・DEG・RNA velocity・CellChat 細胞間通信 | 汎用 |
|
|
367
386
|
| 58 | [scientific-spatial-transcriptomics](scientific-spatial-transcriptomics/SKILL.md) | Visium/MERFISH 前処理・Squidpy SVG 検出・空間ドメイン・cell2location デコンボリューション | 汎用 |
|
|
387
|
+
| 76 | [scientific-epigenomics-chromatin](scientific-epigenomics-chromatin/SKILL.md) | ChIP-seq MACS2/3・ATAC-seq・WGBS DMR・ChromHMM・Hi-C TAD・モチーフ濃縮 | 汎用 |
|
|
368
388
|
|
|
369
389
|
### U. 免疫・感染症(2 種)
|
|
370
390
|
|
|
@@ -493,24 +513,29 @@ Skills は `.github/skills/` に配置されているため、Copilot が自動
|
|
|
493
513
|
│── [E] 信号・スペクトル・時系列
|
|
494
514
|
│ ├── scientific-spectral-signal/
|
|
495
515
|
│ ├── scientific-biosignal-processing/
|
|
496
|
-
│
|
|
516
|
+
│ ├── scientific-time-series/
|
|
517
|
+
│ └── scientific-neuroscience-electrophysiology/
|
|
497
518
|
│
|
|
498
519
|
│── [F] 生命科学・オミクス
|
|
499
520
|
│ ├── scientific-bioinformatics/
|
|
500
521
|
│ ├── scientific-metabolomics/
|
|
501
522
|
│ ├── scientific-sequence-analysis/
|
|
502
523
|
│ ├── scientific-multi-omics/
|
|
503
|
-
│
|
|
524
|
+
│ ├── scientific-network-analysis/
|
|
525
|
+
│ ├── scientific-proteomics-mass-spectrometry/
|
|
526
|
+
│ └── scientific-gene-expression-transcriptomics/
|
|
504
527
|
│
|
|
505
528
|
│── [G] 化学・材料・イメージング
|
|
506
529
|
│ ├── scientific-cheminformatics/
|
|
507
530
|
│ ├── scientific-materials-characterization/
|
|
508
|
-
│
|
|
531
|
+
│ ├── scientific-image-analysis/
|
|
532
|
+
│ └── scientific-computational-materials/
|
|
509
533
|
│
|
|
510
534
|
├── [H] 臨床・疫学・メタ科学
|
|
511
535
|
│ ├── scientific-survival-clinical/
|
|
512
536
|
│ ├── scientific-causal-inference/
|
|
513
|
-
│
|
|
537
|
+
│ ├── scientific-meta-analysis/
|
|
538
|
+
│ └── scientific-clinical-trials-analytics/
|
|
514
539
|
│
|
|
515
540
|
├── [I] Deep Research
|
|
516
541
|
│ └── scientific-deep-research/
|
|
@@ -528,18 +553,22 @@ Skills は `.github/skills/` に配置されているため、Copilot が自動
|
|
|
528
553
|
│ ├── scientific-variant-interpretation/
|
|
529
554
|
│ └── scientific-clinical-decision-support/
|
|
530
555
|
│
|
|
531
|
-
├── [M]
|
|
532
|
-
│
|
|
556
|
+
├── [M] 実験室自動化・データ管理
|
|
557
|
+
│ ├── scientific-lab-automation/
|
|
558
|
+
│ └── scientific-lab-data-management/
|
|
533
559
|
│
|
|
534
|
-
├── [N]
|
|
535
|
-
│
|
|
560
|
+
├── [N] 科学プレゼンテーション・図式
|
|
561
|
+
│ ├── scientific-presentation-design/
|
|
562
|
+
│ └── scientific-scientific-schematics/
|
|
536
563
|
│
|
|
537
|
-
└── [O]
|
|
564
|
+
└── [O] 研究計画・グラント・規制
|
|
538
565
|
├── scientific-grant-writing/
|
|
539
|
-
|
|
566
|
+
├── scientific-research-methodology/
|
|
567
|
+
└── scientific-regulatory-science/
|
|
540
568
|
│
|
|
541
|
-
├── [P]
|
|
542
|
-
│
|
|
569
|
+
├── [P] ファーマコビジランス・薬理ゲノミクス
|
|
570
|
+
│ ├── scientific-pharmacovigilance/
|
|
571
|
+
│ └── scientific-pharmacogenomics/
|
|
543
572
|
│
|
|
544
573
|
├── [Q] 腫瘍学・疾患研究
|
|
545
574
|
│ ├── scientific-precision-oncology/
|
|
@@ -555,9 +584,10 @@ Skills は `.github/skills/` に配置されているため、Copilot が自動
|
|
|
555
584
|
└── [S] 医用イメージング
|
|
556
585
|
└── scientific-medical-imaging/
|
|
557
586
|
│
|
|
558
|
-
│── [T]
|
|
587
|
+
│── [T] シングルセル・空間・エピゲノミクス
|
|
559
588
|
│ ├── scientific-single-cell-genomics/
|
|
560
|
-
│
|
|
589
|
+
│ ├── scientific-spatial-transcriptomics/
|
|
590
|
+
│ └── scientific-epigenomics-chromatin/
|
|
561
591
|
│
|
|
562
592
|
│── [U] 免疫・感染症
|
|
563
593
|
│ ├── scientific-immunoinformatics/
|
package/package.json
CHANGED
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scientific-clinical-trials-analytics
|
|
3
|
+
description: |
|
|
4
|
+
臨床試験レジストリ解析スキル。ClinicalTrials.gov API v2 経由の
|
|
5
|
+
多基準試験検索 (疾患×介入×地域×フェーズ×ステータス)、試験詳細取得
|
|
6
|
+
(適格基準・アウトカム・施設・有害事象)、競合ランドスケープ解析、
|
|
7
|
+
AI 支援試験デザイン (ClinicalTrialDesignAgent)、バルクデータ取得・CSV エクスポート
|
|
8
|
+
を統合した臨床研究支援パイプライン。
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Scientific Clinical Trials Analytics
|
|
12
|
+
|
|
13
|
+
ClinicalTrials.gov レジストリの包括的データアクセスと
|
|
14
|
+
競合分析パイプラインを提供する。40 万+ の登録試験から
|
|
15
|
+
疾患・介入・地域・フェーズ・スポンサー別にフィルタリングと
|
|
16
|
+
構造化データ抽出を実施。
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
- 特定疾患の臨床試験ランドスケープを調査するとき
|
|
21
|
+
- 競合薬剤の臨床開発状況を把握するとき
|
|
22
|
+
- 試験の適格基準・エンドポイント・施設情報を取得するとき
|
|
23
|
+
- 新規試験の計画にあたりプロトコルデザインの参考が必要なとき
|
|
24
|
+
- 有害事象・アウトカムデータを系統的に抽出するとき
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
## 1. 臨床試験検索・フィルタリング
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
import pandas as pd
|
|
34
|
+
import json
|
|
35
|
+
from datetime import datetime
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def search_clinical_trials(condition=None, intervention=None,
|
|
39
|
+
phase=None, status=None,
|
|
40
|
+
location_country=None, sponsor=None,
|
|
41
|
+
start_date_from=None, max_results=100):
|
|
42
|
+
"""
|
|
43
|
+
ClinicalTrials.gov 多基準検索。
|
|
44
|
+
|
|
45
|
+
Parameters:
|
|
46
|
+
condition: 疾患名 (e.g., "non-small cell lung cancer")
|
|
47
|
+
intervention: 介入名 (e.g., "pembrolizumab")
|
|
48
|
+
phase: フェーズ ("Phase 1", "Phase 2", "Phase 3", "Phase 4")
|
|
49
|
+
status: ステータス ("RECRUITING", "COMPLETED", "ACTIVE_NOT_RECRUITING")
|
|
50
|
+
location_country: 実施国 (e.g., "Japan")
|
|
51
|
+
sponsor: スポンサー名
|
|
52
|
+
"""
|
|
53
|
+
import requests
|
|
54
|
+
|
|
55
|
+
base_url = "https://clinicaltrials.gov/api/v2/studies"
|
|
56
|
+
params = {"format": "json", "pageSize": min(max_results, 100)}
|
|
57
|
+
|
|
58
|
+
# クエリ構築
|
|
59
|
+
query_parts = []
|
|
60
|
+
if condition:
|
|
61
|
+
query_parts.append(f"CONDITION[{condition}]")
|
|
62
|
+
if intervention:
|
|
63
|
+
query_parts.append(f"INTERVENTION[{intervention}]")
|
|
64
|
+
if query_parts:
|
|
65
|
+
params["query.cond"] = condition
|
|
66
|
+
params["query.intr"] = intervention
|
|
67
|
+
|
|
68
|
+
if phase:
|
|
69
|
+
params["filter.phase"] = phase
|
|
70
|
+
if status:
|
|
71
|
+
params["filter.overallStatus"] = status
|
|
72
|
+
if location_country:
|
|
73
|
+
params["query.locn"] = location_country
|
|
74
|
+
|
|
75
|
+
resp = requests.get(base_url, params=params)
|
|
76
|
+
data = resp.json()
|
|
77
|
+
|
|
78
|
+
studies = data.get("studies", [])
|
|
79
|
+
total = data.get("totalCount", 0)
|
|
80
|
+
|
|
81
|
+
print(f" Search results: {total} trials found")
|
|
82
|
+
print(f" Filters: condition={condition}, intervention={intervention}")
|
|
83
|
+
print(f" Phase: {phase}, Status: {status}")
|
|
84
|
+
|
|
85
|
+
results = []
|
|
86
|
+
for study in studies:
|
|
87
|
+
protocol = study.get("protocolSection", {})
|
|
88
|
+
id_module = protocol.get("identificationModule", {})
|
|
89
|
+
status_module = protocol.get("statusModule", {})
|
|
90
|
+
design_module = protocol.get("designModule", {})
|
|
91
|
+
|
|
92
|
+
results.append({
|
|
93
|
+
"nct_id": id_module.get("nctId"),
|
|
94
|
+
"title": id_module.get("briefTitle"),
|
|
95
|
+
"status": status_module.get("overallStatus"),
|
|
96
|
+
"phase": design_module.get("phases", [None]),
|
|
97
|
+
"enrollment": design_module.get("enrollmentInfo", {}).get("count"),
|
|
98
|
+
"start_date": status_module.get("startDateStruct", {}).get("date"),
|
|
99
|
+
})
|
|
100
|
+
|
|
101
|
+
return pd.DataFrame(results), total
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 2. 試験詳細取得
|
|
105
|
+
|
|
106
|
+
```python
|
|
107
|
+
import pandas as pd
|
|
108
|
+
import json
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def get_trial_details(nct_id):
|
|
112
|
+
"""
|
|
113
|
+
NCT ID による臨床試験の完全詳細取得。
|
|
114
|
+
|
|
115
|
+
取得項目:
|
|
116
|
+
- プロトコル (デザイン, アーム, 介入, マスキング)
|
|
117
|
+
- 適格基準 (年齢, 性別, 包含/除外基準)
|
|
118
|
+
- アウトカム (主要/副次エンドポイント)
|
|
119
|
+
- 施設・地域情報
|
|
120
|
+
- スポンサー, 共同研究者
|
|
121
|
+
- リファレンス (関連論文)
|
|
122
|
+
"""
|
|
123
|
+
import requests
|
|
124
|
+
|
|
125
|
+
url = f"https://clinicaltrials.gov/api/v2/studies/{nct_id}"
|
|
126
|
+
resp = requests.get(url, params={"format": "json"})
|
|
127
|
+
data = resp.json()
|
|
128
|
+
|
|
129
|
+
protocol = data.get("protocolSection", {})
|
|
130
|
+
|
|
131
|
+
# 基本情報
|
|
132
|
+
id_mod = protocol.get("identificationModule", {})
|
|
133
|
+
design_mod = protocol.get("designModule", {})
|
|
134
|
+
eligibility = protocol.get("eligibilityModule", {})
|
|
135
|
+
outcomes_mod = protocol.get("outcomesModule", {})
|
|
136
|
+
contacts_mod = protocol.get("contactsLocationsModule", {})
|
|
137
|
+
|
|
138
|
+
detail = {
|
|
139
|
+
"nct_id": nct_id,
|
|
140
|
+
"title": id_mod.get("officialTitle"),
|
|
141
|
+
"brief_title": id_mod.get("briefTitle"),
|
|
142
|
+
"study_type": design_mod.get("studyType"),
|
|
143
|
+
"phases": design_mod.get("phases"),
|
|
144
|
+
"allocation": design_mod.get("designInfo", {}).get("allocation"),
|
|
145
|
+
"masking": design_mod.get("designInfo", {}).get("maskingInfo", {}).get("masking"),
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
# 適格基準
|
|
149
|
+
detail["eligibility"] = {
|
|
150
|
+
"min_age": eligibility.get("minimumAge"),
|
|
151
|
+
"max_age": eligibility.get("maximumAge"),
|
|
152
|
+
"sex": eligibility.get("sex"),
|
|
153
|
+
"criteria": eligibility.get("eligibilityCriteria"),
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
# アウトカム
|
|
157
|
+
primary_outcomes = outcomes_mod.get("primaryOutcomes", [])
|
|
158
|
+
secondary_outcomes = outcomes_mod.get("secondaryOutcomes", [])
|
|
159
|
+
detail["primary_outcomes"] = [
|
|
160
|
+
{"measure": o.get("measure"), "timeframe": o.get("timeFrame")}
|
|
161
|
+
for o in primary_outcomes
|
|
162
|
+
]
|
|
163
|
+
|
|
164
|
+
# 施設
|
|
165
|
+
locations = contacts_mod.get("locations", [])
|
|
166
|
+
detail["n_locations"] = len(locations)
|
|
167
|
+
detail["countries"] = list(set(
|
|
168
|
+
loc.get("country") for loc in locations if loc.get("country")
|
|
169
|
+
))
|
|
170
|
+
|
|
171
|
+
print(f" Trial: {nct_id}")
|
|
172
|
+
print(f" Title: {detail['brief_title']}")
|
|
173
|
+
print(f" Type: {detail['study_type']}, Phase: {detail['phases']}")
|
|
174
|
+
print(f" Primary outcomes: {len(primary_outcomes)}")
|
|
175
|
+
print(f" Locations: {detail['n_locations']} sites in {len(detail['countries'])} countries")
|
|
176
|
+
|
|
177
|
+
return detail
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## 3. 競合ランドスケープ解析
|
|
181
|
+
|
|
182
|
+
```python
|
|
183
|
+
import pandas as pd
|
|
184
|
+
import numpy as np
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
def competitive_landscape_analysis(condition, intervention_class=None,
|
|
188
|
+
status_filter=None):
|
|
189
|
+
"""
|
|
190
|
+
疾患・介入クラス別の臨床開発ランドスケープ解析。
|
|
191
|
+
|
|
192
|
+
分析項目:
|
|
193
|
+
- フェーズ分布 (Phase 1/2/3/4)
|
|
194
|
+
- ステータス分布 (Recruiting/Completed/Terminated)
|
|
195
|
+
- スポンサー別試験数
|
|
196
|
+
- 経年トレンド (開始年別)
|
|
197
|
+
- 地域分布
|
|
198
|
+
"""
|
|
199
|
+
print(f" Competitive landscape for: {condition}")
|
|
200
|
+
if intervention_class:
|
|
201
|
+
print(f" Intervention class: {intervention_class}")
|
|
202
|
+
|
|
203
|
+
# フェーズ分布解析
|
|
204
|
+
phase_mapping = {
|
|
205
|
+
"PHASE1": "Phase 1",
|
|
206
|
+
"PHASE2": "Phase 2",
|
|
207
|
+
"PHASE3": "Phase 3",
|
|
208
|
+
"PHASE4": "Phase 4",
|
|
209
|
+
"EARLY_PHASE1": "Early Phase 1",
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
return {"condition": condition, "intervention_class": intervention_class}
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
def extract_trial_adverse_events(nct_id):
|
|
216
|
+
"""
|
|
217
|
+
試験の有害事象データ抽出。
|
|
218
|
+
|
|
219
|
+
FDA 報告基準:
|
|
220
|
+
- Serious AE (SAE): 死亡, 入院, 障害, 先天異常
|
|
221
|
+
- Other AE: Grade 1-4 有害事象
|
|
222
|
+
- CTCAE v5.0 grading
|
|
223
|
+
"""
|
|
224
|
+
print(f" Extracting adverse events for: {nct_id}")
|
|
225
|
+
print(" Categories: Serious AE, Other AE")
|
|
226
|
+
print(" Grading: CTCAE v5.0")
|
|
227
|
+
|
|
228
|
+
return {"nct_id": nct_id}
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
def extract_trial_outcomes(nct_id):
|
|
232
|
+
"""
|
|
233
|
+
試験結果 (Results section) からのアウトカムデータ抽出。
|
|
234
|
+
|
|
235
|
+
- Primary outcome measures + 統計結果
|
|
236
|
+
- Secondary outcome measures
|
|
237
|
+
- 参加者フロー (Screened → Enrolled → Completed → Analyzed)
|
|
238
|
+
"""
|
|
239
|
+
print(f" Extracting outcomes for: {nct_id}")
|
|
240
|
+
|
|
241
|
+
return {"nct_id": nct_id}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## 4. バルクデータ取得・エクスポート
|
|
245
|
+
|
|
246
|
+
```python
|
|
247
|
+
import pandas as pd
|
|
248
|
+
import json
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
def bulk_trial_export(condition, max_trials=1000,
|
|
252
|
+
output_file="results/clinical_trials_export.csv"):
|
|
253
|
+
"""
|
|
254
|
+
大規模臨床試験データのバルク取得・CSV エクスポート。
|
|
255
|
+
|
|
256
|
+
ページネーション対応 (1000 件 = 10 ページ × 100 件/ページ)。
|
|
257
|
+
"""
|
|
258
|
+
import os
|
|
259
|
+
os.makedirs(os.path.dirname(output_file), exist_ok=True)
|
|
260
|
+
|
|
261
|
+
all_results = []
|
|
262
|
+
page_token = None
|
|
263
|
+
|
|
264
|
+
print(f" Bulk export for: {condition}")
|
|
265
|
+
print(f" Max trials: {max_trials}")
|
|
266
|
+
|
|
267
|
+
# ここでは概念的コード — 実際は API ページネーション
|
|
268
|
+
# while len(all_results) < max_trials:
|
|
269
|
+
# resp = requests.get(url, params={..., "pageToken": page_token})
|
|
270
|
+
# studies = resp.json()["studies"]
|
|
271
|
+
# all_results.extend(studies)
|
|
272
|
+
# page_token = resp.json().get("nextPageToken")
|
|
273
|
+
|
|
274
|
+
print(f" Exported to: {output_file}")
|
|
275
|
+
|
|
276
|
+
return output_file
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
def trial_design_summary(trials_df):
|
|
280
|
+
"""
|
|
281
|
+
臨床試験デザインの要約統計。
|
|
282
|
+
|
|
283
|
+
- Study type 分布 (Interventional/Observational)
|
|
284
|
+
- Allocation (Randomized/Non-randomized)
|
|
285
|
+
- Masking (Open/Single/Double/Triple/Quadruple)
|
|
286
|
+
- Primary purpose (Treatment/Prevention/Diagnostic)
|
|
287
|
+
"""
|
|
288
|
+
print(" Trial Design Summary:")
|
|
289
|
+
|
|
290
|
+
if "study_type" in trials_df.columns:
|
|
291
|
+
type_dist = trials_df["study_type"].value_counts()
|
|
292
|
+
for st, count in type_dist.items():
|
|
293
|
+
print(f" {st}: {count}")
|
|
294
|
+
|
|
295
|
+
return trials_df.describe()
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
## References
|
|
299
|
+
|
|
300
|
+
### Output Files
|
|
301
|
+
|
|
302
|
+
| ファイル | 形式 |
|
|
303
|
+
|---|---|
|
|
304
|
+
| `results/clinical_trials_search.csv` | CSV |
|
|
305
|
+
| `results/trial_details.json` | JSON |
|
|
306
|
+
| `results/competitive_landscape.json` | JSON |
|
|
307
|
+
| `results/clinical_trials_export.csv` | CSV |
|
|
308
|
+
| `results/trial_adverse_events.csv` | CSV |
|
|
309
|
+
| `figures/trial_phase_distribution.png` | PNG |
|
|
310
|
+
| `figures/trial_timeline.png` | PNG |
|
|
311
|
+
|
|
312
|
+
### 利用可能ツール
|
|
313
|
+
|
|
314
|
+
> [ToolUniverse](https://github.com/mims-harvard/ToolUniverse) SMCP 経由で利用可能な外部ツール。
|
|
315
|
+
|
|
316
|
+
| カテゴリ | 主要ツール | 用途 |
|
|
317
|
+
|---|---|---|
|
|
318
|
+
| ClinicalTrials | `clinical_trials_search` | 臨床試験検索 |
|
|
319
|
+
| ClinicalTrials | `search_clinical_trials` | 詳細パラメータ検索 |
|
|
320
|
+
| ClinicalTrials | `get_clinical_trial_conditions_and_interventions` | 疾患・介入情報取得 |
|
|
321
|
+
| ClinicalTrials | `get_clinical_trial_locations` | 施設・地域取得 |
|
|
322
|
+
| ClinicalTrials | `extract_clinical_trial_adverse_events` | 有害事象抽出 |
|
|
323
|
+
| ClinicalTrials | `extract_clinical_trial_outcomes` | アウトカム抽出 |
|
|
324
|
+
| ClinicalTrials | `ClinicalTrialDesignAgent` | AI 支援試験デザイン |
|
|
325
|
+
| FDA | `FDA_get_clinical_studies_info_by_drug_name` | 薬物名で臨床研究情報 |
|
|
326
|
+
| FDA | `FDA_get_drug_names_by_clinical_studies` | 臨床研究から薬物名 |
|
|
327
|
+
|
|
328
|
+
### 参照スキル
|
|
329
|
+
|
|
330
|
+
| スキル | 関連 |
|
|
331
|
+
|---|---|
|
|
332
|
+
| `scientific-survival-clinical` | 生存解析 (KM/Cox) |
|
|
333
|
+
| `scientific-meta-analysis` | メタアナリシス統合 |
|
|
334
|
+
| `scientific-epidemiology-public-health` | 疫学リスク指標 |
|
|
335
|
+
| `scientific-clinical-decision-support` | 臨床意思決定 |
|
|
336
|
+
| `scientific-pharmacovigilance` | 安全性モニタリング |
|
|
337
|
+
|
|
338
|
+
### 依存パッケージ
|
|
339
|
+
|
|
340
|
+
`pandas`, `numpy`, `requests`, `json`
|