@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 CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  ## Overview
9
9
 
10
- このディレクトリには、Exp-01〜13 で蓄積した科学データ解析技法を Agent Skills として体系化した **66 個**のスキルを格納しています。Copilot がプロンプトの文脈に応じて適切なスキルを自動ロードし、各実験で確立した解析パターンを再利用します。32 のスキルは [ToolUniverse](https://github.com/mims-harvard/ToolUniverse) SMCP 経由で 1,200 以上の外部科学データベースツールとも連携可能です。
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
- 32 のスキル(HIGH 13 + MEDIUM 9 + 新規 10)は、[ToolUniverse](https://github.com/mims-harvard/ToolUniverse) SMCP サーバー経由で 1,200 以上の外部科学ツールを利用可能です。各 SKILL.md 内の `### 利用可能ツール` セクションに対応ツールが記載されています。
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
- │ ... (32 skills total) │ │ ... (1,200+ tools) │
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. 信号・スペクトル・時系列 | 3 | スペクトル解析・生体信号・時系列分解 |
145
- | F. 生命科学・オミクス | 5 | バイオインフォ・メタボロ・ゲノム配列・マルチオミクス・ネットワーク |
146
- | G. 化学・材料・イメージング | 3 | ケモインフォ・材料特性評価・画像解析 |
147
- | H. 臨床・疫学・メタ科学 | 3 | 生存解析・因果推論・メタアナリシス |
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. 実験室自動化 | 1 | 液体ハンドリング・プロトコル管理・ELN/LIMS 連携 |
153
- | N. 科学プレゼンテーション | 1 | 科学スライド・ポスター・ワークフロー図 |
154
- | O. 研究計画・グラント | 2 | 助成金申請書・研究方法論・倫理審査 |
155
- | P. ファーマコビジランス | 1 | FAERS 不均衡分析・MedDRA 階層・安全性シグナル検出 |
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. シングルセル・空間オミクス | 2 | scRNA-seq・Visium・MERFISH・CELLxGENE・RNA velocity |
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. 信号・スペクトル・時系列(3 種)
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. 生命科学・オミクス(5 種)
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. 化学・材料・イメージング(3 種)
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. 臨床・疫学・メタ科学(3 種)
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. 実験室自動化(1 種)
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. 科学プレゼンテーション(1 種)
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. 研究計画・グラント(2 種)
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. ファーマコビジランス(1 種)
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. シングルセル・空間オミクス(2 種)
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
- └── scientific-time-series/
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
- └── scientific-network-analysis/
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
- └── scientific-image-analysis/
531
+ ├── scientific-image-analysis/
532
+ │ └── scientific-computational-materials/
509
533
 
510
534
  ├── [H] 臨床・疫学・メタ科学
511
535
  │ ├── scientific-survival-clinical/
512
536
  │ ├── scientific-causal-inference/
513
- └── scientific-meta-analysis/
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
- └── scientific-lab-automation/
556
+ ├── [M] 実験室自動化・データ管理
557
+ ├── scientific-lab-automation/
558
+ │ └── scientific-lab-data-management/
533
559
 
534
- ├── [N] 科学プレゼンテーション
535
- └── scientific-presentation-design/
560
+ ├── [N] 科学プレゼンテーション・図式
561
+ ├── scientific-presentation-design/
562
+ │ └── scientific-scientific-schematics/
536
563
 
537
- └── [O] 研究計画・グラント
564
+ └── [O] 研究計画・グラント・規制
538
565
  ├── scientific-grant-writing/
539
- └── scientific-research-methodology/
566
+ ├── scientific-research-methodology/
567
+ └── scientific-regulatory-science/
540
568
 
541
- ├── [P] ファーマコビジランス
542
- └── scientific-pharmacovigilance/
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
- └── scientific-spatial-transcriptomics/
589
+ ├── scientific-spatial-transcriptomics/
590
+ │ └── scientific-epigenomics-chromatin/
561
591
 
562
592
  │── [U] 免疫・感染症
563
593
  │ ├── scientific-immunoinformatics/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nahisaho/satori",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "SATORI — Agent Skills for Science. GitHub Copilot Agent Skills collection for scientific data analysis.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -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`