@nahisaho/satori 0.20.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 +70 -39
- package/package.json +1 -1
- package/src/.github/skills/scientific-biothings-idmapping/SKILL.md +4 -0
- package/src/.github/skills/scientific-cellxgene-census/SKILL.md +257 -0
- package/src/.github/skills/scientific-clingen-curation/SKILL.md +258 -0
- package/src/.github/skills/scientific-clinical-nlp/SKILL.md +250 -0
- 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-drug-repurposing/SKILL.md +4 -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-gtex-tissue-expression/SKILL.md +5 -2
- package/src/.github/skills/scientific-hgnc-nomenclature/SKILL.md +282 -0
- package/src/.github/skills/scientific-human-cell-atlas/SKILL.md +3 -0
- package/src/.github/skills/scientific-human-protein-atlas/SKILL.md +4 -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-metabolomics-network/SKILL.md +311 -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-pharmacogenomics/SKILL.md +4 -0
- package/src/.github/skills/scientific-pharos-targets/SKILL.md +276 -0
- package/src/.github/skills/scientific-protein-structure-analysis/SKILL.md +4 -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/src/.github/skills/scientific-variant-effect-prediction/SKILL.md +7 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scientific-pharos-targets
|
|
3
|
+
description: |
|
|
4
|
+
Pharos/TCRD ターゲットプロファイリングスキル。Illuminating
|
|
5
|
+
the Druggable Genome (IDG) Pharos GraphQL API による
|
|
6
|
+
ターゲット開発レベル (TDL) 分類・疾患関連・リガンド検索・
|
|
7
|
+
既存薬候補スクリーニングパイプライン。
|
|
8
|
+
ToolUniverse 連携: pharos。
|
|
9
|
+
tu_tools:
|
|
10
|
+
- key: pharos
|
|
11
|
+
name: Pharos
|
|
12
|
+
description: IDG Pharos/TCRD ターゲットナレッジベース
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Scientific Pharos Targets
|
|
16
|
+
|
|
17
|
+
IDG (Illuminating the Druggable Genome) Pharos GraphQL API
|
|
18
|
+
を活用したターゲット TDL 分類・疾患-ターゲット関連・
|
|
19
|
+
リガンドアクティビティ検索・既存薬候補パイプラインを提供する。
|
|
20
|
+
|
|
21
|
+
## When to Use
|
|
22
|
+
|
|
23
|
+
- タンパク質標的の開発レベル (Tclin/Tchem/Tbio/Tdark) を確認するとき
|
|
24
|
+
- IDG ダークターゲットの知識ギャップを調査するとき
|
|
25
|
+
- ターゲットに関連する疾患・リガンド・PPI を検索するとき
|
|
26
|
+
- Tchem/Tbio ターゲットから創薬候補を探索するとき
|
|
27
|
+
- ターゲット間のドラッガビリティ比較を行うとき
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Quick Start
|
|
32
|
+
|
|
33
|
+
## 1. ターゲット TDL 分類検索
|
|
34
|
+
|
|
35
|
+
```python
|
|
36
|
+
import requests
|
|
37
|
+
import pandas as pd
|
|
38
|
+
|
|
39
|
+
PHAROS_API = "https://pharos-api.ncats.io/graphql"
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def pharos_target(gene_symbol):
|
|
43
|
+
"""
|
|
44
|
+
Pharos — ターゲット詳細情報取得。
|
|
45
|
+
|
|
46
|
+
Parameters:
|
|
47
|
+
gene_symbol: str — 遺伝子シンボル (例: "ACE2")
|
|
48
|
+
"""
|
|
49
|
+
query = """
|
|
50
|
+
query targetDetails($sym: String!) {
|
|
51
|
+
target(q: {sym: $sym}) {
|
|
52
|
+
name
|
|
53
|
+
sym
|
|
54
|
+
tdl
|
|
55
|
+
fam
|
|
56
|
+
novelty
|
|
57
|
+
description
|
|
58
|
+
uniprotId: accession
|
|
59
|
+
diseaseCount
|
|
60
|
+
ligandCount
|
|
61
|
+
ppiCount
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
"""
|
|
65
|
+
resp = requests.post(
|
|
66
|
+
PHAROS_API,
|
|
67
|
+
json={"query": query,
|
|
68
|
+
"variables": {"sym": gene_symbol}},
|
|
69
|
+
timeout=30)
|
|
70
|
+
resp.raise_for_status()
|
|
71
|
+
data = resp.json().get("data", {}).get("target", {})
|
|
72
|
+
|
|
73
|
+
if not data:
|
|
74
|
+
print(f"Pharos: {gene_symbol} not found")
|
|
75
|
+
return {}
|
|
76
|
+
|
|
77
|
+
print(f"Pharos: {gene_symbol} → TDL={data['tdl']}, "
|
|
78
|
+
f"fam={data.get('fam', 'N/A')}, "
|
|
79
|
+
f"diseases={data.get('diseaseCount', 0)}, "
|
|
80
|
+
f"ligands={data.get('ligandCount', 0)}")
|
|
81
|
+
return data
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def pharos_target_list(gene_symbols):
|
|
85
|
+
"""
|
|
86
|
+
Pharos — 複数ターゲット TDL バッチ取得。
|
|
87
|
+
|
|
88
|
+
Parameters:
|
|
89
|
+
gene_symbols: list[str] — 遺伝子シンボルリスト
|
|
90
|
+
"""
|
|
91
|
+
results = []
|
|
92
|
+
for sym in gene_symbols:
|
|
93
|
+
data = pharos_target(sym)
|
|
94
|
+
if data:
|
|
95
|
+
results.append(data)
|
|
96
|
+
|
|
97
|
+
df = pd.DataFrame(results)
|
|
98
|
+
if not df.empty:
|
|
99
|
+
tdl_counts = df["tdl"].value_counts()
|
|
100
|
+
print(f"TDL distribution: "
|
|
101
|
+
f"{tdl_counts.to_dict()}")
|
|
102
|
+
return df
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## 2. 疾患-ターゲット関連
|
|
106
|
+
|
|
107
|
+
```python
|
|
108
|
+
def pharos_target_diseases(gene_symbol, top_n=20):
|
|
109
|
+
"""
|
|
110
|
+
Pharos — ターゲットの関連疾患取得。
|
|
111
|
+
|
|
112
|
+
Parameters:
|
|
113
|
+
gene_symbol: str — 遺伝子シンボル
|
|
114
|
+
top_n: int — 上位件数
|
|
115
|
+
"""
|
|
116
|
+
query = """
|
|
117
|
+
query targetDiseases($sym: String!, $top: Int!) {
|
|
118
|
+
target(q: {sym: $sym}) {
|
|
119
|
+
sym
|
|
120
|
+
diseases(top: $top) {
|
|
121
|
+
name
|
|
122
|
+
associationCount
|
|
123
|
+
datasource_count
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
"""
|
|
128
|
+
resp = requests.post(
|
|
129
|
+
PHAROS_API,
|
|
130
|
+
json={"query": query,
|
|
131
|
+
"variables": {"sym": gene_symbol,
|
|
132
|
+
"top": top_n}},
|
|
133
|
+
timeout=30)
|
|
134
|
+
resp.raise_for_status()
|
|
135
|
+
target = resp.json().get("data", {}).get(
|
|
136
|
+
"target", {})
|
|
137
|
+
diseases = target.get("diseases", [])
|
|
138
|
+
|
|
139
|
+
df = pd.DataFrame(diseases)
|
|
140
|
+
print(f"Pharos diseases: {gene_symbol} → "
|
|
141
|
+
f"{len(df)} associations")
|
|
142
|
+
return df
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## 3. リガンド・アクティビティ検索
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
def pharos_target_ligands(gene_symbol, top_n=20):
|
|
149
|
+
"""
|
|
150
|
+
Pharos — ターゲットのリガンド/活性化合物取得。
|
|
151
|
+
|
|
152
|
+
Parameters:
|
|
153
|
+
gene_symbol: str — 遺伝子シンボル
|
|
154
|
+
top_n: int — 上位件数
|
|
155
|
+
"""
|
|
156
|
+
query = """
|
|
157
|
+
query targetLigands($sym: String!, $top: Int!) {
|
|
158
|
+
target(q: {sym: $sym}) {
|
|
159
|
+
sym
|
|
160
|
+
ligands(top: $top) {
|
|
161
|
+
name
|
|
162
|
+
smiles
|
|
163
|
+
isdrug
|
|
164
|
+
actcnt
|
|
165
|
+
activities {
|
|
166
|
+
type
|
|
167
|
+
value
|
|
168
|
+
moa
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
"""
|
|
174
|
+
resp = requests.post(
|
|
175
|
+
PHAROS_API,
|
|
176
|
+
json={"query": query,
|
|
177
|
+
"variables": {"sym": gene_symbol,
|
|
178
|
+
"top": top_n}},
|
|
179
|
+
timeout=30)
|
|
180
|
+
resp.raise_for_status()
|
|
181
|
+
target = resp.json().get("data", {}).get(
|
|
182
|
+
"target", {})
|
|
183
|
+
ligands = target.get("ligands", [])
|
|
184
|
+
|
|
185
|
+
rows = []
|
|
186
|
+
for lig in ligands:
|
|
187
|
+
rows.append({
|
|
188
|
+
"name": lig.get("name", ""),
|
|
189
|
+
"smiles": lig.get("smiles", ""),
|
|
190
|
+
"is_drug": lig.get("isdrug", False),
|
|
191
|
+
"activity_count": lig.get("actcnt", 0),
|
|
192
|
+
})
|
|
193
|
+
|
|
194
|
+
df = pd.DataFrame(rows)
|
|
195
|
+
n_drugs = df["is_drug"].sum() if not df.empty else 0
|
|
196
|
+
print(f"Pharos ligands: {gene_symbol} → "
|
|
197
|
+
f"{len(df)} compounds ({n_drugs} drugs)")
|
|
198
|
+
return df
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## 4. Pharos 統合パイプライン
|
|
202
|
+
|
|
203
|
+
```python
|
|
204
|
+
def pharos_pipeline(gene_symbols,
|
|
205
|
+
output_dir="results"):
|
|
206
|
+
"""
|
|
207
|
+
Pharos 統合パイプライン。
|
|
208
|
+
|
|
209
|
+
Parameters:
|
|
210
|
+
gene_symbols: list[str] — 遺伝子シンボルリスト
|
|
211
|
+
output_dir: str — 出力ディレクトリ
|
|
212
|
+
"""
|
|
213
|
+
from pathlib import Path
|
|
214
|
+
output_dir = Path(output_dir)
|
|
215
|
+
output_dir.mkdir(parents=True, exist_ok=True)
|
|
216
|
+
|
|
217
|
+
# 1) TDL 分類
|
|
218
|
+
targets = pharos_target_list(gene_symbols)
|
|
219
|
+
targets.to_csv(output_dir / "pharos_targets.csv",
|
|
220
|
+
index=False)
|
|
221
|
+
|
|
222
|
+
# 2) 疾患関連 (上位ターゲット)
|
|
223
|
+
all_diseases = []
|
|
224
|
+
for sym in gene_symbols[:10]:
|
|
225
|
+
diseases = pharos_target_diseases(sym)
|
|
226
|
+
diseases["target"] = sym
|
|
227
|
+
all_diseases.append(diseases)
|
|
228
|
+
if all_diseases:
|
|
229
|
+
disease_df = pd.concat(all_diseases,
|
|
230
|
+
ignore_index=True)
|
|
231
|
+
disease_df.to_csv(
|
|
232
|
+
output_dir / "pharos_diseases.csv",
|
|
233
|
+
index=False)
|
|
234
|
+
|
|
235
|
+
# 3) リガンド
|
|
236
|
+
all_ligands = []
|
|
237
|
+
for sym in gene_symbols[:10]:
|
|
238
|
+
ligands = pharos_target_ligands(sym)
|
|
239
|
+
ligands["target"] = sym
|
|
240
|
+
all_ligands.append(ligands)
|
|
241
|
+
if all_ligands:
|
|
242
|
+
ligand_df = pd.concat(all_ligands,
|
|
243
|
+
ignore_index=True)
|
|
244
|
+
ligand_df.to_csv(
|
|
245
|
+
output_dir / "pharos_ligands.csv",
|
|
246
|
+
index=False)
|
|
247
|
+
|
|
248
|
+
print(f"Pharos pipeline → {output_dir}")
|
|
249
|
+
return {"targets": targets}
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## ToolUniverse 連携
|
|
255
|
+
|
|
256
|
+
| TU Key | ツール名 | 連携内容 |
|
|
257
|
+
|--------|---------|---------|
|
|
258
|
+
| `pharos` | Pharos | IDG Pharos/TCRD ターゲットナレッジベース |
|
|
259
|
+
|
|
260
|
+
## パイプライン統合
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
drug-target-profiling → pharos-targets → drug-repurposing
|
|
264
|
+
(DGIdb/標的同定) (TDL/IDG) (リポジショニング)
|
|
265
|
+
│ │ ↓
|
|
266
|
+
pharmacology-targets ─────┘ compound-screening
|
|
267
|
+
(BindingDB/GtoPdb) (ZINC ライブラリ)
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## パイプライン出力
|
|
271
|
+
|
|
272
|
+
| ファイル | 説明 | 次スキル |
|
|
273
|
+
|---------|------|---------|
|
|
274
|
+
| `results/pharos_targets.csv` | TDL 分類結果 | → drug-target-profiling |
|
|
275
|
+
| `results/pharos_diseases.csv` | 疾患関連 | → disease-research |
|
|
276
|
+
| `results/pharos_ligands.csv` | リガンド/薬剤 | → drug-repurposing |
|
|
@@ -6,6 +6,10 @@ description: |
|
|
|
6
6
|
ToolUniverse の Protein Structure Retrieval と claude-scientific-skills の
|
|
7
7
|
PDB/AlphaFold スキルを統合。
|
|
8
8
|
「タンパク質の構造を解析して」「PDB 構造を調べて」「ドッキング準備して」で発火。
|
|
9
|
+
tu_tools:
|
|
10
|
+
- key: proteinsplus
|
|
11
|
+
name: ProteinsPlus
|
|
12
|
+
description: タンパク質結合部位検出・構造解析ツール群
|
|
9
13
|
---
|
|
10
14
|
|
|
11
15
|
# Scientific Protein Structure Analysis
|
|
@@ -4,6 +4,17 @@ description: |
|
|
|
4
4
|
公衆衛生データアクセススキル。NHANES 疫学調査データ、MedlinePlus 一般向け
|
|
5
5
|
健康情報、RxNorm 薬剤標準語彙、ODPHP 健康目標・ガイドライン、
|
|
6
6
|
Health Disparities 健康格差データ統合パイプライン。
|
|
7
|
+
ToolUniverse 連携: nhanes, medlineplus, odphp。
|
|
8
|
+
tu_tools:
|
|
9
|
+
- key: nhanes
|
|
10
|
+
name: NHANES
|
|
11
|
+
description: 全米健康栄養調査データ
|
|
12
|
+
- key: medlineplus
|
|
13
|
+
name: MedlinePlus
|
|
14
|
+
description: NLM 一般向け健康情報 API
|
|
15
|
+
- key: odphp
|
|
16
|
+
name: ODPHP
|
|
17
|
+
description: Healthy People 健康目標・ガイドライン
|
|
7
18
|
---
|
|
8
19
|
|
|
9
20
|
# Scientific Public Health Data
|
|
@@ -5,6 +5,17 @@ description: |
|
|
|
5
5
|
代謝フラックス解析(FBA / pFBA)・遺伝子制御ネットワーク推定(GRN)・
|
|
6
6
|
シグナル伝達経路モデリング・パラメータ推定・感度解析・
|
|
7
7
|
BioModels/Reactome/KEGG/BiGG 統合パイプライン。
|
|
8
|
+
ToolUniverse 連携: bigg_models, complex_portal, wikipathways。
|
|
9
|
+
tu_tools:
|
|
10
|
+
- key: bigg_models
|
|
11
|
+
name: BiGG Models
|
|
12
|
+
description: ゲノムスケール代謝モデル BiGG REST API
|
|
13
|
+
- key: complex_portal
|
|
14
|
+
name: Complex Portal
|
|
15
|
+
description: EBI タンパク質複合体データベース
|
|
16
|
+
- key: wikipathways
|
|
17
|
+
name: WikiPathways
|
|
18
|
+
description: WikiPathways コミュニティパスウェイ
|
|
8
19
|
---
|
|
9
20
|
|
|
10
21
|
# Scientific Systems Biology
|
|
@@ -6,6 +6,13 @@ description: |
|
|
|
6
6
|
3 大予測ツールを統合したコンセンサス病原性評価パイプライン。
|
|
7
7
|
Ensembl VEP 連携、バリアントフィルタリング、優先順位付け対応。
|
|
8
8
|
9 の ToolUniverse SMCP ツールと連携。
|
|
9
|
+
tu_tools:
|
|
10
|
+
- key: spliceai
|
|
11
|
+
name: SpliceAI
|
|
12
|
+
description: スプライシングバリアント効果予測
|
|
13
|
+
- key: cadd
|
|
14
|
+
name: CADD
|
|
15
|
+
description: 統合アノテーション依存性枯湇スコア
|
|
9
16
|
---
|
|
10
17
|
|
|
11
18
|
# Scientific Variant Effect Prediction
|