@nahisaho/satori 0.21.0 → 0.22.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 +35 -23
- package/package.json +1 -1
- package/src/.github/skills/scientific-clinical-pharmacology/SKILL.md +361 -0
- package/src/.github/skills/scientific-clinical-standards/SKILL.md +444 -0
- package/src/.github/skills/scientific-crispr-design/SKILL.md +369 -0
- package/src/.github/skills/scientific-environmental-ecology/SKILL.md +5 -0
- package/src/.github/skills/scientific-epidemiology-public-health/SKILL.md +5 -0
- package/src/.github/skills/scientific-epigenomics-chromatin/SKILL.md +5 -0
- package/src/.github/skills/scientific-glycomics/SKILL.md +274 -0
- package/src/.github/skills/scientific-immunoinformatics/SKILL.md +9 -0
- package/src/.github/skills/scientific-lipidomics/SKILL.md +284 -0
- package/src/.github/skills/scientific-metabolomics/SKILL.md +3 -0
- package/src/.github/skills/scientific-metagenome-assembled-genomes/SKILL.md +299 -0
- package/src/.github/skills/scientific-model-organism-db/SKILL.md +8 -0
- package/src/.github/skills/scientific-public-health-data/SKILL.md +11 -0
- package/src/.github/skills/scientific-systems-biology/SKILL.md +11 -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 として体系化した **166 個**のスキルを格納しています。Copilot がプロンプトの文脈に応じて適切なスキルを自動ロードし、各実験で確立した解析パターンを再利用します。131 のスキルは [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
|
+
131 のスキル(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 + Phase 12: 3 new + 12 existing key additions + Phase 13: 3 new + 7 existing key additions + Phase 14: 1 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 (データ取得・計算)
|
|
@@ -277,7 +277,7 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
277
277
|
│ cellxgene-census │───MCP──│ CELLxGENE Census API │
|
|
278
278
|
│ pharos-targets │───MCP──│ Pharos GraphQL API │
|
|
279
279
|
│ clingen-curation │───MCP──│ ClinGen Validity/Dosage │
|
|
280
|
-
│ ... (
|
|
280
|
+
│ ... (131 skills total)│ │ ... (1,200+ tools) │
|
|
281
281
|
└──────────────────────┘ └─────────────────────────────┘
|
|
282
282
|
```
|
|
283
283
|
|
|
@@ -290,23 +290,23 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
290
290
|
| C. 機械学習・モデリング | 3 | 回帰・分類・特徴量重要度 |
|
|
291
291
|
| D. 実験計画・プロセス最適化 | 2 | DOE・応答曲面法・ベイズ最適化 |
|
|
292
292
|
| E. 信号・スペクトル・時系列 | 4 | スペクトル解析・生体信号・時系列分解・神経電気生理学 |
|
|
293
|
-
| F. 生命科学・オミクス |
|
|
293
|
+
| F. 生命科学・オミクス | 28 | バイオインフォ・メタボロ・ゲノム配列・マルチオミクス・ネットワーク・プロテオミクス・トランスクリプトミクス・パスウェイ濃縮・代謝物 DB・HPA・ゲノム配列ツール・非コード RNA・オントロジー・EBI DB 群・Ensembl ゲノミクス・STRING/BioGRID PPI・発現比較・モデル生物 DB・GEO 発現プロファイル・寄生虫ゲノミクス・ArrayExpress 発現アーカイブ・GTEx 組織発現・UniProt プロテオーム・Reactome パスウェイ・HGNC 命名法・代謝ネットワーク・糖鎖解析・リピドミクス |
|
|
294
294
|
| G. 化学・材料・イメージング | 9 | ケモインフォ・材料特性評価・画像形態解析・計算材料科学・ChEMBL アッセイマイニング・MD シミュレーション・高度イメージング・深層化学・STITCH 化学-タンパク質ネットワーク |
|
|
295
|
-
| H. 臨床・疫学・メタ科学 |
|
|
295
|
+
| H. 臨床・疫学・メタ科学 | 7 | 生存解析・因果推論・メタアナリシス・臨床試験解析・臨床レポート・バイオバンク大規模コホート・臨床標準用語 |
|
|
296
296
|
| I. Deep Research・文献検索 | 4 | 科学文献深層リサーチ・エビデンス階層評価・マルチ DB 文献検索・引用ネットワーク・プレプリント横断検索・Semantic Scholar 学術グラフ |
|
|
297
297
|
| J. 創薬・ファーマコロジー | 9 | 標的プロファイリング・ADMET/PK・ドラッグリポジショニング・分子ドッキング・薬理学的ターゲット・化合物スクリーニング・NCI-60 スクリーニング・DrugBank リソース・Pharos ターゲット |
|
|
298
298
|
| K. 構造生物学・タンパク質工学 | 7 | PDB/AlphaFold 構造解析・de novo タンパク質設計・PPI ネットワーク・ドメイン/ファミリー・構造プロテオミクス・AlphaFold DB 構造予測・RCSB PDB 構造検索 |
|
|
299
299
|
| L. 精密医療・臨床意思決定 | 6 | 変異解釈 (ACMG/AMP)・エビデンスベース臨床意思決定・バリアント効果予測・CIViC 臨床エビデンス・gnomAD バリアント・ClinGen キュレーション |
|
|
300
|
-
| M. 実験室自動化・データ管理 |
|
|
300
|
+
| M. 実験室自動化・データ管理 | 3 | 液体ハンドリング・プロトコル管理・ELN/LIMS 連携・ラボデータ管理・CRISPR gRNA 設計 |
|
|
301
301
|
| N. 科学プレゼンテーション・図式 | 2 | 科学スライド・ポスター・ワークフロー図・科学図式 |
|
|
302
302
|
| O. 研究計画・グラント・規制 | 3 | 助成金申請書・研究方法論・倫理審査・規制科学 |
|
|
303
|
-
| P. ファーマコビジランス・薬理ゲノミクス |
|
|
303
|
+
| P. ファーマコビジランス・薬理ゲノミクス | 4 | FAERS 不均衡分析・MedDRA 階層・安全性シグナル検出・PGx 代謝型・PharmGKB 臨床アノテーション・臨床薬理学 PopPK/PBPK |
|
|
304
304
|
| Q. 腫瘍学・疾患研究 | 10 | 精密腫瘍学 (CIViC/OncoKB)・疾患-遺伝子関連 (GWAS/Orphanet)・がんゲノミクス (COSMIC/DepMap)・希少疾患遺伝学・細胞株リソース・ICGC がんゲノムデータ・Open Targets 遺伝学・DepMap 依存性・Monarch オントロジー・GDC ポータル |
|
|
305
305
|
| R. 量子・先端計算 | 7 | 量子計算・GNN・ベイズ統計・説明可能 AI・深層学習・ヘルスケア AI・強化学習 |
|
|
306
306
|
| S. 医用イメージング | 1 | DICOM/NIfTI・WSI 病理画像・Radiomics・MONAI |
|
|
307
307
|
| T. シングルセル・空間・エピゲノミクス | 13 | scRNA-seq・Visium・MERFISH・CELLxGENE・RNA velocity・エピゲノミクス・レギュラトリーゲノミクス・摂動解析・scVI 統合・scATAC-seq/Signac・GPU シングルセル・ENCODE/SCREEN・Human Cell Atlas・高度 Squidpy 空間解析・空間マルチオミクス・CELLxGENE Census |
|
|
308
308
|
| U. 免疫・感染症 | 2 | 免疫情報学・MHC 結合予測・病原体ゲノミクス・AMR・IEDB |
|
|
309
|
-
| V. マイクロバイオーム・環境 |
|
|
309
|
+
| V. マイクロバイオーム・環境 | 9 | 16S/メタゲノム・α/β 多様性・SDM・OBIS・GBIF・系統解析・rRNA 分類学・植物バイオロジー・海洋生態学・環境地理空間データ・古生物学・MAG 再構築 |
|
|
310
310
|
| W. システム生物学 | 4 | SBML シミュレーション・FBA・GRN 推定・BioModels・代謝モデリング・Metabolic Atlas・代謝フラックス解析 |
|
|
311
311
|
| X. 疫学・公衆衛生 | 3 | リスク指標 (RR/OR)・年齢標準化・空間疫学・WHO・CDC・公衆衛生データ・環境毒性学 |
|
|
312
312
|
| Y. 集団遺伝学 | 2 | HWE・PCA/ADMIXTURE・Fst・選択スキャン・gnomAD・GWAS・GWAS Catalog |
|
|
@@ -381,9 +381,9 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
381
381
|
| 24 | [scientific-time-series](scientific-time-series/SKILL.md) | STL 分解・SARIMA 予測・変化点検出・FFT 周期解析・Granger 因果 | 汎用 |
|
|
382
382
|
| 67 | [scientific-neuroscience-electrophysiology](scientific-neuroscience-electrophysiology/SKILL.md) | SpikeInterface/Kilosort4 スパイクソート・MNE EEG/ERP・NeuroKit2 HRV/EDA・脳機能結合 | 汎用 |
|
|
383
383
|
|
|
384
|
-
### F. 生命科学・オミクス(
|
|
384
|
+
### F. 生命科学・オミクス(28 種)
|
|
385
385
|
|
|
386
|
-
バイオ・オミクス・ネットワーク解析・オントロジー・EBI データベース・ゲノミクス・PPI・発現比較・モデル生物 DB・GEO 発現プロファイル・寄生虫ゲノミクス・ArrayExpress 発現アーカイブ・GTEx 組織発現・UniProt プロテオーム・Reactome パスウェイ・HGNC
|
|
386
|
+
バイオ・オミクス・ネットワーク解析・オントロジー・EBI データベース・ゲノミクス・PPI・発現比較・モデル生物 DB・GEO 発現プロファイル・寄生虫ゲノミクス・ArrayExpress 発現アーカイブ・GTEx 組織発現・UniProt プロテオーム・Reactome パスウェイ・HGNC 命名法・代謝ネットワーク・糖鎖解析・リピドミクスを担うスキル群。
|
|
387
387
|
|
|
388
388
|
| # | Skill | 説明 | 参照 Exp |
|
|
389
389
|
|---|---|---|---|
|
|
@@ -413,6 +413,8 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
413
413
|
| 144 | [scientific-reactome-pathways](scientific-reactome-pathways/SKILL.md) | Reactome Content Service パスウェイ検索・UniProt マッピング・参加者取得 | 汎用 |
|
|
414
414
|
| 159 | [scientific-hgnc-nomenclature](scientific-hgnc-nomenclature/SKILL.md) | HGNC REST API 遺伝子命名法・公式シンボル検索・エイリアス解決・遺伝子ファミリー | 汎用 |
|
|
415
415
|
| 160 | [scientific-metabolomics-network](scientific-metabolomics-network/SKILL.md) | 代謝物相関ネットワーク構築・KEGG パスウェイグラフ・ハブ代謝物・エンリッチメント | 汎用 |
|
|
416
|
+
| 161 | [scientific-glycomics](scientific-glycomics/SKILL.md) | GlyGen/GlyConnect 糖鎖データベース統合・糖タンパク質部位検索・MS 断片化予測 | 汎用 |
|
|
417
|
+
| 162 | [scientific-lipidomics](scientific-lipidomics/SKILL.md) | LipidMAPS/SwissLipids 脂質構造検索・サブクラス分類・脂質差次解析・脂質エンリッチメント | 汎用 |
|
|
416
418
|
|
|
417
419
|
### G. 化学・材料・イメージング(9 種)
|
|
418
420
|
|
|
@@ -430,9 +432,9 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
430
432
|
| 115 | [scientific-deep-chemistry](scientific-deep-chemistry/SKILL.md) | DeepChem GCN/MPNN/AttentiveFP 分子特性予測・MoleculeNet・ChemBERTa | 汎用 |
|
|
431
433
|
| 154 | [scientific-stitch-chemical-network](scientific-stitch-chemical-network/SKILL.md) | STITCH 化学物質-タンパク質相互作用ネットワーク・ネットワーク薬理学・ポリファーマコロジー | 汎用 |
|
|
432
434
|
|
|
433
|
-
### H. 臨床・疫学・メタ科学(
|
|
435
|
+
### H. 臨床・疫学・メタ科学(7 種)
|
|
434
436
|
|
|
435
|
-
|
|
437
|
+
臨床試験・因果推論・メタアナリシス・臨床試験解析・バイオバンク大規模コホート・臨床標準用語を担うスキル群。
|
|
436
438
|
|
|
437
439
|
| # | Skill | 説明 | 参照 Exp |
|
|
438
440
|
|---|---|---|---|
|
|
@@ -442,6 +444,7 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
442
444
|
| 71 | [scientific-clinical-trials-analytics](scientific-clinical-trials-analytics/SKILL.md) | ClinicalTrials.gov API v2 検索・競合ランドスケープ・AE/アウトカム抽出 | 汎用 |
|
|
443
445
|
| 85 | [scientific-clinical-reporting](scientific-clinical-reporting/SKILL.md) | SOAP ノート・バイオマーカーレポート・ファーマコゲノミクス・FHIR JSON | 汎用 |
|
|
444
446
|
| 151 | [scientific-biobank-cohort](scientific-biobank-cohort/SKILL.md) | UK Biobank/BBJ/All of Us 大規模コホート・GWAS サマリー統計・PheWAS | 汎用 |
|
|
447
|
+
| 166 | [scientific-clinical-standards](scientific-clinical-standards/SKILL.md) | LOINC/ICD-10/ICD-11 臨床標準コード検索・FHIR R4 マッピング・用語相互運用 | 汎用 |
|
|
445
448
|
|
|
446
449
|
### I. Deep Research・文献検索(4 種)
|
|
447
450
|
|
|
@@ -496,14 +499,15 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
496
499
|
| 148 | [scientific-gnomad-variants](scientific-gnomad-variants/SKILL.md) | gnomAD GraphQL 集団アレル頻度・遺伝子制約 (pLI/LOEUF)・リージョンクエリ | 汎用 |
|
|
497
500
|
| 157 | [scientific-clingen-curation](scientific-clingen-curation/SKILL.md) | ClinGen 遺伝子-疾患バリディティ・投与量感受性・臨床アクショナビリティ | 汎用 |
|
|
498
501
|
|
|
499
|
-
### M. 実験室自動化・データ管理(
|
|
502
|
+
### M. 実験室自動化・データ管理(3 種)
|
|
500
503
|
|
|
501
|
-
|
|
504
|
+
ラボ実験の自動化とデータ管理・CRISPR gRNA 設計を担うスキル群。
|
|
502
505
|
|
|
503
506
|
| # | Skill | 説明 | 参照 Exp |
|
|
504
507
|
|---|---|---|---|
|
|
505
508
|
| 44 | [scientific-lab-automation](scientific-lab-automation/SKILL.md) | PyLabRobot/Opentrons プロトコル・SOP テンプレート・ELN/LIMS 連携・QC 検証 | 汎用 |
|
|
506
509
|
| 72 | [scientific-lab-data-management](scientific-lab-data-management/SKILL.md) | Benchling ELN/DNA 設計・DNAnexus PaaS・OMERO バイオイメージング・Protocols.io | 汎用 |
|
|
510
|
+
| 164 | [scientific-crispr-design](scientific-crispr-design/SKILL.md) | CRISPR gRNA 設計・Cas9/Cas12a PAM 検索・オフターゲットスコアリング・sgRNA ライブラリ構築 | 汎用 |
|
|
507
511
|
|
|
508
512
|
### N. 科学プレゼンテーション・図式(2 種)
|
|
509
513
|
|
|
@@ -524,15 +528,16 @@ SATORI Skill (方法論・判断) ToolUniverse SMCP (データ取得・
|
|
|
524
528
|
| 47 | [scientific-research-methodology](scientific-research-methodology/SKILL.md) | SCAMPER/TRIZ ブレインストーミング・研究デザインマトリクス・FINER 基準・IRB 倫理チェック | 汎用 |
|
|
525
529
|
| 74 | [scientific-regulatory-science](scientific-regulatory-science/SKILL.md) | FDA Orange Book/医療機器 510(k)/ISO 13485 QMS/CAPA/USPTO 特許検索 | 汎用 |
|
|
526
530
|
|
|
527
|
-
### P. ファーマコビジランス・薬理ゲノミクス(
|
|
531
|
+
### P. ファーマコビジランス・薬理ゲノミクス(4 種)
|
|
528
532
|
|
|
529
|
-
市販後医薬品安全性監視と薬理ゲノミクス・PharmGKB
|
|
533
|
+
市販後医薬品安全性監視と薬理ゲノミクス・PharmGKB 臨床アノテーション・臨床薬理学モデリングのためのシグナル検出・定量評価を担うスキル群。
|
|
530
534
|
|
|
531
535
|
| # | Skill | 説明 | 参照 Exp |
|
|
532
536
|
|---|---|---|---|
|
|
533
537
|
| 48 | [scientific-pharmacovigilance](scientific-pharmacovigilance/SKILL.md) | FAERS 不均衡分析 (PRR/ROR/IC/EBGM)・MedDRA 階層・時系列トレンド・Naranjo 因果評価 | 汎用 |
|
|
534
538
|
| 75 | [scientific-pharmacogenomics](scientific-pharmacogenomics/SKILL.md) | PharmGKB/CPIC ガイドライン・Star アレル・代謝型・FDA PGx バイオマーカー | 汎用 |
|
|
535
539
|
| 138 | [scientific-pharmgkb-pgx](scientific-pharmgkb-pgx/SKILL.md) | PharmGKB REST API 臨床アノテーション・薬物遺伝子関連・投与量ガイドライン | 汎用 |
|
|
540
|
+
| 165 | [scientific-clinical-pharmacology](scientific-clinical-pharmacology/SKILL.md) | PopPK NLME・PBPK シミュレーション・TDM 投与量最適化・Emax PD モデリング | 汎用 |
|
|
536
541
|
|
|
537
542
|
### Q. 腫瘍学・疾患研究(10 種)
|
|
538
543
|
|
|
@@ -602,9 +607,9 @@ scRNA-seq・空間トランスクリプトミクス・エピゲノミクス・
|
|
|
602
607
|
| 59 | [scientific-immunoinformatics](scientific-immunoinformatics/SKILL.md) | MHC-I/II 結合予測・B 細胞エピトープ・TCR/BCR レパトア多様性・抗体 CDR 解析・ワクチン候補ランキング | 汎用 |
|
|
603
608
|
| 60 | [scientific-infectious-disease](scientific-infectious-disease/SKILL.md) | 病原体 WGS QC・AMR 遺伝子検出・MLST 型別・系統解析 (IQ-TREE)・SIR/SEIR 数理モデル | 汎用 |
|
|
604
609
|
|
|
605
|
-
### V. マイクロバイオーム・環境(
|
|
610
|
+
### V. マイクロバイオーム・環境(9 種)
|
|
606
611
|
|
|
607
|
-
マイクロバイオーム解析・環境/生態系モデリング・系統解析・rRNA
|
|
612
|
+
マイクロバイオーム解析・環境/生態系モデリング・系統解析・rRNA 分類学・植物バイオロジー・海洋生態学・環境地理空間データ・古生物学・MAG 再構築を担うスキル群。
|
|
608
613
|
|
|
609
614
|
| # | Skill | 説明 | 参照 Exp |
|
|
610
615
|
|---|---|---|---|
|
|
@@ -616,6 +621,7 @@ scRNA-seq・空間トランスクリプトミクス・エピゲノミクス・
|
|
|
616
621
|
| 122 | [scientific-marine-ecology](scientific-marine-ecology/SKILL.md) | OBIS/WoRMS/GBIF/FishBase 海洋生物多様性・分布解析 | 汎用 |
|
|
617
622
|
| 128 | [scientific-environmental-geodata](scientific-environmental-geodata/SKILL.md) | SoilGrids/WorldClim 環境地理空間データ・種分布モデル環境変数 | 汎用 |
|
|
618
623
|
| 129 | [scientific-paleobiology](scientific-paleobiology/SKILL.md) | PBDB 化石産出記録・分類群検索・地質年代多様性曲線 | 汎用 |
|
|
624
|
+
| 163 | [scientific-metagenome-assembled-genomes](scientific-metagenome-assembled-genomes/SKILL.md) | MetaBAT2/CONCOCT ビニング・CheckM2 品質評価・GTDB-Tk 分類・MAG パイプライン | 汎用 |
|
|
619
625
|
|
|
620
626
|
### W. システム生物学(4 種)
|
|
621
627
|
|
|
@@ -768,7 +774,9 @@ Skills は `.github/skills/` に配置されているため、Copilot が自動
|
|
|
768
774
|
│ ├── scientific-uniprot-proteome/
|
|
769
775
|
│ ├── scientific-reactome-pathways/
|
|
770
776
|
│ ├── scientific-hgnc-nomenclature/
|
|
771
|
-
│
|
|
777
|
+
│ ├── scientific-metabolomics-network/
|
|
778
|
+
│ ├── scientific-glycomics/
|
|
779
|
+
│ └── scientific-lipidomics/
|
|
772
780
|
│
|
|
773
781
|
│── [G] 化学・材料・イメージング
|
|
774
782
|
│ ├── scientific-cheminformatics/
|
|
@@ -787,7 +795,8 @@ Skills は `.github/skills/` に配置されているため、Copilot が自動
|
|
|
787
795
|
│ ├── scientific-meta-analysis/
|
|
788
796
|
│ ├── scientific-clinical-trials-analytics/
|
|
789
797
|
│ ├── scientific-clinical-reporting/
|
|
790
|
-
│
|
|
798
|
+
│ ├── scientific-biobank-cohort/
|
|
799
|
+
│ └── scientific-clinical-standards/
|
|
791
800
|
│
|
|
792
801
|
├── [I] Deep Research・文献検索
|
|
793
802
|
│ ├── scientific-deep-research/
|
|
@@ -825,7 +834,8 @@ Skills は `.github/skills/` に配置されているため、Copilot が自動
|
|
|
825
834
|
│
|
|
826
835
|
├── [M] 実験室自動化・データ管理
|
|
827
836
|
│ ├── scientific-lab-automation/
|
|
828
|
-
│
|
|
837
|
+
│ ├── scientific-lab-data-management/
|
|
838
|
+
│ └── scientific-crispr-design/
|
|
829
839
|
│
|
|
830
840
|
├── [N] 科学プレゼンテーション・図式
|
|
831
841
|
│ ├── scientific-presentation-design/
|
|
@@ -839,7 +849,8 @@ Skills は `.github/skills/` に配置されているため、Copilot が自動
|
|
|
839
849
|
├── [P] ファーマコビジランス・薬理ゲノミクス
|
|
840
850
|
│ ├── scientific-pharmacovigilance/
|
|
841
851
|
│ ├── scientific-pharmacogenomics/
|
|
842
|
-
│
|
|
852
|
+
│ ├── scientific-pharmgkb-pgx/
|
|
853
|
+
│ └── scientific-clinical-pharmacology/
|
|
843
854
|
│
|
|
844
855
|
├── [Q] 腫瘍学・疾患研究
|
|
845
856
|
│ ├── scientific-precision-oncology/
|
|
@@ -892,7 +903,8 @@ Skills は `.github/skills/` に配置されているため、Copilot が自動
|
|
|
892
903
|
│ ├── scientific-plant-biology/
|
|
893
904
|
│ ├── scientific-marine-ecology/
|
|
894
905
|
│ ├── scientific-environmental-geodata/
|
|
895
|
-
│
|
|
906
|
+
│ ├── scientific-paleobiology/
|
|
907
|
+
│ └── scientific-metagenome-assembled-genomes/
|
|
896
908
|
│
|
|
897
909
|
│── [W] システム生物学
|
|
898
910
|
│ ├── scientific-systems-biology/
|
package/package.json
CHANGED
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scientific-clinical-pharmacology
|
|
3
|
+
description: |
|
|
4
|
+
臨床薬理学モデリングスキル。PopPK (NLME 混合効果モデル)・
|
|
5
|
+
PBPK シミュレーション・TDM 投与量最適化・
|
|
6
|
+
Emax/Sigmoid PD モデリング・薬物間相互作用予測・
|
|
7
|
+
臨床薬理パイプライン。
|
|
8
|
+
TU 外スキル (Python + nlmixr2/mrgsolve ラッパー)。
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Scientific Clinical Pharmacology
|
|
12
|
+
|
|
13
|
+
母集団薬物動態 (PopPK)・生理学的薬物動態 (PBPK)・
|
|
14
|
+
薬力学 (PD) モデリングを統合した臨床薬理学
|
|
15
|
+
解析パイプラインを提供する。
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
|
|
19
|
+
- 母集団 PK (PopPK) の NLME 解析を行うとき
|
|
20
|
+
- PBPK モデルで薬物動態をシミュレーションするとき
|
|
21
|
+
- TDM (Therapeutic Drug Monitoring) 投与量を最適化するとき
|
|
22
|
+
- Emax/Sigmoid PD モデルを当てはめるとき
|
|
23
|
+
- 薬物間相互作用 (DDI) の影響を予測するとき
|
|
24
|
+
- 小児・腎障害・肝障害の用量調節を検討するとき
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
## 1. コンパートメント PK モデル
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
import numpy as np
|
|
34
|
+
import pandas as pd
|
|
35
|
+
from scipy.integrate import odeint
|
|
36
|
+
from scipy.optimize import minimize
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def one_compartment_iv(y, t, cl, v):
|
|
40
|
+
"""1-コンパートメント IV ボーラス ODE。"""
|
|
41
|
+
return [-cl / v * y[0]]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def two_compartment_iv(y, t, cl, v1, q, v2):
|
|
45
|
+
"""2-コンパートメント IV ボーラス ODE。"""
|
|
46
|
+
c1 = y[0] / v1
|
|
47
|
+
c2 = y[1] / v2
|
|
48
|
+
dy1 = -cl * c1 - q * (c1 - c2)
|
|
49
|
+
dy2 = q * (c1 - c2)
|
|
50
|
+
return [dy1, dy2]
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def simulate_pk(dose, model="1cmt",
|
|
54
|
+
params=None,
|
|
55
|
+
times=None):
|
|
56
|
+
"""
|
|
57
|
+
PK モデルシミュレーション。
|
|
58
|
+
|
|
59
|
+
Parameters:
|
|
60
|
+
dose: float — 投与量 (mg)
|
|
61
|
+
model: str — "1cmt" or "2cmt"
|
|
62
|
+
params: dict — PK パラメータ
|
|
63
|
+
1cmt: {cl, v}
|
|
64
|
+
2cmt: {cl, v1, q, v2}
|
|
65
|
+
times: array — 時間点 (h)
|
|
66
|
+
"""
|
|
67
|
+
if times is None:
|
|
68
|
+
times = np.linspace(0, 24, 241)
|
|
69
|
+
if params is None:
|
|
70
|
+
params = ({"cl": 5.0, "v": 50.0}
|
|
71
|
+
if model == "1cmt"
|
|
72
|
+
else {"cl": 5.0, "v1": 50.0,
|
|
73
|
+
"q": 2.0, "v2": 30.0})
|
|
74
|
+
|
|
75
|
+
if model == "1cmt":
|
|
76
|
+
y0 = [dose]
|
|
77
|
+
sol = odeint(one_compartment_iv, y0,
|
|
78
|
+
times,
|
|
79
|
+
args=(params["cl"],
|
|
80
|
+
params["v"]))
|
|
81
|
+
conc = sol[:, 0] / params["v"]
|
|
82
|
+
else:
|
|
83
|
+
y0 = [dose, 0.0]
|
|
84
|
+
sol = odeint(two_compartment_iv, y0,
|
|
85
|
+
times,
|
|
86
|
+
args=(params["cl"],
|
|
87
|
+
params["v1"],
|
|
88
|
+
params["q"],
|
|
89
|
+
params["v2"]))
|
|
90
|
+
conc = sol[:, 0] / params["v1"]
|
|
91
|
+
|
|
92
|
+
df = pd.DataFrame({
|
|
93
|
+
"time": times, "concentration": conc})
|
|
94
|
+
cmax = conc.max()
|
|
95
|
+
t_half = 0.693 * params.get(
|
|
96
|
+
"v", params.get("v1", 50)) / params["cl"]
|
|
97
|
+
print(f"PK sim ({model}): Cmax={cmax:.2f}, "
|
|
98
|
+
f"t1/2={t_half:.1f}h")
|
|
99
|
+
return df
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## 2. 母集団 PK (PopPK) 推定
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
def popk_estimation(data, model="1cmt"):
|
|
106
|
+
"""
|
|
107
|
+
母集団 PK パラメータ推定 (簡易 NLME)。
|
|
108
|
+
|
|
109
|
+
Parameters:
|
|
110
|
+
data: pd.DataFrame — 個体別濃度データ
|
|
111
|
+
columns: [id, time, dv, dose, (covariates)]
|
|
112
|
+
model: str — "1cmt" or "2cmt"
|
|
113
|
+
"""
|
|
114
|
+
subjects = data["id"].unique()
|
|
115
|
+
|
|
116
|
+
def _objective(theta):
|
|
117
|
+
"""集団目的関数 (OFV)。"""
|
|
118
|
+
tv_cl = np.exp(theta[0])
|
|
119
|
+
tv_v = np.exp(theta[1])
|
|
120
|
+
omega_cl = np.exp(theta[2])
|
|
121
|
+
omega_v = np.exp(theta[3])
|
|
122
|
+
sigma = np.exp(theta[4])
|
|
123
|
+
|
|
124
|
+
ofv = 0.0
|
|
125
|
+
for subj in subjects:
|
|
126
|
+
sdata = data[data["id"] == subj]
|
|
127
|
+
dose = sdata["dose"].iloc[0]
|
|
128
|
+
times = sdata["time"].values
|
|
129
|
+
obs = sdata["dv"].values
|
|
130
|
+
|
|
131
|
+
# 個体パラメータ (EBE 近似)
|
|
132
|
+
eta_cl = 0.0
|
|
133
|
+
eta_v = 0.0
|
|
134
|
+
cl_i = tv_cl * np.exp(eta_cl)
|
|
135
|
+
v_i = tv_v * np.exp(eta_v)
|
|
136
|
+
|
|
137
|
+
pred = dose / v_i * np.exp(
|
|
138
|
+
-cl_i / v_i * times)
|
|
139
|
+
pred = np.maximum(pred, 1e-10)
|
|
140
|
+
|
|
141
|
+
# OFV 要素
|
|
142
|
+
residual = np.log(obs + 1e-10) - np.log(
|
|
143
|
+
pred)
|
|
144
|
+
ofv += np.sum(
|
|
145
|
+
residual**2 / sigma**2
|
|
146
|
+
+ np.log(sigma**2))
|
|
147
|
+
|
|
148
|
+
return ofv
|
|
149
|
+
|
|
150
|
+
# 初期値
|
|
151
|
+
x0 = [np.log(5), np.log(50),
|
|
152
|
+
np.log(0.3), np.log(0.3),
|
|
153
|
+
np.log(0.2)]
|
|
154
|
+
|
|
155
|
+
result = minimize(_objective, x0,
|
|
156
|
+
method="Nelder-Mead",
|
|
157
|
+
options={"maxiter": 5000})
|
|
158
|
+
|
|
159
|
+
estimates = {
|
|
160
|
+
"tv_cl": round(np.exp(result.x[0]), 3),
|
|
161
|
+
"tv_v": round(np.exp(result.x[1]), 3),
|
|
162
|
+
"omega_cl": round(np.exp(result.x[2]), 3),
|
|
163
|
+
"omega_v": round(np.exp(result.x[3]), 3),
|
|
164
|
+
"sigma": round(np.exp(result.x[4]), 3),
|
|
165
|
+
"ofv": round(result.fun, 2),
|
|
166
|
+
"converged": result.success,
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
print(f"PopPK: CL={estimates['tv_cl']} L/h, "
|
|
170
|
+
f"V={estimates['tv_v']} L, "
|
|
171
|
+
f"OFV={estimates['ofv']}")
|
|
172
|
+
return estimates
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## 3. TDM 投与量最適化
|
|
176
|
+
|
|
177
|
+
```python
|
|
178
|
+
def tdm_dose_optimization(
|
|
179
|
+
current_conc, current_dose,
|
|
180
|
+
target_range, pk_params,
|
|
181
|
+
interval=12):
|
|
182
|
+
"""
|
|
183
|
+
TDM ベース投与量最適化。
|
|
184
|
+
|
|
185
|
+
Parameters:
|
|
186
|
+
current_conc: float — 現在トラフ濃度
|
|
187
|
+
current_dose: float — 現在投与量 (mg)
|
|
188
|
+
target_range: tuple — 目標濃度範囲 (min, max)
|
|
189
|
+
pk_params: dict — {cl, v} PK パラメータ
|
|
190
|
+
interval: float — 投与間隔 (h)
|
|
191
|
+
"""
|
|
192
|
+
cl = pk_params["cl"]
|
|
193
|
+
v = pk_params["v"]
|
|
194
|
+
ke = cl / v
|
|
195
|
+
target_mid = (target_range[0]
|
|
196
|
+
+ target_range[1]) / 2
|
|
197
|
+
|
|
198
|
+
# 線形 PK 仮定: 用量比例
|
|
199
|
+
ratio = target_mid / max(current_conc, 0.01)
|
|
200
|
+
new_dose = current_dose * ratio
|
|
201
|
+
|
|
202
|
+
# シミュレーション検証
|
|
203
|
+
times = np.linspace(0, interval, 100)
|
|
204
|
+
conc_profile = (new_dose / v
|
|
205
|
+
* np.exp(-ke * times))
|
|
206
|
+
cmax = conc_profile[0]
|
|
207
|
+
ctrough = conc_profile[-1]
|
|
208
|
+
|
|
209
|
+
in_range = (target_range[0] <= ctrough
|
|
210
|
+
<= target_range[1])
|
|
211
|
+
|
|
212
|
+
result = {
|
|
213
|
+
"current_dose": current_dose,
|
|
214
|
+
"current_trough": current_conc,
|
|
215
|
+
"recommended_dose": round(new_dose, 1),
|
|
216
|
+
"predicted_cmax": round(cmax, 2),
|
|
217
|
+
"predicted_trough": round(ctrough, 2),
|
|
218
|
+
"target_range": target_range,
|
|
219
|
+
"in_target": in_range,
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
status = "✓" if in_range else "✗"
|
|
223
|
+
print(f"TDM: {current_dose}mg → "
|
|
224
|
+
f"{new_dose:.1f}mg "
|
|
225
|
+
f"(trough {ctrough:.2f}) {status}")
|
|
226
|
+
return result
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## 4. Emax PD モデル
|
|
230
|
+
|
|
231
|
+
```python
|
|
232
|
+
def emax_model(conc, emax, ec50, hill=1):
|
|
233
|
+
"""Emax / Sigmoid Emax モデル。"""
|
|
234
|
+
return emax * conc**hill / (
|
|
235
|
+
ec50**hill + conc**hill)
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
def fit_emax(conc_data, effect_data,
|
|
239
|
+
sigmoid=False):
|
|
240
|
+
"""
|
|
241
|
+
Emax モデルフィッティング。
|
|
242
|
+
|
|
243
|
+
Parameters:
|
|
244
|
+
conc_data: array — 濃度データ
|
|
245
|
+
effect_data: array — 薬効データ
|
|
246
|
+
sigmoid: bool — Sigmoid (Hill) モデル
|
|
247
|
+
"""
|
|
248
|
+
from scipy.optimize import curve_fit
|
|
249
|
+
|
|
250
|
+
conc = np.array(conc_data)
|
|
251
|
+
effect = np.array(effect_data)
|
|
252
|
+
|
|
253
|
+
if sigmoid:
|
|
254
|
+
def _model(c, emax, ec50, hill):
|
|
255
|
+
return emax_model(c, emax, ec50, hill)
|
|
256
|
+
p0 = [max(effect), np.median(conc), 1.0]
|
|
257
|
+
bounds = ([0, 0, 0.1], [np.inf, np.inf, 10])
|
|
258
|
+
else:
|
|
259
|
+
def _model(c, emax, ec50):
|
|
260
|
+
return emax_model(c, emax, ec50, 1)
|
|
261
|
+
p0 = [max(effect), np.median(conc)]
|
|
262
|
+
bounds = ([0, 0], [np.inf, np.inf])
|
|
263
|
+
|
|
264
|
+
popt, pcov = curve_fit(
|
|
265
|
+
_model, conc, effect, p0=p0,
|
|
266
|
+
bounds=bounds, maxfev=5000)
|
|
267
|
+
|
|
268
|
+
perr = np.sqrt(np.diag(pcov))
|
|
269
|
+
|
|
270
|
+
result = {
|
|
271
|
+
"emax": round(popt[0], 3),
|
|
272
|
+
"ec50": round(popt[1], 3),
|
|
273
|
+
"emax_se": round(perr[0], 3),
|
|
274
|
+
"ec50_se": round(perr[1], 3),
|
|
275
|
+
}
|
|
276
|
+
if sigmoid:
|
|
277
|
+
result["hill"] = round(popt[2], 3)
|
|
278
|
+
result["hill_se"] = round(perr[2], 3)
|
|
279
|
+
|
|
280
|
+
print(f"PD fit: Emax={result['emax']}, "
|
|
281
|
+
f"EC50={result['ec50']}"
|
|
282
|
+
+ (f", Hill={result['hill']}"
|
|
283
|
+
if sigmoid else ""))
|
|
284
|
+
return result
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## 5. 臨床薬理統合パイプライン
|
|
288
|
+
|
|
289
|
+
```python
|
|
290
|
+
def clinical_pharmacology_pipeline(
|
|
291
|
+
pk_data, pd_data=None,
|
|
292
|
+
target_range=(10, 20),
|
|
293
|
+
output_dir="results"):
|
|
294
|
+
"""
|
|
295
|
+
臨床薬理学統合パイプライン。
|
|
296
|
+
|
|
297
|
+
Parameters:
|
|
298
|
+
pk_data: pd.DataFrame — PK 濃度データ
|
|
299
|
+
pd_data: pd.DataFrame | None — PD 効果データ
|
|
300
|
+
target_range: tuple — 目標トラフ範囲
|
|
301
|
+
output_dir: str — 出力ディレクトリ
|
|
302
|
+
"""
|
|
303
|
+
from pathlib import Path
|
|
304
|
+
out = Path(output_dir)
|
|
305
|
+
out.mkdir(parents=True, exist_ok=True)
|
|
306
|
+
|
|
307
|
+
# 1) PopPK 推定
|
|
308
|
+
pk_est = popk_estimation(pk_data)
|
|
309
|
+
|
|
310
|
+
# 2) TDM 最適化 (最新トラフがあれば)
|
|
311
|
+
latest = pk_data.sort_values("time").iloc[-1]
|
|
312
|
+
tdm = tdm_dose_optimization(
|
|
313
|
+
latest["dv"], latest["dose"],
|
|
314
|
+
target_range,
|
|
315
|
+
{"cl": pk_est["tv_cl"],
|
|
316
|
+
"v": pk_est["tv_v"]})
|
|
317
|
+
|
|
318
|
+
# 3) PD モデル (データがあれば)
|
|
319
|
+
pd_result = None
|
|
320
|
+
if pd_data is not None:
|
|
321
|
+
pd_result = fit_emax(
|
|
322
|
+
pd_data["concentration"],
|
|
323
|
+
pd_data["effect"],
|
|
324
|
+
sigmoid=True)
|
|
325
|
+
|
|
326
|
+
# 4) シミュレーション
|
|
327
|
+
sim = simulate_pk(
|
|
328
|
+
tdm["recommended_dose"],
|
|
329
|
+
params={"cl": pk_est["tv_cl"],
|
|
330
|
+
"v": pk_est["tv_v"]})
|
|
331
|
+
sim.to_csv(out / "pk_simulation.csv",
|
|
332
|
+
index=False)
|
|
333
|
+
|
|
334
|
+
print(f"Clinical PK pipeline → {out}")
|
|
335
|
+
return {
|
|
336
|
+
"popk": pk_est,
|
|
337
|
+
"tdm": tdm,
|
|
338
|
+
"pd": pd_result,
|
|
339
|
+
"simulation": sim,
|
|
340
|
+
}
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## パイプライン統合
|
|
346
|
+
|
|
347
|
+
```
|
|
348
|
+
admet-pharmacokinetics → clinical-pharmacology → pharmacogenomics
|
|
349
|
+
(ADMET 予測) (臨床 PK/PD) (遺伝薬理学)
|
|
350
|
+
│ │ ↓
|
|
351
|
+
drug-repurposing ────────────┘ clinical-decision-support
|
|
352
|
+
(薬剤リパーパシング) (臨床意思決定)
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
## パイプライン出力
|
|
356
|
+
|
|
357
|
+
| ファイル | 説明 | 次スキル |
|
|
358
|
+
|---------|------|---------|
|
|
359
|
+
| `pk_simulation.csv` | PK シミュレーション | → dose-response |
|
|
360
|
+
| `popk_estimates.json` | PopPK パラメータ | → pharmacogenomics |
|
|
361
|
+
| `tdm_recommendation.json` | TDM 推奨用量 | → clinical-decision |
|