@bgicli/bgicli 2.4.4 → 2.4.5
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/dist/bgi.js +130 -16
- package/package.json +1 -1
package/dist/bgi.js
CHANGED
|
@@ -14617,10 +14617,37 @@ You have access to these tools:
|
|
|
14617
14617
|
- **search_files**: Find files by pattern (glob)
|
|
14618
14618
|
- **fetch_geo**: Query NCBI GEO database by accession (GSE/GDS/GPL/GSM). Returns metadata, sample info, organism, platform, and ready-to-use R/Python download code. **Always call this first when the user mentions a GEO accession number \u2014 never ask them to download manually.**
|
|
14619
14619
|
|
|
14620
|
-
|
|
14621
|
-
|
|
14622
|
-
|
|
14623
|
-
|
|
14620
|
+
## \u26A1 SKILL-FIRST PROTOCOL\uFF08\u5F3A\u5236\u6267\u884C\uFF0C\u4E0D\u53EF\u8DF3\u8FC7\uFF09
|
|
14621
|
+
|
|
14622
|
+
\u5F53\u7528\u6237\u63D0\u51FA\u4EFB\u4F55\u751F\u7269\u4FE1\u606F\u5B66 / \u836F\u7269\u53D1\u73B0 / \u4E34\u5E8A\u5206\u6790\u4EFB\u52A1\u65F6\uFF0C**\u5FC5\u987B\u4E25\u683C\u6309\u4EE5\u4E0B\u987A\u5E8F\u6267\u884C\uFF0C\u7981\u6B62\u4E71\u5E8F**\uFF1A
|
|
14623
|
+
|
|
14624
|
+
**\u7B2C\u4E00\u6B65 \u2014 \u8BC6\u522B\u6280\u80FD\uFF08\u5728\u8F93\u51FA\u4EFB\u4F55\u6B63\u6587\u524D\uFF09**
|
|
14625
|
+
\u626B\u63CF\u4E0B\u65B9 Skill Library\uFF0C\u627E\u51FA\u6240\u6709\u4E0E\u7528\u6237\u4EFB\u52A1\u76F8\u5173\u7684\u6280\u80FD\u3002\u5982\u679C Skill Library \u6CA1\u6709\u7CBE\u786E\u5339\u914D\uFF0C\u4E5F\u5E94\u641C\u7D22 Extended Skills \u76EE\u5F55\u3002
|
|
14626
|
+
|
|
14627
|
+
**\u7B2C\u4E8C\u6B65 \u2014 \u5C55\u793A\u5019\u9009\u6280\u80FD\u5E76\u8BF7\u7528\u6237\u786E\u8BA4**
|
|
14628
|
+
\u7528\u5982\u4E0B\u683C\u5F0F\uFF08\u4E2D\u6587\uFF09\u544A\u77E5\u7528\u6237\uFF0C**\u4E0D\u8981\u5148\u505A\u5176\u4ED6\u4E8B**\uFF1A
|
|
14629
|
+
> \u{1F50D} \u68C0\u6D4B\u5230\u4EE5\u4E0B\u76F8\u5173\u6280\u80FD\uFF1A
|
|
14630
|
+
>
|
|
14631
|
+
> \u2022 \`skill-id-1\` \u2014 **[\u6280\u80FD\u540D\u79F0]**\uFF1A[\u4E00\u53E5\u8BDD\u8BF4\u660E\u4E3A\u4F55\u5339\u914D\u8BE5\u4EFB\u52A1]
|
|
14632
|
+
> \u2022 \`skill-id-2\` \u2014 **[\u6280\u80FD\u540D\u79F0]**\uFF1A[\u4E00\u53E5\u8BDD\u8BF4\u660E]
|
|
14633
|
+
>
|
|
14634
|
+
> \u662F\u5426\u6FC0\u6D3B\u8FD9\u4E9B\u6280\u80FD\u5F00\u59CB\u5206\u6790\uFF1F
|
|
14635
|
+
|
|
14636
|
+
**\u7B2C\u4E09\u6B65 \u2014 \u6FC0\u6D3B\u6280\u80FD\uFF0C\u8BFB\u53D6 SKILL.md**
|
|
14637
|
+
\u7528\u6237\u786E\u8BA4\u540E\u7ACB\u5373\u6267\u884C\uFF1A\`cat ${WORKFLOWS_DIR}/<skill-id>/SKILL.md\`
|
|
14638
|
+
\u4E25\u683C\u6309\u7167 SKILL.md \u7684\u6BCF\u4E00\u6B65\u6267\u884C\uFF0C\u4E0D\u8DF3\u8FC7\u3001\u4E0D\u81EA\u884C\u53D1\u6325\u3002
|
|
14639
|
+
|
|
14640
|
+
**\u7B2C\u56DB\u6B65 \u2014 \u53EA\u95EE\u771F\u6B63\u5FC5\u8981\u7684\u6570\u636E\u95EE\u9898**
|
|
14641
|
+
SKILL.md \u8BFB\u5B8C\u540E\uFF0C\u53EA\u8BE2\u95EE\u6267\u884C\u6240\u9700\u7684\u5173\u952E\u4FE1\u606F\uFF08\u5982\u672C\u5730\u6587\u4EF6\u8DEF\u5F84\u3001\u6837\u672C\u5206\u7EC4\u540D\uFF09\u3002
|
|
14642
|
+
|
|
14643
|
+
\u274C **\u7EDD\u5BF9\u7981\u6B62**\uFF1A\u5728\u5B8C\u6210\u7B2C\u4E00\u6B65\uFF08\u8BC6\u522B\u6280\u80FD\uFF09\u4E4B\u524D\uFF0C\u8BE2\u95EE\u901A\u7528\u6570\u636E\u6536\u96C6\u95EE\u9898\u3002
|
|
14644
|
+
\u4F8B\u5982\u4E0B\u5217\u63D0\u95EE\u65B9\u5F0F\u662F**\u9519\u8BEF\u7684**\uFF0C\u5FC5\u987B\u907F\u514D\uFF1A
|
|
14645
|
+
- "\u60A8\u6709 GEO \u6570\u636E\u96C6\u5417\uFF1F"
|
|
14646
|
+
- "\u6570\u636E\u6765\u6E90\u662F\u4EC0\u4E48\uFF1F"
|
|
14647
|
+
- "\u60A8\u7684\u6570\u636E\u683C\u5F0F\u662F\u4EC0\u4E48\uFF1F"
|
|
14648
|
+
- "\u8BF7\u63D0\u4F9B\u4EE5\u4E0B\u4FE1\u606F\uFF1A1. \u6570\u636E\u6765\u6E90 2. \u6570\u636E\u5185\u5BB9 ..."
|
|
14649
|
+
|
|
14650
|
+
\u5982\u679C\u5B9E\u5728\u627E\u4E0D\u5230\u4EFB\u4F55\u5339\u914D\u6280\u80FD\uFF0C\u624D\u5141\u8BB8\u63D0\u95EE\u5E76\u8BF4\u660E\u7406\u7531\u3002
|
|
14624
14651
|
|
|
14625
14652
|
---
|
|
14626
14653
|
|
|
@@ -15320,7 +15347,19 @@ var SKILL_ROUTES = [
|
|
|
15320
15347
|
"\u901A\u8DEF\u5BCC\u96C6",
|
|
15321
15348
|
"\u57FA\u56E0\u96C6\u5206\u6790",
|
|
15322
15349
|
"ora\u5206\u6790",
|
|
15323
|
-
"gsea\u5206\u6790"
|
|
15350
|
+
"gsea\u5206\u6790",
|
|
15351
|
+
// mutation → pathway → phenotype
|
|
15352
|
+
"\u7A81\u53D8\u901A\u8DEF",
|
|
15353
|
+
"\u7A81\u53D8\u5F71\u54CD\u901A\u8DEF",
|
|
15354
|
+
"\u7A81\u53D8\u4E0B\u6E38\u901A\u8DEF",
|
|
15355
|
+
"\u6851\u57FA\u56FE\u901A\u8DEF",
|
|
15356
|
+
"kras\u901A\u8DEF",
|
|
15357
|
+
"ras-raf-mek\u901A\u8DEF",
|
|
15358
|
+
"mapk\u901A\u8DEF",
|
|
15359
|
+
"pi3k\u901A\u8DEF",
|
|
15360
|
+
"\u80BA\u764C\u901A\u8DEF",
|
|
15361
|
+
"\u9A71\u52A8\u57FA\u56E0\u901A\u8DEF",
|
|
15362
|
+
"\u4FE1\u53F7\u901A\u8DEF\u5BCC\u96C6"
|
|
15324
15363
|
]
|
|
15325
15364
|
},
|
|
15326
15365
|
{
|
|
@@ -15366,7 +15405,36 @@ var SKILL_ROUTES = [
|
|
|
15366
15405
|
"vcf\u6587\u4EF6\u5206\u6790",
|
|
15367
15406
|
"\u9057\u4F20\u53D8\u5F02\u89E3\u6790",
|
|
15368
15407
|
"\u81F4\u75C5\u6027\u8BC4\u4F30",
|
|
15369
|
-
"\u53D8\u5F02\u5F71\u54CD\u9884\u6D4B"
|
|
15408
|
+
"\u53D8\u5F02\u5F71\u54CD\u9884\u6D4B",
|
|
15409
|
+
// specific oncology mutations (KRAS/EGFR/ALK etc.)
|
|
15410
|
+
"kras\u7A81\u53D8",
|
|
15411
|
+
"kras g12c",
|
|
15412
|
+
"kras g12d",
|
|
15413
|
+
"kras g12v",
|
|
15414
|
+
"kras mutation",
|
|
15415
|
+
"egfr\u7A81\u53D8",
|
|
15416
|
+
"egfr l858r",
|
|
15417
|
+
"egfr\u5916\u663E\u5B5019\u7F3A\u5931",
|
|
15418
|
+
"alk\u878D\u5408",
|
|
15419
|
+
"braf v600e",
|
|
15420
|
+
"tp53\u7A81\u53D8",
|
|
15421
|
+
"pik3ca\u7A81\u53D8",
|
|
15422
|
+
// cancer contexts
|
|
15423
|
+
"nsclc\u7A81\u53D8",
|
|
15424
|
+
"\u80BA\u764C\u7A81\u53D8",
|
|
15425
|
+
"\u975E\u5C0F\u7EC6\u80DE\u80BA\u764C\u7A81\u53D8",
|
|
15426
|
+
"\u80BA\u817A\u764C\u7A81\u53D8",
|
|
15427
|
+
"\u80BF\u7624\u4F53\u7EC6\u80DE\u7A81\u53D8",
|
|
15428
|
+
"\u9A71\u52A8\u57FA\u56E0\u7A81\u53D8",
|
|
15429
|
+
"\u764C\u75C7\u9A71\u52A8\u7A81\u53D8",
|
|
15430
|
+
// mutation landscape
|
|
15431
|
+
"\u7A81\u53D8\u9891\u7387",
|
|
15432
|
+
"\u8DE8\u764C\u79CD\u7A81\u53D8",
|
|
15433
|
+
"\u7A81\u53D8\u70ED\u56FE",
|
|
15434
|
+
"\u7A81\u53D8\u666F\u89C2\u56FE",
|
|
15435
|
+
"\u7011\u5E03\u56FE\u7A81\u53D8",
|
|
15436
|
+
"mutation landscape",
|
|
15437
|
+
"oncoprint"
|
|
15370
15438
|
]
|
|
15371
15439
|
},
|
|
15372
15440
|
{
|
|
@@ -15782,7 +15850,40 @@ var SKILL_ROUTES = [
|
|
|
15782
15850
|
"\u5019\u9009\u836F\u7269\u7B5B\u9009",
|
|
15783
15851
|
"\u5148\u5BFC\u5316\u5408\u7269",
|
|
15784
15852
|
"hit\u5316\u5408\u7269",
|
|
15785
|
-
"\u836F\u7269\u9776\u70B9\u53D1\u73B0"
|
|
15853
|
+
"\u836F\u7269\u9776\u70B9\u53D1\u73B0",
|
|
15854
|
+
// drug target analysis
|
|
15855
|
+
"\u9776\u70B9\u8BC4\u4F30",
|
|
15856
|
+
"\u9776\u70B9\u53EF\u89C6\u5316",
|
|
15857
|
+
"\u9776\u70B9\u62A5\u544A",
|
|
15858
|
+
"\u9776\u70B9\u5206\u6790",
|
|
15859
|
+
"\u9776\u70B9\u53EF\u6210\u836F\u6027",
|
|
15860
|
+
"druggability",
|
|
15861
|
+
"\u53EF\u6210\u836F\u6027\u8BC4\u4F30",
|
|
15862
|
+
"\u9776\u70B9\u7EFC\u5408\u8BC4\u5206",
|
|
15863
|
+
"target visualization",
|
|
15864
|
+
"drug target report",
|
|
15865
|
+
"target assessment",
|
|
15866
|
+
// specific target contexts
|
|
15867
|
+
"kras\u9776\u70B9",
|
|
15868
|
+
"kras\u53EF\u6210\u836F\u6027",
|
|
15869
|
+
"kras\u6291\u5236\u5242",
|
|
15870
|
+
"kras\u7A81\u53D8\u9776\u70B9",
|
|
15871
|
+
"egfr\u9776\u70B9",
|
|
15872
|
+
"alk\u9776\u70B9",
|
|
15873
|
+
"braf\u9776\u70B9",
|
|
15874
|
+
"her2\u9776\u70B9",
|
|
15875
|
+
"met\u9776\u70B9",
|
|
15876
|
+
// visualization types for target reports
|
|
15877
|
+
"\u96F7\u8FBE\u56FE\u8BC4\u5206",
|
|
15878
|
+
"\u6C14\u6CE1\u56FE\u9776\u70B9",
|
|
15879
|
+
"\u6851\u57FA\u56FE\u7A81\u53D8\u901A\u8DEF",
|
|
15880
|
+
"\u9776\u70B9\u70ED\u56FE",
|
|
15881
|
+
// natural-language synonyms
|
|
15882
|
+
"\u54EA\u4E9B\u9776\u70B9\u503C\u5F97\u5F00\u53D1",
|
|
15883
|
+
"\u9776\u70B9\u4F18\u5148\u7EA7",
|
|
15884
|
+
"\u9776\u70B9\u6210\u836F\u6027\u5206\u6790",
|
|
15885
|
+
"\u9776\u5411\u6CBB\u7597\u9776\u70B9",
|
|
15886
|
+
"\u7CBE\u51C6\u533B\u5B66\u9776\u70B9"
|
|
15786
15887
|
]
|
|
15787
15888
|
},
|
|
15788
15889
|
{
|
|
@@ -17880,16 +17981,29 @@ async function main() {
|
|
|
17880
17981
|
const { routes: suggestedRoutes, topScore } = routeSkill(trimmed);
|
|
17881
17982
|
const newRoutes = suggestedRoutes.filter((r2) => !injectedSkills.has(r2.id));
|
|
17882
17983
|
if (newRoutes.length === 1 && topScore >= 8) {
|
|
17883
|
-
|
|
17884
|
-
|
|
17885
|
-
|
|
17886
|
-
|
|
17887
|
-
}
|
|
17888
|
-
|
|
17889
|
-
|
|
17890
|
-
newRoutes.slice(0, 3).forEach((r2) => {
|
|
17891
|
-
console.log(source_default.dim(` /sk ${r2.id} \u2014 ${r2.name}`));
|
|
17984
|
+
await injectSkill(newRoutes[0].id, history, injectedSkills, rl, false);
|
|
17985
|
+
} else if (newRoutes.length >= 1 && topScore >= 2) {
|
|
17986
|
+
const candidates = newRoutes.slice(0, 3);
|
|
17987
|
+
console.log();
|
|
17988
|
+
console.log(source_default.bold.yellow("\u250C\u2500 \u{1F50D} \u68C0\u6D4B\u5230\u76F8\u5173\u6280\u80FD \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"));
|
|
17989
|
+
candidates.forEach((r2, i2) => {
|
|
17990
|
+
console.log(`\u2502 ${source_default.bold.cyan(`[${i2 + 1}]`)} ${source_default.cyan(r2.id)}${source_default.dim(" \u2014")} ${r2.name}`);
|
|
17892
17991
|
});
|
|
17992
|
+
console.log(source_default.bold.yellow("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"));
|
|
17993
|
+
const pickPrompt = candidates.length > 1 ? ` \u6FC0\u6D3B\u54EA\u4E2A\u6280\u80FD\uFF1F\u8F93\u5165\u7F16\u53F7 (\u5982 1 \u6216 1,2)\uFF0C\u56DE\u8F66\u8DF3\u8FC7 \u203A ` : ` \u6FC0\u6D3B\u6B64\u6280\u80FD\uFF1F[Y/n] \u203A `;
|
|
17994
|
+
const skillChoice = await question(rl, source_default.yellow(pickPrompt));
|
|
17995
|
+
const choiceTrimmed = skillChoice.trim().toLowerCase();
|
|
17996
|
+
if (choiceTrimmed !== "" && choiceTrimmed !== "n") {
|
|
17997
|
+
let indices;
|
|
17998
|
+
if (candidates.length === 1) {
|
|
17999
|
+
indices = choiceTrimmed === "y" || choiceTrimmed === "" ? [0] : [];
|
|
18000
|
+
} else {
|
|
18001
|
+
indices = choiceTrimmed.split(",").map((s2) => parseInt(s2.trim(), 10) - 1).filter((i2) => i2 >= 0 && i2 < candidates.length);
|
|
18002
|
+
}
|
|
18003
|
+
for (const idx of indices) {
|
|
18004
|
+
await injectSkill(candidates[idx].id, history, injectedSkills, rl, true);
|
|
18005
|
+
}
|
|
18006
|
+
}
|
|
17893
18007
|
console.log();
|
|
17894
18008
|
}
|
|
17895
18009
|
const expanded = expandFileRefs(trimmed);
|