@bgicli/bgicli 2.4.4 → 2.4.6

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.
Files changed (2) hide show
  1. package/dist/bgi.js +1248 -88
  2. 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
- **MANDATORY**: When the user gives you a bioinformatics task:
14621
- 1. Check if a matching pre-built skill exists (see Skill Library below)
14622
- 2. If yes: read the skill's SKILL.md first, then follow it strictly
14623
- 3. If no: plan a principled approach and explain your reasoning
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
 
@@ -15153,10 +15180,12 @@ var SKILL_ROUTES = [
15153
15180
  category: "\u8F6C\u5F55\u7EC4",
15154
15181
  tag: "builtin",
15155
15182
  keywords: [
15156
- // exact tool names
15183
+ // tool names
15157
15184
  "deseq2",
15158
15185
  "edger",
15159
15186
  "limma-voom",
15187
+ "limma",
15188
+ "voom",
15160
15189
  // explicit analysis terms
15161
15190
  "rna-seq\u5DEE\u5F02",
15162
15191
  "rnaseq\u5DEE\u5F02",
@@ -15166,7 +15195,25 @@ var SKILL_ROUTES = [
15166
15195
  "count matrix",
15167
15196
  "\u539F\u59CBcounts",
15168
15197
  "raw counts",
15169
- // natural-language synonyms (the main gap in the original)
15198
+ "featurecounts",
15199
+ "htseq-count",
15200
+ "htseq",
15201
+ "rsem",
15202
+ "salmon\u5B9A\u91CF",
15203
+ "kallisto",
15204
+ // data inputs
15205
+ "tpm\u77E9\u9635\u5206\u6790",
15206
+ "fpkm\u77E9\u9635",
15207
+ "\u8868\u8FBE\u77E9\u9635",
15208
+ "star\u6BD4\u5BF9\u7ED3\u679C",
15209
+ "hisat2\u7ED3\u679C",
15210
+ // result types
15211
+ "\u706B\u5C71\u56FE",
15212
+ "volcano plot",
15213
+ "ma\u56FE",
15214
+ "ma plot",
15215
+ "\u5DEE\u5F02\u57FA\u56E0\u70ED\u56FE",
15216
+ // natural-language: what changed
15170
15217
  "\u54EA\u4E9B\u57FA\u56E0\u8868\u8FBE\u91CF\u9AD8",
15171
15218
  "\u54EA\u4E9B\u57FA\u56E0\u4E0A\u8C03",
15172
15219
  "\u54EA\u4E9B\u57FA\u56E0\u4E0B\u8C03",
@@ -15179,7 +15226,37 @@ var SKILL_ROUTES = [
15179
15226
  "differentially expressed",
15180
15227
  "\u5DEE\u5F02\u5206\u6790",
15181
15228
  "\u6BD4\u8F83\u4E24\u7EC4\u57FA\u56E0\u8868\u8FBE",
15182
- "\u80BF\u7624vs\u6B63\u5E38"
15229
+ // comparison contexts
15230
+ "\u80BF\u7624vs\u6B63\u5E38",
15231
+ "\u80BF\u7624\u764C\u65C1",
15232
+ "\u764C\u65C1\u5BF9\u7167",
15233
+ "\u80BF\u7624\u5BF9\u7167\u6BD4\u8F83",
15234
+ "\u5904\u7406vs\u5BF9\u7167",
15235
+ "\u836F\u7269\u5904\u7406\u5DEE\u5F02",
15236
+ "\u6572\u9664vs\u91CE\u751F\u578B",
15237
+ "\u8FC7\u8868\u8FBEvs\u5BF9\u7167",
15238
+ "\u8010\u836Fvs\u654F\u611F",
15239
+ "\u8010\u836F\u5DEE\u5F02\u8868\u8FBE",
15240
+ "\u5206\u5316\u524D\u540E",
15241
+ "\u65F6\u95F4\u70B9\u5DEE\u5F02",
15242
+ // cancer-specific
15243
+ "\u80BA\u764C\u5DEE\u5F02\u57FA\u56E0",
15244
+ "\u4E73\u817A\u764C\u5DEE\u5F02\u8868\u8FBE",
15245
+ "\u809D\u764C\u8F6C\u5F55\u7EC4\u5DEE\u5F02",
15246
+ "\u7ED3\u76F4\u80A0\u764C\u57FA\u56E0\u8868\u8FBE",
15247
+ "\u80C3\u764C\u5DEE\u5F02\u5206\u6790",
15248
+ "\u524D\u5217\u817A\u764C\u5DEE\u5F02",
15249
+ "\u767D\u8840\u75C5\u8F6C\u5F55\u7EC4",
15250
+ "\u6DCB\u5DF4\u7624\u57FA\u56E0\u8868\u8FBE",
15251
+ "\u80F6\u8D28\u7624\u5DEE\u5F02\u57FA\u56E0",
15252
+ // immune/inflammation context
15253
+ "\u514D\u75AB\u7EC6\u80DE\u5DEE\u5F02\u8868\u8FBE",
15254
+ "\u5DE8\u566C\u7EC6\u80DE\u6FC0\u6D3B\u5DEE\u5F02",
15255
+ "\u708E\u75C7\u76F8\u5173\u5DEE\u5F02\u57FA\u56E0",
15256
+ // natural query style
15257
+ "\u54EA\u4E9B\u57FA\u56E0\u6709\u5DEE\u5F02",
15258
+ "\u627E\u5230\u5DEE\u5F02\u57FA\u56E0",
15259
+ "rna-seq\u6570\u636E\u5206\u6790"
15183
15260
  ]
15184
15261
  },
15185
15262
  {
@@ -15188,23 +15265,54 @@ var SKILL_ROUTES = [
15188
15265
  category: "\u8F6C\u5F55\u7EC4",
15189
15266
  tag: "builtin",
15190
15267
  keywords: [
15268
+ // method names
15191
15269
  "wgcna\u805A\u7C7B",
15192
15270
  "\u5C42\u6B21\u805A\u7C7B",
15193
15271
  "hierarchical clustering",
15194
15272
  "kmeans\u805A\u7C7B",
15273
+ "k-means",
15195
15274
  "hdbscan",
15196
15275
  "\u6837\u672C\u805A\u7C7B",
15197
15276
  "\u7279\u5F81\u805A\u7C7B",
15198
15277
  "omics clustering",
15199
- // natural-language synonyms
15278
+ "consensus clustering",
15279
+ "\u5171\u8BC6\u805A\u7C7B",
15280
+ "nmf\u5206\u89E3",
15281
+ "non-negative matrix",
15282
+ // dimensionality reduction
15283
+ "pca\u5206\u6790",
15284
+ "\u4E3B\u6210\u5206\u5206\u6790",
15285
+ "umap\u964D\u7EF4",
15286
+ "t-sne",
15287
+ "tsne",
15288
+ "umap",
15289
+ "pca\u56FE",
15290
+ "umap\u56FE",
15291
+ "\u964D\u7EF4\u53EF\u89C6\u5316",
15292
+ // subtyping
15293
+ "\u5206\u5B50\u4E9A\u578B",
15294
+ "\u5206\u5B50\u4E9A\u578B\u9274\u5B9A",
15295
+ "\u764C\u75C7\u5206\u5B50\u5206\u578B",
15296
+ "\u60A3\u8005\u5206\u5C42",
15297
+ "\u6837\u672C\u5206\u578B",
15298
+ "\u4E9A\u578B\u9274\u5B9A",
15299
+ "\u5185\u5728\u4E9A\u578B",
15300
+ "intrinsic subtype",
15301
+ // multi-omics
15302
+ "\u86CB\u767D\u8D28\u7EC4\u805A\u7C7B",
15303
+ "\u4EE3\u8C22\u7EC4\u805A\u7C7B",
15304
+ "\u591A\u7EC4\u5B66\u805A\u7C7B",
15305
+ "\u591A\u7EC4\u5B66\u6574\u5408",
15306
+ // natural-language
15200
15307
  "\u6837\u672C\u5206\u7EC4",
15201
15308
  "\u6837\u672C\u5206\u7C7B",
15202
15309
  "\u805A\u7C7B\u5206\u6790",
15203
15310
  "\u65E0\u76D1\u7763\u805A\u7C7B",
15204
15311
  "\u70ED\u56FE\u805A\u7C7B",
15205
- "pca\u5206\u6790",
15206
- "\u4E3B\u6210\u5206\u5206\u6790",
15207
- "umap\u964D\u7EF4"
15312
+ "\u6837\u672C\u76F8\u4F3C\u6027",
15313
+ "\u6837\u672C\u95F4\u5173\u7CFB",
15314
+ "\u8FD9\u4E9B\u6837\u672C\u5982\u4F55\u5206\u7EC4",
15315
+ "\u627E\u5230\u6837\u672C\u7684\u4E9A\u7FA4"
15208
15316
  ]
15209
15317
  },
15210
15318
  {
@@ -15213,6 +15321,7 @@ var SKILL_ROUTES = [
15213
15321
  category: "\u5355\u7EC6\u80DE",
15214
15322
  tag: "builtin",
15215
15323
  keywords: [
15324
+ // tools
15216
15325
  "scanpy",
15217
15326
  "scrna-seq",
15218
15327
  "single cell rna",
@@ -15221,7 +15330,9 @@ var SKILL_ROUTES = [
15221
15330
  "leiden\u805A\u7C7B",
15222
15331
  "python\u5355\u7EC6\u80DE",
15223
15332
  "anndata\u5206\u6790",
15224
- // natural-language synonyms
15333
+ "louvain\u805A\u7C7B",
15334
+ "umap\u5355\u7EC6\u80DE",
15335
+ // core analysis
15225
15336
  "\u5355\u7EC6\u80DE\u6D4B\u5E8F",
15226
15337
  "\u5355\u7EC6\u80DE\u5206\u6790",
15227
15338
  "\u5355\u7EC6\u80DE\u6570\u636E",
@@ -15229,7 +15340,60 @@ var SKILL_ROUTES = [
15229
15340
  "\u7EC6\u80DE\u805A\u7C7B",
15230
15341
  "\u7EC6\u80DE\u7C7B\u578B\u9274\u5B9A",
15231
15342
  "scrna",
15232
- "sc-rna"
15343
+ "sc-rna",
15344
+ // quality control
15345
+ "\u5355\u7EC6\u80DEqc",
15346
+ "\u5355\u7EC6\u80DE\u8D28\u63A7",
15347
+ "\u7EBF\u7C92\u4F53\u6BD4\u4F8B",
15348
+ "doublet\u68C0\u6D4B",
15349
+ "doubletfinder",
15350
+ // cell types
15351
+ "T\u7EC6\u80DE\u4E9A\u7FA4",
15352
+ "B\u7EC6\u80DE\u5206\u6790",
15353
+ "NK\u7EC6\u80DE",
15354
+ "\u5DE8\u566C\u7EC6\u80DE\u4E9A\u7FA4",
15355
+ "\u6811\u7A81\u72B6\u7EC6\u80DE",
15356
+ "\u6210\u7EA4\u7EF4\u7EC6\u80DE",
15357
+ "\u5185\u76AE\u7EC6\u80DE",
15358
+ "\u4E0A\u76AE\u7EC6\u80DE",
15359
+ "\u9AD3\u7CFB\u7EC6\u80DE",
15360
+ "\u6D46\u7EC6\u80DE",
15361
+ "\u81EA\u7136\u6740\u4F24\u7EC6\u80DE",
15362
+ // TME / cancer context
15363
+ "\u80BF\u7624\u5FAE\u73AF\u5883",
15364
+ "tme\u5206\u6790",
15365
+ "\u80BF\u7624\u6D78\u6DA6\u6DCB\u5DF4\u7EC6\u80DE",
15366
+ "til\u5206\u6790",
15367
+ "\u80BF\u7624\u5355\u7EC6\u80DE\u56FE\u8C31",
15368
+ "\u514D\u75AB\u7EC6\u80DE\u6D78\u6DA6\u5355\u7EC6\u80DE",
15369
+ "\u764C\u75C7\u5355\u7EC6\u80DE",
15370
+ // trajectory / pseudotime
15371
+ "\u62DF\u65F6\u5E8F\u5206\u6790",
15372
+ "pseudotime",
15373
+ "trajectory analysis",
15374
+ "\u8F68\u8FF9\u5206\u6790",
15375
+ "\u7EC6\u80DE\u5206\u5316\u8F68\u8FF9",
15376
+ "\u53D1\u80B2\u8F68\u8FF9",
15377
+ "monocle",
15378
+ "diffusion pseudotime",
15379
+ // cell communication
15380
+ "\u7EC6\u80DE\u901A\u8BAF",
15381
+ "cellchat",
15382
+ "nichenet",
15383
+ "\u914D\u4F53\u53D7\u4F53",
15384
+ "ligand receptor",
15385
+ "\u7EC6\u80DE\u95F4\u901A\u8BAF",
15386
+ "\u4FE1\u53F7\u4F20\u5BFC\u7F51\u7EDC",
15387
+ // integration
15388
+ "\u591A\u6837\u672C\u6574\u5408",
15389
+ "harmony\u6279\u6B21\u77EB\u6B63",
15390
+ "\u6279\u6B21\u77EB\u6B63\u5355\u7EC6\u80DE",
15391
+ "scanorama",
15392
+ // natural query
15393
+ "\u5355\u7EC6\u80DE\u56FE\u8C31",
15394
+ "\u7EC6\u80DE\u7C7B\u578B\u6709\u54EA\u4E9B",
15395
+ "\u7EC6\u80DE\u4E9A\u7FA4\u5206\u6790",
15396
+ "\u5355\u7EC6\u80DE\u8F6C\u5F55\u7EC4"
15233
15397
  ]
15234
15398
  },
15235
15399
  {
@@ -15238,16 +15402,37 @@ var SKILL_ROUTES = [
15238
15402
  category: "\u5355\u7EC6\u80DE",
15239
15403
  tag: "builtin",
15240
15404
  keywords: [
15405
+ // tools
15241
15406
  "seurat",
15242
15407
  "r\u8BED\u8A00\u5355\u7EC6\u80DE",
15243
15408
  "findclusters",
15244
15409
  "findneighbors",
15245
15410
  "sctransform",
15246
15411
  "r\u5355\u7EC6\u80DE\u5206\u6790",
15247
- // natural-language synonyms
15412
+ "findmarkers",
15413
+ "findallmarkers",
15414
+ "doubletfinder r",
15415
+ "harmony r\u6574\u5408",
15416
+ "cca\u6574\u5408",
15417
+ // core workflow
15248
15418
  "r\u505A\u5355\u7EC6\u80DE",
15249
15419
  "seurat\u5206\u6790",
15250
- "\u7528r\u5206\u6790\u5355\u7EC6\u80DE"
15420
+ "\u7528r\u5206\u6790\u5355\u7EC6\u80DE",
15421
+ "seurat\u5BF9\u8C61",
15422
+ "seurat pipeline",
15423
+ // marker genes
15424
+ "\u6807\u8BB0\u57FA\u56E0",
15425
+ "marker gene",
15426
+ "\u7EC6\u80DEmarker",
15427
+ "\u7EC6\u80DE\u7279\u5F81\u57FA\u56E0",
15428
+ // T/B/NK cells in R
15429
+ "r\u8BED\u8A00t\u7EC6\u80DE",
15430
+ "r\u8BED\u8A00\u80BF\u7624\u5FAE\u73AF\u5883",
15431
+ "\u7528seurat\u505A\u514D\u75AB\u5206\u6790",
15432
+ // integration
15433
+ "rpca\u6574\u5408",
15434
+ "seurat\u6574\u5408",
15435
+ "\u591A\u6837\u672Cseurat"
15251
15436
  ]
15252
15437
  },
15253
15438
  {
@@ -15256,20 +15441,47 @@ var SKILL_ROUTES = [
15256
15441
  category: "\u5355\u7EC6\u80DE",
15257
15442
  tag: "builtin",
15258
15443
  keywords: [
15444
+ // platforms
15259
15445
  "\u7A7A\u95F4\u8F6C\u5F55\u7EC4",
15260
15446
  "spatial transcriptomics",
15261
15447
  "visium",
15448
+ "10x visium",
15449
+ "stereo-seq",
15450
+ "merfish",
15451
+ "seqfish",
15452
+ "slide-seq",
15453
+ "cosmx",
15454
+ "xenium",
15455
+ "dbit-seq",
15456
+ "resolve biosciences",
15457
+ // analysis
15262
15458
  "\u7A7A\u95F4\u89E3\u5377\u79EF",
15263
15459
  "spatial deconvolution",
15264
15460
  "\u914D\u4F53\u53D7\u4F53\u5206\u6790",
15265
15461
  "\u7A7A\u95F4\u57FA\u56E0\u8868\u8FBE",
15266
- "stereo-seq",
15267
- // natural-language synonyms
15462
+ "\u7A7A\u95F4\u805A\u7C7B",
15463
+ "\u7A7A\u95F4\u53D8\u5F02\u57FA\u56E0",
15464
+ "spatially variable genes",
15465
+ "\u7A7A\u95F4\u81EA\u76F8\u5173",
15466
+ "moran\u6307\u6570",
15467
+ // deconvolution tools
15468
+ "rctd",
15469
+ "spotlight",
15470
+ "cell2location",
15471
+ "stereoscope",
15472
+ // cell communication spatial
15473
+ "\u7A7A\u95F4\u914D\u4F53\u53D7\u4F53",
15474
+ "\u7A7A\u95F4\u7EC6\u80DE\u901A\u8BAF",
15475
+ "\u7A7A\u95F4\u4E92\u4F5C",
15476
+ // natural-language
15268
15477
  "\u7A7A\u95F4\u7EC4\u5B66",
15269
15478
  "\u7EC4\u7EC7\u5207\u7247\u6D4B\u5E8F",
15270
15479
  "\u7A7A\u95F4\u5206\u8FA8\u7387\u8F6C\u5F55\u7EC4",
15271
15480
  "\u7EC6\u80DE\u7A7A\u95F4\u5206\u5E03",
15272
- "\u7A7A\u95F4\u5355\u7EC6\u80DE"
15481
+ "\u7A7A\u95F4\u5355\u7EC6\u80DE",
15482
+ "\u7EC4\u7EC7\u7A7A\u95F4\u56FE\u8C31",
15483
+ "\u7EC6\u80DE\u5728\u7EC4\u7EC7\u4E2D\u7684\u4F4D\u7F6E",
15484
+ "\u7A7A\u95F4\u8868\u8FBE\u6A21\u5F0F"
15273
15485
  ]
15274
15486
  },
15275
15487
  {
@@ -15278,17 +15490,38 @@ var SKILL_ROUTES = [
15278
15490
  category: "\u8F6C\u5F55\u7EC4",
15279
15491
  tag: "builtin",
15280
15492
  keywords: [
15493
+ // tool/method
15281
15494
  "wgcna",
15282
15495
  "\u5171\u8868\u8FBE\u7F51\u7EDC",
15283
15496
  "coexpression network",
15284
15497
  "\u57FA\u56E0\u5171\u8868\u8FBE\u6A21\u5757",
15285
15498
  "weighted gene coexpression",
15286
15499
  "\u4E0E\u8868\u578B\u76F8\u5173\u7684\u57FA\u56E0\u6A21\u5757",
15287
- // natural-language synonyms
15500
+ "blockwisemoduless",
15501
+ "\u8F6F\u9608\u503C",
15502
+ "\u6A21\u5757\u989C\u8272",
15503
+ "\u67A2\u7EBD\u57FA\u56E0",
15504
+ "hub gene",
15505
+ // module-trait
15506
+ "\u6A21\u5757\u6027\u72B6\u5173\u8054",
15507
+ "\u6A21\u5757\u4E0E\u4E34\u5E8A\u7279\u5F81",
15508
+ "\u7279\u5F81\u57FA\u56E0\u76F8\u5173\u6027",
15509
+ "\u6A21\u5757\u7279\u5F81\u503C",
15510
+ "module eigengene",
15511
+ // applications
15512
+ "\u514D\u75AB\u6D78\u6DA6\u4E0E\u6A21\u5757",
15513
+ "\u514D\u75AB\u76F8\u5173\u6A21\u5757",
15514
+ "\u9884\u540E\u76F8\u5173\u57FA\u56E0\u6A21\u5757",
15515
+ "\u4EE3\u8C22\u76F8\u5173\u5171\u8868\u8FBE",
15516
+ "\u5171\u8868\u8FBE\u4E0E\u836F\u7269",
15517
+ // natural-language
15288
15518
  "\u57FA\u56E0\u6A21\u5757",
15289
15519
  "\u5171\u8868\u8FBE",
15290
15520
  "\u57FA\u56E0\u7F51\u7EDC",
15291
- "\u57FA\u56E0\u76F8\u5173\u6027\u7F51\u7EDC"
15521
+ "\u57FA\u56E0\u76F8\u5173\u6027\u7F51\u7EDC",
15522
+ "\u54EA\u4E9B\u57FA\u56E0\u4E00\u8D77\u53D8\u5316",
15523
+ "\u57FA\u56E0\u8C03\u63A7\u6A21\u5757",
15524
+ "\u6838\u5FC3\u57FA\u56E0\u7F51\u7EDC"
15292
15525
  ]
15293
15526
  },
15294
15527
  {
@@ -15297,11 +15530,16 @@ var SKILL_ROUTES = [
15297
15530
  category: "\u8F6C\u5F55\u7EC4",
15298
15531
  tag: "builtin",
15299
15532
  keywords: [
15533
+ // databases
15300
15534
  "\u5BCC\u96C6\u5206\u6790",
15301
15535
  "go\u5206\u6790",
15302
15536
  "kegg\u5206\u6790",
15303
15537
  "gsea",
15304
15538
  "\u901A\u8DEF\u5206\u6790",
15539
+ "reactome",
15540
+ "wikipathways",
15541
+ "disgenet",
15542
+ "msigdb",
15305
15543
  "pathway enrichment",
15306
15544
  "\u57FA\u56E0\u672C\u4F53",
15307
15545
  "gene ontology",
@@ -15309,18 +15547,60 @@ var SKILL_ROUTES = [
15309
15547
  "\u529F\u80FD\u5BCC\u96C6",
15310
15548
  "deg\u5BCC\u96C6",
15311
15549
  "\u5DEE\u5F02\u57FA\u56E0\u901A\u8DEF",
15312
- // natural-language synonyms
15550
+ // analysis types
15551
+ "go\u5BCC\u96C6",
15552
+ "\u901A\u8DEF\u5BCC\u96C6",
15553
+ "\u57FA\u56E0\u96C6\u5206\u6790",
15554
+ "ora\u5206\u6790",
15555
+ "gsea\u5206\u6790",
15556
+ "ssgsea",
15557
+ "gsva",
15558
+ "\u57FA\u56E0\u96C6\u53D8\u5F02\u5206\u6790",
15559
+ // specific pathways
15560
+ "wnt\u901A\u8DEF",
15561
+ "notch\u901A\u8DEF",
15562
+ "hedgehog\u901A\u8DEF",
15563
+ "mtor\u901A\u8DEF",
15564
+ "jak-stat\u901A\u8DEF",
15565
+ "nf-kb\u901A\u8DEF",
15566
+ "tgf-beta\u901A\u8DEF",
15567
+ "erk\u901A\u8DEF",
15568
+ "mapk\u901A\u8DEF",
15569
+ "pi3k\u901A\u8DEF",
15570
+ "akt\u4FE1\u53F7",
15571
+ "p53\u901A\u8DEF",
15572
+ "hippo\u901A\u8DEF",
15573
+ "vegf\u901A\u8DEF",
15574
+ "egfr\u4FE1\u53F7\u901A\u8DEF",
15575
+ // mutation → pathway
15576
+ "\u7A81\u53D8\u901A\u8DEF",
15577
+ "\u7A81\u53D8\u5F71\u54CD\u901A\u8DEF",
15578
+ "\u7A81\u53D8\u4E0B\u6E38\u901A\u8DEF",
15579
+ "\u6851\u57FA\u56FE\u901A\u8DEF",
15580
+ "kras\u901A\u8DEF",
15581
+ "ras-raf-mek\u901A\u8DEF",
15582
+ "\u9A71\u52A8\u57FA\u56E0\u901A\u8DEF",
15583
+ // cancer pathway contexts
15584
+ "\u80BA\u764C\u901A\u8DEF",
15585
+ "\u4E73\u817A\u764C\u4FE1\u53F7\u901A\u8DEF",
15586
+ "\u809D\u764C\u901A\u8DEF\u5206\u6790",
15587
+ "\u514D\u75AB\u901A\u8DEF",
15588
+ "\u708E\u75C7\u901A\u8DEF",
15589
+ "\u7EC6\u80DE\u5468\u671F\u901A\u8DEF",
15590
+ "\u51CB\u4EA1\u901A\u8DEF",
15591
+ "\u4EE3\u8C22\u901A\u8DEF",
15592
+ "\u7CD6\u9175\u89E3\u901A\u8DEF",
15593
+ "\u6C27\u5316\u78F7\u9178\u5316",
15594
+ // natural-language
15313
15595
  "\u8FD9\u4E9B\u57FA\u56E0\u53C2\u4E0E\u4EC0\u4E48\u901A\u8DEF",
15314
15596
  "\u57FA\u56E0\u529F\u80FD\u6CE8\u91CA",
15315
15597
  "\u4FE1\u53F7\u901A\u8DEF",
15316
15598
  "\u751F\u7269\u5B66\u8FC7\u7A0B",
15317
15599
  "\u5206\u5B50\u529F\u80FD",
15318
15600
  "\u7EC6\u80DE\u7EC4\u5206",
15319
- "go\u5BCC\u96C6",
15320
- "\u901A\u8DEF\u5BCC\u96C6",
15321
- "\u57FA\u56E0\u96C6\u5206\u6790",
15322
- "ora\u5206\u6790",
15323
- "gsea\u5206\u6790"
15601
+ "\u4FE1\u53F7\u901A\u8DEF\u5BCC\u96C6",
15602
+ "\u57FA\u56E0\u529F\u80FD\u662F\u4EC0\u4E48",
15603
+ "\u54EA\u4E9B\u901A\u8DEF\u88AB\u6FC0\u6D3B"
15324
15604
  ]
15325
15605
  },
15326
15606
  {
@@ -15329,6 +15609,7 @@ var SKILL_ROUTES = [
15329
15609
  category: "\u5355\u7EC6\u80DE",
15330
15610
  tag: "builtin",
15331
15611
  keywords: [
15612
+ // tools
15332
15613
  "pyscenic",
15333
15614
  "scenic",
15334
15615
  "\u57FA\u56E0\u8C03\u63A7\u7F51\u7EDC",
@@ -15336,11 +15617,22 @@ var SKILL_ROUTES = [
15336
15617
  "\u8F6C\u5F55\u56E0\u5B50\u8C03\u63A7\u5B50",
15337
15618
  "tf regulon",
15338
15619
  "grn\u63A8\u65AD",
15339
- // natural-language synonyms
15620
+ "aucell",
15621
+ "aucell\u8BC4\u5206",
15622
+ "\u8C03\u63A7\u5B50\u6D3B\u6027",
15623
+ // TF analysis
15340
15624
  "\u8F6C\u5F55\u56E0\u5B50\u5206\u6790",
15341
15625
  "\u8F6C\u5F55\u56E0\u5B50\u9776\u57FA\u56E0",
15342
15626
  "tf\u6D3B\u6027",
15343
- "\u8C03\u63A7\u7F51\u7EDC\u63A8\u65AD"
15627
+ "\u8C03\u63A7\u7F51\u7EDC\u63A8\u65AD",
15628
+ "\u5355\u7EC6\u80DE\u8F6C\u5F55\u56E0\u5B50",
15629
+ "\u7EC6\u80DE\u7C7B\u578B\u8F6C\u5F55\u56E0\u5B50",
15630
+ // applications
15631
+ "\u80BF\u7624\u8F6C\u5F55\u56E0\u5B50",
15632
+ "\u53D1\u80B2\u8F68\u8FF9tf",
15633
+ "\u514D\u75AB\u7EC6\u80DE\u8F6C\u5F55\u56E0\u5B50",
15634
+ "\u5E72\u7EC6\u80DE\u8F6C\u5F55\u56E0\u5B50\u8C03\u63A7",
15635
+ "\u5206\u5316\u76F8\u5173\u8F6C\u5F55\u56E0\u5B50"
15344
15636
  ]
15345
15637
  },
15346
15638
  // ── Genomics ──────────────────────────────────────────────────────────────────
@@ -15350,6 +15642,7 @@ var SKILL_ROUTES = [
15350
15642
  category: "\u57FA\u56E0\u7EC4",
15351
15643
  tag: "builtin",
15352
15644
  keywords: [
15645
+ // tools
15353
15646
  "\u53D8\u5F02\u6CE8\u91CA",
15354
15647
  "variant annotation",
15355
15648
  "vcf\u6CE8\u91CA",
@@ -15360,13 +15653,116 @@ var SKILL_ROUTES = [
15360
15653
  "\u53D8\u5F02\u81F4\u75C5\u6027\u9884\u6D4B",
15361
15654
  "\u53D8\u5F02\u529F\u80FD\u9884\u6D4B",
15362
15655
  "clinvar\u6CE8\u91CA",
15656
+ "snpeff",
15657
+ "oncokb\u6CE8\u91CA",
15658
+ "civic\u6570\u636E\u5E93",
15659
+ // variant types
15660
+ "\u4F53\u7EC6\u80DE\u7A81\u53D8",
15661
+ "\u80DA\u7CFB\u53D8\u5F02",
15662
+ "germline variant",
15663
+ "somatic mutation",
15664
+ "\u62F7\u8D1D\u6570\u53D8\u5F02",
15665
+ "cnv\u5206\u6790",
15666
+ "\u57FA\u56E0\u878D\u5408",
15667
+ "fusion gene",
15668
+ "\u57FA\u56E0\u91CD\u6392",
15669
+ "\u526A\u63A5\u53D8\u5F02",
15670
+ "splicing variant",
15671
+ "\u79FB\u7801\u7A81\u53D8",
15672
+ "frameshift",
15673
+ "\u65E0\u4E49\u7A81\u53D8",
15674
+ "nonsense mutation",
15675
+ "\u9519\u4E49\u7A81\u53D8",
15676
+ "missense",
15677
+ "\u540C\u4E49\u7A81\u53D8",
15678
+ "synonymous",
15679
+ "\u542F\u52A8\u5B50\u53D8\u5F02",
15680
+ // clinical classification
15681
+ "\u81F4\u75C5\u6027\u5206\u7C7B",
15682
+ "acmg\u5206\u7C7B",
15683
+ "\u53D8\u5F02\u4E34\u5E8A\u610F\u4E49",
15684
+ "\u53D8\u5F02\u89E3\u8BFB",
15685
+ "\u826F\u6027\u53D8\u5F02",
15686
+ "\u81F4\u75C5\u53D8\u5F02",
15687
+ "\u610F\u4E49\u4E0D\u660E\u53D8\u5F02",
15688
+ "vus",
15689
+ // population genetics
15690
+ "\u4EBA\u7FA4\u9891\u7387",
15691
+ "gnomad",
15692
+ "\u5343\u4EBA\u57FA\u56E0\u7EC4",
15693
+ "\u7B49\u4F4D\u57FA\u56E0\u9891\u7387",
15694
+ "maf",
15695
+ "hapmap",
15696
+ "\u8FDE\u9501\u4E0D\u5E73\u8861",
15697
+ "ld",
15698
+ "linkage disequilibrium",
15363
15699
  // natural-language synonyms
15364
15700
  "\u7A81\u53D8\u6CE8\u91CA",
15365
15701
  "\u53D8\u5F02\u89E3\u8BFB",
15366
15702
  "vcf\u6587\u4EF6\u5206\u6790",
15367
15703
  "\u9057\u4F20\u53D8\u5F02\u89E3\u6790",
15368
15704
  "\u81F4\u75C5\u6027\u8BC4\u4F30",
15369
- "\u53D8\u5F02\u5F71\u54CD\u9884\u6D4B"
15705
+ "\u53D8\u5F02\u5F71\u54CD\u9884\u6D4B",
15706
+ // oncology mutations
15707
+ "kras\u7A81\u53D8",
15708
+ "kras g12c",
15709
+ "kras g12d",
15710
+ "kras g12v",
15711
+ "kras mutation",
15712
+ "egfr\u7A81\u53D8",
15713
+ "egfr l858r",
15714
+ "egfr\u5916\u663E\u5B5019",
15715
+ "egfr t790m",
15716
+ "alk\u878D\u5408",
15717
+ "alk\u91CD\u6392",
15718
+ "braf v600e",
15719
+ "braf\u7A81\u53D8",
15720
+ "tp53\u7A81\u53D8",
15721
+ "tp53",
15722
+ "pik3ca\u7A81\u53D8",
15723
+ "pten\u7F3A\u5931",
15724
+ "brca1\u7A81\u53D8",
15725
+ "brca2\u7A81\u53D8",
15726
+ "brca",
15727
+ "her2\u6269\u589E",
15728
+ "her2\u7A81\u53D8",
15729
+ "cdkn2a\u7F3A\u5931",
15730
+ "met\u6269\u589E",
15731
+ "met\u5916\u663E\u5B5014",
15732
+ "ret\u878D\u5408",
15733
+ "ros1\u878D\u5408",
15734
+ "ntrk\u878D\u5408",
15735
+ "pd-l1",
15736
+ // cancer contexts
15737
+ "nsclc\u7A81\u53D8",
15738
+ "\u80BA\u764C\u7A81\u53D8",
15739
+ "\u975E\u5C0F\u7EC6\u80DE\u80BA\u764C\u7A81\u53D8",
15740
+ "\u80BA\u817A\u764C\u7A81\u53D8",
15741
+ "\u80BF\u7624\u4F53\u7EC6\u80DE\u7A81\u53D8",
15742
+ "\u9A71\u52A8\u57FA\u56E0\u7A81\u53D8",
15743
+ "\u764C\u75C7\u9A71\u52A8\u7A81\u53D8",
15744
+ "\u4E73\u817A\u764C\u7A81\u53D8",
15745
+ "\u7ED3\u76F4\u80A0\u764C\u7A81\u53D8",
15746
+ "\u9ED1\u8272\u7D20\u7624\u7A81\u53D8",
15747
+ "\u80C3\u764C\u7A81\u53D8",
15748
+ "\u809D\u764C\u7A81\u53D8",
15749
+ "\u5375\u5DE2\u764C\u7A81\u53D8",
15750
+ "\u524D\u5217\u817A\u764C\u7A81\u53D8",
15751
+ "\u80F0\u817A\u764C\u7A81\u53D8",
15752
+ // mutation landscape
15753
+ "\u7A81\u53D8\u9891\u7387",
15754
+ "\u8DE8\u764C\u79CD\u7A81\u53D8",
15755
+ "\u7A81\u53D8\u70ED\u56FE",
15756
+ "\u7A81\u53D8\u666F\u89C2\u56FE",
15757
+ "\u7011\u5E03\u56FE\u7A81\u53D8",
15758
+ "mutation landscape",
15759
+ "oncoprint",
15760
+ "\u80BF\u7624\u7A81\u53D8\u8D1F\u8377",
15761
+ "tmb",
15762
+ "\u5FAE\u536B\u661F\u4E0D\u7A33\u5B9A",
15763
+ "msi",
15764
+ "\u540C\u6E90\u91CD\u7EC4\u7F3A\u9677",
15765
+ "hrd"
15370
15766
  ]
15371
15767
  },
15372
15768
  {
@@ -15375,6 +15771,7 @@ var SKILL_ROUTES = [
15375
15771
  category: "\u57FA\u56E0\u7EC4",
15376
15772
  tag: "builtin",
15377
15773
  keywords: [
15774
+ // methods
15378
15775
  "gwas\u5206\u6790",
15379
15776
  "twas",
15380
15777
  "predixcan",
@@ -15383,13 +15780,49 @@ var SKILL_ROUTES = [
15383
15780
  "genome-wide association",
15384
15781
  "\u56E0\u679C\u57FA\u56E0\u9274\u5B9A",
15385
15782
  "qtl\u6574\u5408",
15386
- // natural-language synonyms
15783
+ "eqtl",
15784
+ "sqtl",
15785
+ "\u8868\u8FBE\u6570\u91CF\u6027\u72B6\u4F4D\u70B9",
15786
+ "coloc",
15787
+ "colocalization",
15788
+ "ld score regression",
15789
+ "ldsc",
15790
+ "\u9057\u4F20\u529B\u5206\u6790",
15791
+ "heritability",
15792
+ "fine mapping",
15793
+ "\u7CBE\u7EC6\u5B9A\u4F4D",
15794
+ "credible set",
15795
+ "susie",
15796
+ // application areas
15797
+ "\u81EA\u8EAB\u514D\u75ABgwas",
15798
+ "\u7C7B\u98CE\u6E7F\u5173\u8282\u708Egwas",
15799
+ "\u7CFB\u7EDF\u6027\u7EA2\u6591\u72FC\u75AEgwas",
15800
+ "\u7CD6\u5C3F\u75C5gwas",
15801
+ "2\u578B\u7CD6\u5C3F\u75C5\u9057\u4F20\u4F4D\u70B9",
15802
+ "\u80A5\u80D6gwas",
15803
+ "bmi\u9057\u4F20",
15804
+ "\u5FC3\u8840\u7BA1\u75BE\u75C5gwas",
15805
+ "\u51A0\u5FC3\u75C5\u9057\u4F20\u53D8\u5F02",
15806
+ "\u8840\u538Bgwas",
15807
+ "\u795E\u7ECF\u7CFB\u7EDFgwas",
15808
+ "\u963F\u5C14\u8328\u6D77\u9ED8\u75C5gwas",
15809
+ "\u7CBE\u795E\u5206\u88C2\u75C7gwas",
15810
+ "\u708E\u75C7\u6027\u80A0\u75C5gwas",
15811
+ "\u514B\u7F57\u6069\u75C5\u9057\u4F20",
15812
+ "\u6E83\u75A1\u6027\u7ED3\u80A0\u708Egwas",
15813
+ "\u80BF\u7624\u6613\u611F\u6027gwas",
15814
+ "\u4E73\u817A\u764C\u6613\u611F\u4F4D\u70B9",
15815
+ "\u524D\u5217\u817A\u764Cgwas",
15816
+ // natural-language
15387
15817
  "gwas\u7ED3\u679C\u89E3\u8BFB",
15388
15818
  "gwas\u529F\u80FD\u6CE8\u91CA",
15389
15819
  "\u5173\u8054\u4F4D\u70B9\u57FA\u56E0",
15390
15820
  "snp\u529F\u80FD",
15391
15821
  "gwas\u4FE1\u53F7",
15392
- "\u9057\u4F20\u5173\u8054\u5206\u6790"
15822
+ "\u9057\u4F20\u5173\u8054\u5206\u6790",
15823
+ "snp\u4E0E\u75BE\u75C5",
15824
+ "\u9057\u4F20\u53D8\u5F02\u4E0E\u8868\u578B",
15825
+ "\u529F\u80FD\u6027snp\u9274\u5B9A"
15393
15826
  ]
15394
15827
  },
15395
15828
  {
@@ -15398,6 +15831,7 @@ var SKILL_ROUTES = [
15398
15831
  category: "\u7EDF\u8BA1",
15399
15832
  tag: "builtin",
15400
15833
  keywords: [
15834
+ // methods
15401
15835
  "\u5B5F\u5FB7\u5C14\u968F\u673A\u5316",
15402
15836
  "mendelian randomization",
15403
15837
  "twosamplemr",
@@ -15406,11 +15840,47 @@ var SKILL_ROUTES = [
15406
15840
  "mr-egger",
15407
15841
  "\u53CC\u6837\u672Cmr",
15408
15842
  "\u5DE5\u5177\u53D8\u91CFiv",
15409
- // natural-language synonyms
15843
+ "weighted median",
15844
+ "mr-presso",
15845
+ "steiger\u8FC7\u6EE4",
15846
+ "\u53CC\u5411\u5B5F\u5FB7\u5C14\u968F\u673A\u5316",
15847
+ "bidirectional mr",
15848
+ "\u591A\u53D8\u91CFmr",
15849
+ // exposures
15850
+ "bmi\u4E0E\u75BE\u75C5",
15851
+ "\u8840\u8102\u4E0E\u75BE\u75C5",
15852
+ "\u708E\u75C7\u56E0\u5B50\u56E0\u679C",
15853
+ "\u4EE3\u8C22\u7269mr",
15854
+ "\u80A0\u9053\u83CC\u7FA4mr",
15855
+ "\u5438\u70DF\u4E0E\u75BE\u75C5",
15856
+ "\u9152\u7CBE\u4E0E\u75BE\u75C5",
15857
+ "\u6559\u80B2\u7A0B\u5EA6\u56E0\u679C",
15858
+ "\u7761\u7720\u65F6\u957Fmr",
15859
+ "\u4F53\u529B\u6D3B\u52A8mr",
15860
+ "il-6\u56E0\u679C",
15861
+ "crp\u4E0E\u75BE\u75C5",
15862
+ "\u80C6\u56FA\u9187\u56E0\u679C",
15863
+ // outcomes
15864
+ "\u51A0\u5FC3\u75C5\u56E0\u679C",
15865
+ "\u5FC3\u8840\u7BA1\u75BE\u75C5mr",
15866
+ "2\u578B\u7CD6\u5C3F\u75C5mr",
15867
+ "\u764C\u75C7\u98CE\u9669\u56E0\u679C",
15868
+ "\u4E73\u817A\u764C\u98CE\u9669mr",
15869
+ "\u524D\u5217\u817A\u764Cmr",
15870
+ "\u963F\u5C14\u8328\u6D77\u9ED8\u75C5\u56E0\u679C",
15871
+ "\u5E15\u91D1\u68EE\u75C5mr",
15872
+ "\u6291\u90C1\u75C7\u56E0\u679C",
15873
+ "\u4E2D\u98CEmr",
15874
+ "\u9AD8\u8840\u538B\u56E0\u679C",
15875
+ "\u6162\u6027\u80BE\u75C5mr",
15876
+ // natural-language
15410
15877
  "\u56E0\u679C\u63A8\u65AD",
15411
15878
  "\u66B4\u9732\u4E0E\u7ED3\u5C40",
15412
15879
  "\u9057\u4F20\u5DE5\u5177\u53D8\u91CF",
15413
- "mr\u5206\u6790"
15880
+ "mr\u5206\u6790",
15881
+ "\u67D0\u56E0\u7D20\u662F\u5426\u5BFC\u81F4\u67D0\u75BE\u75C5",
15882
+ "\u56E0\u679C\u5173\u7CFB\u9A8C\u8BC1",
15883
+ "iv\u5206\u6790"
15414
15884
  ]
15415
15885
  },
15416
15886
  {
@@ -15419,16 +15889,39 @@ var SKILL_ROUTES = [
15419
15889
  category: "\u57FA\u56E0\u7EC4",
15420
15890
  tag: "builtin",
15421
15891
  keywords: [
15892
+ // methods
15422
15893
  "prs\u8BC4\u5206",
15423
15894
  "polygenic risk score",
15424
15895
  "\u591A\u57FA\u56E0\u98CE\u9669\u8BC4\u5206",
15425
15896
  "prs-cs",
15426
15897
  "\u9057\u4F20\u98CE\u9669\u9884\u6D4B",
15427
15898
  "prs\u8BA1\u7B97",
15428
- // natural-language synonyms
15899
+ "prsice",
15900
+ "ldpred",
15901
+ "prscsx",
15902
+ "clumping and thresholding",
15903
+ // applications
15904
+ "\u75BE\u75C5\u98CE\u9669\u9884\u6D4B",
15905
+ "\u9AD8\u98CE\u9669\u4E2A\u4F53\u8BC6\u522B",
15906
+ "\u4EBA\u7FA4\u9057\u4F20\u5206\u5C42",
15907
+ "\u4E73\u817A\u764Cprs",
15908
+ "\u524D\u5217\u817A\u764Cprs",
15909
+ "\u7ED3\u76F4\u80A0\u764Cprs",
15910
+ "\u5FC3\u8840\u7BA1prs",
15911
+ "\u51A0\u5FC3\u75C5\u9057\u4F20\u98CE\u9669",
15912
+ "\u8840\u538Bprs",
15913
+ "2\u578B\u7CD6\u5C3F\u75C5prs",
15914
+ "\u963F\u5C14\u8328\u6D77\u9ED8\u75C5\u9057\u4F20\u98CE\u9669",
15915
+ "\u7CBE\u795E\u75BE\u75C5prs",
15916
+ "\u7CBE\u795E\u5206\u88C2\u75C7prs",
15917
+ "\u53CC\u76F8\u60C5\u611F\u969C\u788Dprs",
15918
+ // natural-language
15429
15919
  "\u9057\u4F20\u98CE\u9669\u8BC4\u5206",
15430
15920
  "\u591A\u57FA\u56E0\u8BC4\u5206",
15431
- "\u75BE\u75C5\u9057\u4F20\u98CE\u9669"
15921
+ "\u75BE\u75C5\u9057\u4F20\u98CE\u9669",
15922
+ "\u4E2A\u4F53\u9057\u4F20\u98CE\u9669",
15923
+ "\u57FA\u56E0\u7EC4\u98CE\u9669\u9884\u6D4B",
15924
+ "\u9057\u4F20\u6613\u611F\u6027\u8BC4\u5206"
15432
15925
  ]
15433
15926
  },
15434
15927
  {
@@ -15437,6 +15930,7 @@ var SKILL_ROUTES = [
15437
15930
  category: "\u57FA\u56E0\u7EC4",
15438
15931
  tag: "builtin",
15439
15932
  keywords: [
15933
+ // tools
15440
15934
  "crispr\u6587\u5E93\u7B5B\u9009",
15441
15935
  "crispr screen",
15442
15936
  "mageck",
@@ -15444,12 +15938,31 @@ var SKILL_ROUTES = [
15444
15938
  "sgrna\u7B5B\u9009",
15445
15939
  "pooled crispr",
15446
15940
  "crispr hit\u8BC6\u522B",
15447
- // natural-language synonyms
15941
+ // library types
15942
+ "crispr\u5168\u57FA\u56E0\u7EC4\u6587\u5E93",
15943
+ "crispri\u6587\u5E93",
15944
+ "crispra\u6587\u5E93",
15945
+ "genome-wide crispr",
15946
+ "crispr\u6572\u9664\u6587\u5E93",
15947
+ // analysis types
15948
+ "\u5FC5\u9700\u57FA\u56E0\u7B5B\u9009",
15949
+ "\u81F4\u6B7B\u57FA\u56E0",
15950
+ "\u5408\u6210\u81F4\u6B7B",
15951
+ "synthetic lethal",
15448
15952
  "crispr\u7B5B\u9009",
15449
15953
  "\u529F\u80FD\u57FA\u56E0\u7EC4\u7B5B\u9009",
15450
- "\u5FC5\u9700\u57FA\u56E0\u7B5B\u9009",
15954
+ // applications
15955
+ "\u80BF\u7624\u8010\u836Fcrispr",
15956
+ "\u514D\u75AB\u6CBB\u7597crispr\u7B5B\u9009",
15957
+ "\u8010\u836F\u673A\u5236crispr",
15958
+ "\u764C\u75C7\u5FC5\u9700\u57FA\u56E0",
15959
+ "\u80BF\u7624\u8106\u5F31\u6027\u57FA\u56E0",
15960
+ "crispr\u529F\u80FD\u57FA\u56E0\u7EC4",
15961
+ // natural-language
15451
15962
  "crispr\u6572\u9664\u7B5B\u9009",
15452
- "crispr\u6587\u5E93"
15963
+ "crispr\u6587\u5E93",
15964
+ "\u9AD8\u901A\u91CFcrispr",
15965
+ "\u57FA\u56E0\u5FC5\u9700\u6027"
15453
15966
  ]
15454
15967
  },
15455
15968
  // ── Epigenomics ───────────────────────────────────────────────────────────────
@@ -15459,17 +15972,53 @@ var SKILL_ROUTES = [
15459
15972
  category: "\u8868\u89C2\u57FA\u56E0\u7EC4",
15460
15973
  tag: "builtin",
15461
15974
  keywords: [
15975
+ // tools/databases
15462
15976
  "chip-atlas",
15463
15977
  "chip-seq\u5CF0\u503C\u5BCC\u96C6",
15464
15978
  "peak enrichment chip",
15465
15979
  "chip atlas\u6570\u636E\u5E93",
15466
15980
  "histone chip\u5206\u6790",
15467
- // natural-language synonyms
15981
+ // histone marks
15982
+ "h3k27ac",
15983
+ "h3k4me3",
15984
+ "h3k4me1",
15985
+ "h3k27me3",
15986
+ "h3k9me3",
15987
+ "h3k36me3",
15988
+ "h3k9ac",
15989
+ "h4k16ac",
15990
+ "\u7EC4\u86CB\u767D\u4FEE\u9970",
15991
+ "\u6D3B\u6027\u589E\u5F3A\u5B50\u6807\u8BB0",
15992
+ // regulatory elements
15993
+ "\u589E\u5F3A\u5B50\u5206\u6790",
15994
+ "\u542F\u52A8\u5B50\u6D3B\u6027",
15995
+ "\u8D85\u7EA7\u589E\u5F3A\u5B50",
15996
+ "super enhancer",
15997
+ "\u5F00\u653E\u67D3\u8272\u8D28",
15998
+ "atac-seq",
15999
+ "atac\u5206\u6790",
16000
+ "dnase-seq",
16001
+ "ctcf\u7ED3\u5408",
16002
+ "cohesin",
16003
+ "\u62D3\u6251\u57DF",
16004
+ "tad",
16005
+ // TF binding
16006
+ "\u8F6C\u5F55\u56E0\u5B50\u7ED3\u5408chip",
16007
+ "tf\u7ED3\u5408\u4F4D\u70B9",
16008
+ "chip-seq\u5206\u6790",
16009
+ // cancer epigenome
16010
+ "\u80BF\u7624\u8868\u89C2\u57FA\u56E0\u7EC4",
16011
+ "\u764C\u75C7\u7EC4\u86CB\u767D\u4FEE\u9970",
16012
+ "\u80BF\u7624\u589E\u5F3A\u5B50",
16013
+ "\u8868\u89C2\u9057\u4F20\u4FEE\u9970",
16014
+ "\u8868\u89C2\u57FA\u56E0\u7EC4\u6539\u53D8",
16015
+ // natural-language
15468
16016
  "chip-seq\u5206\u6790",
15469
16017
  "chip\u6570\u636E",
15470
- "\u7EC4\u86CB\u767D\u4FEE\u9970",
15471
- "h3k27ac",
15472
- "h3k4me3"
16018
+ "\u7EC4\u86CB\u767D\u4FEE\u9970\u8C31",
16019
+ "\u54EA\u4E9B\u533A\u57DF\u6709h3k27ac",
16020
+ "\u589E\u5F3A\u5B50\u6FC0\u6D3B",
16021
+ "chip-seq\u5CF0"
15473
16022
  ]
15474
16023
  },
15475
16024
  {
@@ -15478,15 +16027,27 @@ var SKILL_ROUTES = [
15478
16027
  category: "\u8868\u89C2\u57FA\u56E0\u7EC4",
15479
16028
  tag: "builtin",
15480
16029
  keywords: [
16030
+ // tools
15481
16031
  "chip\u5DEE\u5F02\u5206\u6790",
15482
16032
  "differential binding",
15483
16033
  "\u5DEE\u5F02chip-seq",
15484
16034
  "differential peak",
15485
16035
  "chip-seq\u6761\u4EF6\u6BD4\u8F83",
15486
- // natural-language synonyms
16036
+ "diffbind",
16037
+ "chipseeker\u5DEE\u5F02",
16038
+ // comparison contexts
16039
+ "\u836F\u7269\u5904\u7406chip\u5DEE\u5F02",
16040
+ "\u5904\u7406\u524D\u540Echip-seq",
16041
+ "\u7EC6\u80DE\u5206\u5316chip",
16042
+ "\u75BE\u75C5vs\u6B63\u5E38chip",
16043
+ "\u80BF\u7624vs\u6B63\u5E38chip-seq",
16044
+ // natural-language
15487
16045
  "\u5DEE\u5F02\u5CF0",
15488
16046
  "\u5DEE\u5F02\u7ED3\u5408\u4F4D\u70B9",
15489
- "chip-seq\u5DEE\u5F02"
16047
+ "chip-seq\u5DEE\u5F02",
16048
+ "\u54EA\u4E9B\u4F4D\u70B9\u7ED3\u5408\u53D1\u751F\u53D8\u5316",
16049
+ "\u5DEE\u5F02\u7EC4\u86CB\u767D\u4FEE\u9970",
16050
+ "\u6FC0\u6D3Bvs\u6291\u5236\u7684\u589E\u5F3A\u5B50"
15490
16051
  ]
15491
16052
  },
15492
16053
  {
@@ -15495,16 +16056,34 @@ var SKILL_ROUTES = [
15495
16056
  category: "\u8868\u89C2\u57FA\u56E0\u7EC4",
15496
16057
  tag: "builtin",
15497
16058
  keywords: [
16059
+ // tools
15498
16060
  "chip\u9776\u57FA\u56E0",
15499
16061
  "chip target gene",
15500
16062
  "\u8F6C\u5F55\u56E0\u5B50\u9776\u57FA\u56E0chip",
15501
16063
  "tf\u9776\u57FA\u56E0",
15502
16064
  "peak annotation\u9776\u57FA\u56E0",
15503
16065
  "chip-seq peak\u6CE8\u91CA",
15504
- // natural-language synonyms
16066
+ "great\u5206\u6790",
16067
+ "chipseeker",
16068
+ "annotatepeak",
16069
+ // applications
16070
+ "\u8F6C\u5F55\u56E0\u5B50\u8C03\u63A7\u9776\u57FA\u56E0",
16071
+ "\u589E\u5F3A\u5B50\u9776\u57FA\u56E0",
16072
+ "\u8D85\u7EA7\u589E\u5F3A\u5B50\u9776\u57FA\u56E0",
16073
+ "\u8C03\u63A7\u5143\u4EF6\u9776\u57FA\u56E0",
16074
+ "\u542F\u52A8\u5B50\u6CE8\u91CA",
16075
+ // specific TFs
16076
+ "myc\u9776\u57FA\u56E0",
16077
+ "p53\u9776\u57FA\u56E0",
16078
+ "nrf2\u9776\u57FA\u56E0",
16079
+ "stat3\u9776\u57FA\u56E0",
16080
+ // natural-language
15505
16081
  "peak\u6CE8\u91CA",
15506
16082
  "\u5CF0\u503C\u6CE8\u91CA",
15507
16083
  "\u8F6C\u5F55\u56E0\u5B50\u7ED3\u5408\u4F4D\u70B9",
16084
+ "\u54EA\u4E9B\u57FA\u56E0\u88AB\u8F6C\u5F55\u56E0\u5B50\u8C03\u63A7",
16085
+ "chip\u7ED3\u679C\u6CE8\u91CA\u5230\u57FA\u56E0",
16086
+ "\u5CF0\u503C\u6CE8\u91CA\u5230\u6700\u8FD1\u57FA\u56E0",
15508
16087
  "chip\u9776\u70B9"
15509
16088
  ]
15510
16089
  },
@@ -15515,16 +16094,56 @@ var SKILL_ROUTES = [
15515
16094
  category: "\u4E34\u5E8A",
15516
16095
  tag: "builtin",
15517
16096
  keywords: [
16097
+ // core terms
15518
16098
  "clinicaltrials\u5206\u6790",
15519
16099
  "clinical trial landscape",
15520
16100
  "ct.gov\u6570\u636E\u5206\u6790",
15521
16101
  "\u4E34\u5E8A\u8BD5\u9A8C\u683C\u5C40",
15522
16102
  "\u4E34\u5E8A\u7814\u7A76\u5206\u6790",
15523
- // natural-language synonyms
16103
+ // trial phases
16104
+ "\u4E00\u671F\u4E34\u5E8A",
16105
+ "\u4E8C\u671F\u4E34\u5E8A",
16106
+ "\u4E09\u671F\u4E34\u5E8A",
16107
+ "\u4E34\u5E8A\u8BD5\u9A8C\u5206\u671F",
16108
+ "phase 1",
16109
+ "phase 2",
16110
+ "phase 3",
16111
+ "phase i",
16112
+ "phase ii",
16113
+ "phase iii",
16114
+ // study types
16115
+ "\u968F\u673A\u5BF9\u7167\u8BD5\u9A8C",
16116
+ "rct",
16117
+ "\u5F00\u653E\u6807\u7B7E\u8BD5\u9A8C",
16118
+ "\u5355\u81C2\u7814\u7A76",
16119
+ // drug types
16120
+ "\u9776\u5411\u836F\u4E34\u5E8A\u8BD5\u9A8C",
16121
+ "\u514D\u75AB\u6CBB\u7597\u4E34\u5E8A\u8BD5\u9A8C",
16122
+ "\u7EC6\u80DE\u6CBB\u7597\u4E34\u5E8A\u8BD5\u9A8C",
16123
+ "car-t\u4E34\u5E8A",
16124
+ "pd-1\u4E34\u5E8A\u8BD5\u9A8C",
16125
+ "\u6297\u4F53\u836F\u4E34\u5E8A",
16126
+ "\u5C0F\u5206\u5B50\u6291\u5236\u5242\u4E34\u5E8A",
16127
+ "adc\u4E34\u5E8A\u8BD5\u9A8C",
16128
+ // disease areas
16129
+ "\u80BF\u7624\u4E34\u5E8A\u8BD5\u9A8C",
16130
+ "\u80BA\u764C\u4E34\u5E8A\u8BD5\u9A8C",
16131
+ "\u4E73\u817A\u764C\u4E34\u5E8A",
16132
+ "\u809D\u764C\u4E34\u5E8A",
16133
+ "\u81EA\u8EAB\u514D\u75AB\u4E34\u5E8A\u8BD5\u9A8C",
16134
+ "\u5FC3\u8840\u7BA1\u4E34\u5E8A\u8BD5\u9A8C",
16135
+ "\u795E\u7ECF\u75BE\u75C5\u4E34\u5E8A",
16136
+ "\u7A00\u6709\u75C5\u4E34\u5E8A",
16137
+ "\u7F55\u89C1\u75C5\u4E34\u5E8A\u8BD5\u9A8C",
16138
+ // natural-language
15524
16139
  "\u4E34\u5E8A\u8BD5\u9A8C",
15525
16140
  "\u5728\u7814\u836F\u7269",
15526
16141
  "\u4E34\u5E8A\u7BA1\u7EBF",
15527
- "\u4E34\u5E8A\u7814\u7A76\u73B0\u72B6"
16142
+ "\u4E34\u5E8A\u7814\u7A76\u73B0\u72B6",
16143
+ "\u67D0\u836F\u7269\u6709\u54EA\u4E9B\u4E34\u5E8A\u8BD5\u9A8C",
16144
+ "\u8BE5\u9002\u5E94\u75C7\u7684\u4E34\u5E8A\u683C\u5C40",
16145
+ "\u7ADE\u4E89\u683C\u5C40\u5206\u6790",
16146
+ "\u7814\u53D1\u7BA1\u7EBF"
15528
16147
  ]
15529
16148
  },
15530
16149
  {
@@ -15533,16 +16152,39 @@ var SKILL_ROUTES = [
15533
16152
  category: "\u6587\u732E",
15534
16153
  tag: "builtin",
15535
16154
  keywords: [
16155
+ // methods
15536
16156
  "\u4E34\u5E8A\u524D\u6587\u732E",
15537
16157
  "preclinical literature",
15538
16158
  "\u7CFB\u7EDF\u6587\u732E\u63D0\u53D6",
15539
16159
  "literature extraction",
15540
16160
  "\u6587\u732E\u7CFB\u7EDF\u7EFC\u5408",
15541
- // natural-language synonyms
15542
- "\u6587\u732E\u7EFC\u8FF0",
16161
+ "\u7CFB\u7EDF\u8BC4\u4EF7",
15543
16162
  "\u7CFB\u7EDF\u7EFC\u8FF0",
16163
+ "systematic review",
16164
+ "meta\u5206\u6790",
16165
+ "meta-analysis",
16166
+ "\u6587\u732E\u8BA1\u91CF",
16167
+ "bibliometric",
16168
+ // data extraction
16169
+ "\u52A8\u7269\u5B9E\u9A8C\u6570\u636E\u63D0\u53D6",
16170
+ "\u4F53\u5916\u5B9E\u9A8C\u6570\u636E\u63D0\u53D6",
16171
+ "\u7EC6\u80DE\u5B9E\u9A8C\u6587\u732E",
16172
+ "\u5C0F\u9F20\u6A21\u578B\u6587\u732E",
16173
+ "\u4E34\u5E8A\u524D\u52A8\u7269\u6570\u636E",
16174
+ // application
16175
+ "\u6587\u732E\u8BC1\u636E\u7EFC\u5408",
16176
+ "\u8BC1\u636E\u8D28\u91CF\u8BC4\u4F30",
16177
+ "prisma",
16178
+ "cochrane",
16179
+ // natural-language
16180
+ "\u6587\u732E\u7EFC\u8FF0",
15544
16181
  "\u6587\u732E\u6574\u7406",
15545
- "\u6587\u732E\u6316\u6398"
16182
+ "\u6587\u732E\u6316\u6398",
16183
+ "\u67E5\u9605\u76F8\u5173\u6587\u732E",
16184
+ "\u63D0\u53D6\u6587\u732E\u6570\u636E",
16185
+ "\u7CFB\u7EDF\u641C\u96C6\u6587\u732E",
16186
+ "\u7EFC\u5408\u5206\u6790\u73B0\u6709\u7814\u7A76",
16187
+ "\u7814\u7A76\u73B0\u72B6\u603B\u7ED3"
15546
16188
  ]
15547
16189
  },
15548
16190
  {
@@ -15551,6 +16193,7 @@ var SKILL_ROUTES = [
15551
16193
  category: "\u7EDF\u8BA1",
15552
16194
  tag: "builtin",
15553
16195
  keywords: [
16196
+ // sample size
15554
16197
  "\u6837\u672C\u91CF\u8BA1\u7B97",
15555
16198
  "\u7EDF\u8BA1\u68C0\u9A8C\u9009\u62E9",
15556
16199
  "sample size calculation",
@@ -15558,17 +16201,70 @@ var SKILL_ROUTES = [
15558
16201
  "\u968F\u673A\u5316\u8BBE\u8BA1",
15559
16202
  "\u5B9E\u9A8C\u8BBE\u8BA1\u7EDF\u8BA1",
15560
16203
  "\u5047\u8BBE\u68C0\u9A8C\u9009\u62E9",
15561
- "t\u68C0\u9A8C\u8FD8\u662F",
16204
+ // parametric tests
16205
+ "t\u68C0\u9A8C",
16206
+ "student t test",
16207
+ "\u72EC\u7ACB\u6837\u672Ct",
16208
+ "\u914D\u5BF9t\u68C0\u9A8C",
15562
16209
  "anova\u65B9\u5DEE\u5206\u6790",
15563
- // natural-language synonyms
16210
+ "\u5355\u56E0\u7D20anova",
16211
+ "\u53CC\u56E0\u7D20anova",
16212
+ "\u91CD\u590D\u6D4B\u91CFanova",
16213
+ // non-parametric tests
16214
+ "mann-whitney",
16215
+ "wilcoxon\u68C0\u9A8C",
16216
+ "kruskal-wallis",
16217
+ "friedman\u68C0\u9A8C",
16218
+ "\u79E9\u548C\u68C0\u9A8C",
16219
+ "\u975E\u53C2\u6570\u68C0\u9A8C",
16220
+ // categorical
16221
+ "fisher\u68C0\u9A8C",
16222
+ "fisher exact",
16223
+ "\u5361\u65B9\u68C0\u9A8C",
16224
+ "chi-square",
16225
+ // correlation
16226
+ "pearson\u76F8\u5173",
16227
+ "spearman\u76F8\u5173",
16228
+ "\u76F8\u5173\u7CFB\u6570",
16229
+ "\u76F8\u5173\u5206\u6790",
16230
+ // multiple testing
16231
+ "\u591A\u91CD\u68C0\u9A8C\u6821\u6B63",
16232
+ "bonferroni",
16233
+ "fdr\u6821\u6B63",
16234
+ "holm\u6821\u6B63",
16235
+ // regression
16236
+ "\u7EBF\u6027\u56DE\u5F52",
16237
+ "\u591A\u5143\u56DE\u5F52",
16238
+ "logistic\u56DE\u5F52",
16239
+ "\u591A\u53D8\u91CF\u5206\u6790",
16240
+ // diagnostic
16241
+ "roc\u66F2\u7EBF",
16242
+ "auc\u8BA1\u7B97",
16243
+ "\u8BCA\u65AD\u51C6\u786E\u6027",
16244
+ "\u7075\u654F\u5EA6\u7279\u5F02\u6027",
16245
+ "\u7EA6\u767B\u6307\u6570",
16246
+ "\u6700\u4F73\u622A\u65AD\u503C",
16247
+ // propensity score
16248
+ "\u503E\u5411\u8BC4\u5206\u5339\u914D",
16249
+ "psm",
16250
+ "\u503E\u5411\u8BC4\u5206",
16251
+ "\u6DF7\u6742\u56E0\u7D20\u63A7\u5236",
16252
+ // study design
16253
+ "\u968F\u673A\u5BF9\u7167\u8BBE\u8BA1",
16254
+ "\u4EA4\u53C9\u8BBE\u8BA1",
16255
+ "\u6790\u56E0\u8BBE\u8BA1",
16256
+ "\u533A\u7EC4\u8BBE\u8BA1",
16257
+ // natural-language
15564
16258
  "\u7528\u4EC0\u4E48\u7EDF\u8BA1\u65B9\u6CD5",
15565
16259
  "\u7EDF\u8BA1\u663E\u8457\u6027",
15566
16260
  "\u68C0\u9A8C\u65B9\u6CD5",
15567
16261
  "\u9700\u8981\u591A\u5C11\u6837\u672C",
15568
16262
  "\u529F\u6548\u5206\u6790",
15569
16263
  "\u7EDF\u8BA1\u529F\u6548",
15570
- "p\u503C",
15571
- "\u663E\u8457\u6027\u68C0\u9A8C"
16264
+ "\u663E\u8457\u6027\u68C0\u9A8C",
16265
+ "\u4E24\u7EC4\u600E\u4E48\u6BD4\u8F83",
16266
+ "\u8BE5\u7528\u4EC0\u4E48\u68C0\u9A8C",
16267
+ "\u7EDF\u8BA1\u65B9\u6CD5\u9009\u62E9"
15572
16268
  ]
15573
16269
  },
15574
16270
  {
@@ -15577,18 +16273,54 @@ var SKILL_ROUTES = [
15577
16273
  category: "\u7EDF\u8BA1",
15578
16274
  tag: "builtin",
15579
16275
  keywords: [
16276
+ // methods
15580
16277
  "lasso\u56DE\u5F52\u7B5B\u9009",
15581
16278
  "lasso\u751F\u7269\u6807\u5FD7\u7269",
15582
16279
  "biomarker panel\u7B5B\u9009",
15583
16280
  "\u6700\u5C0F\u6807\u5FD7\u7269\u9762\u677F",
15584
16281
  "feature selection lasso",
15585
16282
  "\u8BCA\u65AD\u6807\u5FD7\u7269\u7B5B\u9009",
15586
- // natural-language synonyms
16283
+ "elastic net",
16284
+ "ridge\u56DE\u5F52",
16285
+ "\u6B63\u5219\u5316\u56DE\u5F52",
16286
+ "\u968F\u673A\u68EE\u6797\u7279\u5F81\u7B5B\u9009",
16287
+ "random forest\u7279\u5F81\u91CD\u8981\u6027",
16288
+ // biomarker types
16289
+ "\u86CB\u767D\u8D28\u6807\u5FD7\u7269",
16290
+ "\u4EE3\u8C22\u6807\u5FD7\u7269",
16291
+ "mrna\u6807\u5FD7\u7269",
16292
+ "mirna\u6807\u5FD7\u7269",
16293
+ "\u591A\u7EC4\u5B66\u6807\u5FD7\u7269",
16294
+ "\u8840\u6E05\u6807\u5FD7\u7269",
16295
+ "\u8840\u6D46\u6807\u5FD7\u7269",
16296
+ "\u5C3F\u6DB2\u751F\u7269\u6807\u5FD7\u7269",
16297
+ "\u5FAA\u73AF\u6807\u5FD7\u7269",
16298
+ // applications
16299
+ "\u8BCA\u65AD\u6807\u5FD7\u7269",
16300
+ "\u9884\u540E\u6807\u5FD7\u7269",
16301
+ "\u9884\u6D4B\u6027\u6807\u5FD7\u7269",
16302
+ "\u54CD\u5E94\u9884\u6D4B\u6807\u5FD7\u7269",
16303
+ "\u65E9\u671F\u8BCA\u65AD\u6A21\u578B",
16304
+ "\u8BCA\u65ADpanel",
16305
+ "\u9884\u540E\u6A21\u578B\u6784\u5EFA",
16306
+ "\u764C\u75C7\u65E9\u7B5B\u6807\u5FD7\u7269",
16307
+ "\u6DB2\u4F53\u6D3B\u68C0\u6807\u5FD7\u7269",
16308
+ "ctdna\u6807\u5FD7\u7269",
16309
+ // performance
16310
+ "auc\u8BC4\u4F30",
16311
+ "roc\u66F2\u7EBF\u9A8C\u8BC1",
16312
+ "\u8BCA\u65AD\u6548\u80FD",
16313
+ "\u9884\u6D4B\u51C6\u786E\u6027",
16314
+ "\u4EA4\u53C9\u9A8C\u8BC1\u6A21\u578B",
16315
+ "\u5916\u90E8\u9A8C\u8BC1",
16316
+ // natural-language
15587
16317
  "\u751F\u7269\u6807\u5FD7\u7269\u7B5B\u9009",
15588
16318
  "\u6807\u5FD7\u7269\u7EC4\u5408",
15589
16319
  "\u8BCA\u65AD\u6A21\u578B",
15590
16320
  "\u9884\u6D4B\u6A21\u578B\u7279\u5F81\u7B5B\u9009",
15591
- "biomarker",
16321
+ "\u627E\u6700\u5C0F\u6709\u6548\u6807\u5FD7\u7269",
16322
+ "\u54EA\u4E9B\u6807\u5FD7\u7269\u7EC4\u5408\u6700\u597D",
16323
+ "\u7B5B\u9009\u5173\u952E\u7279\u5F81",
15592
16324
  "\u7279\u5F81\u9009\u62E9"
15593
16325
  ]
15594
16326
  },
@@ -15598,6 +16330,7 @@ var SKILL_ROUTES = [
15598
16330
  category: "\u5206\u5B50\u751F\u7269\u5B66",
15599
16331
  tag: "builtin",
15600
16332
  keywords: [
16333
+ // tools/methods
15601
16334
  "\u5F15\u7269\u8BBE\u8BA1",
15602
16335
  "primer design",
15603
16336
  "qpcr\u5F15\u7269",
@@ -15606,11 +16339,40 @@ var SKILL_ROUTES = [
15606
16339
  "qrt-pcr\u8BBE\u8BA1",
15607
16340
  "\u6269\u589E\u5B50\u8BBE\u8BA1",
15608
16341
  "\u5F15\u7269\u7279\u5F02\u6027\u9A8C\u8BC1",
15609
- // natural-language synonyms
16342
+ // qPCR specifics
16343
+ "\u5185\u53C2\u57FA\u56E0",
16344
+ "gapdh",
16345
+ "beta-actin",
16346
+ "\u5B9A\u91CFpcr",
16347
+ "\u76F8\u5BF9\u5B9A\u91CF",
16348
+ "ct\u503C",
16349
+ "\u6269\u589E\u6548\u7387",
16350
+ "\u7194\u89E3\u66F2\u7EBF",
16351
+ // applications
16352
+ "\u57FA\u56E0\u8868\u8FBE\u9A8C\u8BC1\u5F15\u7269",
16353
+ "\u57FA\u56E0\u514B\u9686\u5F15\u7269",
16354
+ "\u6D4B\u5E8F\u5F15\u7269",
16355
+ "sanger\u6D4B\u5E8F\u5F15\u7269",
16356
+ "crispr\u9A8C\u8BC1\u5F15\u7269",
16357
+ "\u6572\u9664\u9A8C\u8BC1pcr",
16358
+ "\u8FC7\u8868\u8FBE\u9A8C\u8BC1",
16359
+ "\u7532\u57FA\u5316\u7279\u5F02\u6027pcr",
16360
+ "chip\u9A8C\u8BC1\u5F15\u7269",
16361
+ "chip-pcr",
16362
+ // types
16363
+ "\u7B80\u5E76\u5F15\u7269",
16364
+ "\u7B80\u5E76\u5F15\u7269\u8BBE\u8BA1",
16365
+ "\u5168\u957F\u6269\u589E",
16366
+ "\u5D4C\u5957pcr\u5F15\u7269",
16367
+ "\u591A\u91CDpcr",
16368
+ "\u5B9E\u65F6\u8367\u5149pcr",
16369
+ // natural-language
15610
16370
  "\u8BBE\u8BA1\u5F15\u7269",
15611
16371
  "\u6269\u589E\u5F15\u7269",
15612
16372
  "rt-pcr\u5F15\u7269",
15613
- "\u5B9A\u91CFpcr"
16373
+ "\u5E2E\u6211\u8BBE\u8BA1\u5F15\u7269",
16374
+ "\u8BBE\u8BA1qpcr\u5F15\u7269",
16375
+ "\u9A8C\u8BC1\u57FA\u56E0\u8868\u8FBE\u7684\u5F15\u7269"
15614
16376
  ]
15615
16377
  },
15616
16378
  // ── Survival Analysis ─────────────────────────────────────────────────────────
@@ -15643,11 +16405,10 @@ var SKILL_ROUTES = [
15643
16405
  "\u590D\u53D1\u751F\u5B58",
15644
16406
  "relapse-free survival",
15645
16407
  "rfs\u5206\u6790",
15646
- // natural-language synonyms
15647
- "\u60A3\u8005\u9884\u540E",
15648
- "\u9884\u540E\u5206\u6790",
15649
- "\u751F\u5B58\u9884\u540E",
15650
- "\u4E34\u5E8A\u9884\u540E",
16408
+ "\u65E0\u4E8B\u4EF6\u751F\u5B58",
16409
+ "event-free survival",
16410
+ "efs",
16411
+ // statistical terms
15651
16412
  "\u5220\u5931\u6570\u636E",
15652
16413
  "\u53F3\u5220\u5931",
15653
16414
  "censored data",
@@ -15657,12 +16418,54 @@ var SKILL_ROUTES = [
15657
16418
  "\u7ADE\u4E89\u98CE\u9669",
15658
16419
  "competing risk",
15659
16420
  "fine-gray",
16421
+ "\u7D2F\u79EF\u53D1\u751F\u7387",
15660
16422
  "\u4E2D\u4F4D\u751F\u5B58\u65F6\u95F4",
15661
16423
  "5\u5E74\u751F\u5B58\u7387",
15662
16424
  "3\u5E74\u751F\u5B58\u7387",
16425
+ "1\u5E74\u751F\u5B58\u7387",
16426
+ // Cox covariates
16427
+ "\u591A\u53D8\u91CFcox",
16428
+ "\u5355\u56E0\u7D20cox",
16429
+ "\u72EC\u7ACB\u9884\u540E\u56E0\u7D20",
16430
+ "\u9884\u540E\u72EC\u7ACB\u53D8\u91CF",
16431
+ "ecog\u8BC4\u5206",
16432
+ "\u80BF\u7624\u5206\u671F",
16433
+ "tnm\u5206\u671F",
16434
+ "\u6DCB\u5DF4\u7ED3\u8F6C\u79FB",
16435
+ // expression-based
15663
16436
  "\u9AD8\u8868\u8FBE\u9884\u540E\u5DEE",
15664
16437
  "\u57FA\u56E0\u8868\u8FBE\u4E0E\u9884\u540E",
15665
- "\u7A81\u53D8\u4E0E\u9884\u540E"
16438
+ "\u7A81\u53D8\u4E0E\u9884\u540E",
16439
+ "\u86CB\u767D\u8868\u8FBE\u4E0E\u751F\u5B58",
16440
+ "\u7532\u57FA\u5316\u4E0E\u9884\u540E",
16441
+ // cancer types
16442
+ "\u80BA\u764C\u9884\u540E",
16443
+ "\u4E73\u817A\u764C\u751F\u5B58\u5206\u6790",
16444
+ "\u809D\u764C\u9884\u540E",
16445
+ "\u80C3\u764C\u751F\u5B58",
16446
+ "\u7ED3\u76F4\u80A0\u764C\u9884\u540E",
16447
+ "\u5375\u5DE2\u764C\u751F\u5B58",
16448
+ "\u80F0\u817A\u764C\u9884\u540E",
16449
+ "\u767D\u8840\u75C5\u751F\u5B58",
16450
+ "\u6DCB\u5DF4\u7624\u9884\u540E",
16451
+ "\u80F6\u8D28\u7624\u751F\u5B58\u5206\u6790",
16452
+ "\u524D\u5217\u817A\u764C\u9884\u540E",
16453
+ "\u80BE\u764C\u751F\u5B58",
16454
+ "\u9ED1\u8272\u7D20\u7624\u9884\u540E",
16455
+ // clinical contexts
16456
+ "\u8F85\u52A9\u5316\u7597\u9884\u540E",
16457
+ "\u514D\u75AB\u6CBB\u7597\u7597\u6548\u9884\u6D4B",
16458
+ "\u9776\u5411\u6CBB\u7597\u751F\u5B58",
16459
+ "tcga\u751F\u5B58\u6570\u636E",
16460
+ "\u4E34\u5E8A\u961F\u5217\u751F\u5B58",
16461
+ // natural-language
16462
+ "\u60A3\u8005\u9884\u540E",
16463
+ "\u9884\u540E\u5206\u6790",
16464
+ "\u751F\u5B58\u9884\u540E",
16465
+ "\u4E34\u5E8A\u9884\u540E",
16466
+ "\u753B\u751F\u5B58\u66F2\u7EBF",
16467
+ "\u60A3\u8005\u80FD\u6D3B\u591A\u4E45",
16468
+ "\u54EA\u4E9B\u56E0\u7D20\u5F71\u54CD\u9884\u540E"
15666
16469
  ]
15667
16470
  },
15668
16471
  // ── Extended Skills (key routable entries) ───────────────────────────────────
@@ -15678,7 +16481,16 @@ var SKILL_ROUTES = [
15678
16481
  "\u8BBA\u6587\u641C\u7D22",
15679
16482
  "\u67E5\u627E\u6587\u732E",
15680
16483
  "\u68C0\u7D22pubmed",
15681
- "pubmed\u6587\u732E"
16484
+ "pubmed\u6587\u732E",
16485
+ "medline\u68C0\u7D22",
16486
+ "ncbi\u68C0\u7D22",
16487
+ "\u533B\u5B66\u6587\u732E",
16488
+ "\u4E34\u5E8A\u6587\u732E\u68C0\u7D22",
16489
+ "\u67E5\u6700\u65B0\u6587\u732E",
16490
+ "\u627E\u76F8\u5173\u8BBA\u6587",
16491
+ "\u8FD1\u671F\u53D1\u8868\u6587\u7AE0",
16492
+ "\u6570\u636E\u5E93\u6587\u732E\u68C0\u7D22",
16493
+ "\u751F\u7269\u533B\u5B66\u6587\u732E"
15682
16494
  ]
15683
16495
  },
15684
16496
  {
@@ -15686,7 +16498,20 @@ var SKILL_ROUTES = [
15686
16498
  name: "arXiv \u9884\u5370\u672C\u68C0\u7D22",
15687
16499
  category: "\u6587\u732E",
15688
16500
  tag: "builtin",
15689
- keywords: ["arxiv\u68C0\u7D22", "arxiv\u641C\u7D22", "\u9884\u5370\u672C\u68C0\u7D22", "\u9884\u5370\u672C\u8BBA\u6587", "arxiv\u6587\u732E"]
16501
+ keywords: [
16502
+ "arxiv\u68C0\u7D22",
16503
+ "arxiv\u641C\u7D22",
16504
+ "\u9884\u5370\u672C\u68C0\u7D22",
16505
+ "\u9884\u5370\u672C\u8BBA\u6587",
16506
+ "arxiv\u6587\u732E",
16507
+ "\u6700\u65B0\u9884\u5370\u672C",
16508
+ "biorxiv",
16509
+ "medrxiv",
16510
+ "\u672A\u53D1\u8868\u8BBA\u6587",
16511
+ "ai\u76F8\u5173\u9884\u5370\u672C",
16512
+ "\u6DF1\u5EA6\u5B66\u4E60\u751F\u7269\u4FE1\u606F",
16513
+ "\u5927\u6A21\u578B\u751F\u7269\u533B\u5B66"
16514
+ ]
15690
16515
  },
15691
16516
  {
15692
16517
  id: "alphafold",
@@ -15694,12 +16519,43 @@ var SKILL_ROUTES = [
15694
16519
  category: "\u7ED3\u6784\u751F\u7269\u5B66",
15695
16520
  tag: "builtin",
15696
16521
  keywords: [
16522
+ // tools
15697
16523
  "alphafold\u7ED3\u6784\u9884\u6D4B",
15698
16524
  "alphafold\u8FD0\u884C",
15699
16525
  "af2",
15700
16526
  "af3",
15701
16527
  "\u86CB\u767D\u8D28\u7ED3\u6784\u9884\u6D4B\u4EFB\u52A1",
15702
- "\u7528alphafold\u9884\u6D4B"
16528
+ "\u7528alphafold\u9884\u6D4B",
16529
+ "colabfold",
16530
+ "esmfold",
16531
+ "rosettafold",
16532
+ // applications
16533
+ "\u86CB\u767D\u8D28\u7ED3\u6784\u9884\u6D4B",
16534
+ "\u4E09\u7EF4\u7ED3\u6784\u9884\u6D4B",
16535
+ "\u86CB\u767D\u6298\u53E0\u9884\u6D4B",
16536
+ "\u7A81\u53D8\u5BF9\u7ED3\u6784\u7684\u5F71\u54CD",
16537
+ "\u7ED3\u6784\u529F\u80FD\u5206\u6790",
16538
+ "\u914D\u4F53\u7ED3\u5408\u53E3\u888B\u9884\u6D4B",
16539
+ "\u836F\u7269\u9776\u70B9\u7ED3\u6784",
16540
+ // protein interaction
16541
+ "\u86CB\u767D\u86CB\u767D\u76F8\u4E92\u4F5C\u7528\u7ED3\u6784",
16542
+ "ppi\u7ED3\u6784",
16543
+ "\u590D\u5408\u7269\u7ED3\u6784\u9884\u6D4B",
16544
+ "multimer\u9884\u6D4B",
16545
+ "\u86CB\u767D\u590D\u5408\u7269",
16546
+ // structural biology
16547
+ "\u540C\u6E90\u5EFA\u6A21",
16548
+ "homology modeling",
16549
+ "\u5E8F\u5217\u7ED3\u6784\u5173\u7CFB",
16550
+ "\u86CB\u767D\u8D28\u7ED3\u6784\u6BD4\u8F83",
16551
+ "\u7ED3\u6784\u5BF9\u9F50",
16552
+ "\u7ED3\u6784\u53E0\u5408",
16553
+ // natural-language
16554
+ "\u9884\u6D4B\u86CB\u767D\u7ED3\u6784",
16555
+ "\u86CB\u767D3d\u7ED3\u6784",
16556
+ "\u86CB\u767D\u8D28\u4E09\u7EF4\u6784\u8C61",
16557
+ "\u8FD9\u4E2A\u86CB\u767D\u7684\u7ED3\u6784\u662F\u4EC0\u4E48",
16558
+ "\u7528ai\u9884\u6D4B\u7ED3\u6784"
15703
16559
  ]
15704
16560
  },
15705
16561
  {
@@ -15712,7 +16568,15 @@ var SKILL_ROUTES = [
15712
16568
  "alphafold db",
15713
16569
  "uniprot\u7ED3\u6784\u67E5\u8BE2",
15714
16570
  "\u86CB\u767D\u8D28\u7ED3\u6784\u6570\u636E\u5E93",
15715
- "af\u6570\u636E\u5E93"
16571
+ "af\u6570\u636E\u5E93",
16572
+ "\u5DF2\u77E5\u86CB\u767D\u7ED3\u6784\u67E5\u8BE2",
16573
+ "\u86CB\u767D\u7ED3\u6784\u4E0B\u8F7D",
16574
+ "rcsb pdb",
16575
+ "pdb\u7ED3\u6784",
16576
+ "\u86CB\u767D\u6570\u636E\u5E93",
16577
+ "pdb\u67E5\u8BE2",
16578
+ "\u86CB\u767Did\u67E5\u7ED3\u6784",
16579
+ "uniprot\u86CB\u767D\u7ED3\u6784"
15716
16580
  ]
15717
16581
  },
15718
16582
  {
@@ -15726,7 +16590,17 @@ var SKILL_ROUTES = [
15726
16590
  "binder design",
15727
16591
  "protein binder",
15728
16592
  "\u86CB\u767D\u8D28\u7ED3\u5408\u7269\u8BBE\u8BA1",
15729
- "de novo binder"
16593
+ "de novo binder",
16594
+ // therapeutic protein design
16595
+ "\u6CBB\u7597\u6027\u86CB\u767D\u8BBE\u8BA1",
16596
+ "\u86CB\u767D\u8D28\u5DE5\u7A0B",
16597
+ "\u86CB\u767D\u8D28\u6539\u9020",
16598
+ "\u7ED3\u5408\u4EB2\u548C\u529B\u8BBE\u8BA1",
16599
+ "\u86CB\u767D\u8D28\u8BBE\u8BA1",
16600
+ // applications
16601
+ "\u6291\u5236\u5242\u86CB\u767D\u8BBE\u8BA1",
16602
+ "\u9776\u70B9\u7ED3\u5408\u86CB\u767D",
16603
+ "\u53D7\u4F53\u7ED3\u5408\u8BBE\u8BA1"
15730
16604
  ]
15731
16605
  },
15732
16606
  {
@@ -15740,7 +16614,16 @@ var SKILL_ROUTES = [
15740
16614
  "adata\u5B50\u96C6",
15741
16615
  "anndata\u683C\u5F0F",
15742
16616
  "\u5355\u7EC6\u80DEh5ad",
15743
- "obs var layers"
16617
+ "obs var layers",
16618
+ "h5ad\u8BFB\u53D6",
16619
+ "\u5355\u7EC6\u80DE\u6570\u636E\u683C\u5F0F\u8F6C\u6362",
16620
+ "loom\u683C\u5F0F",
16621
+ "seurat\u8F6Canndata",
16622
+ "anndata\u5408\u5E76",
16623
+ "adata\u62FC\u63A5",
16624
+ "obs\u7B5B\u9009",
16625
+ "var\u7B5B\u9009",
16626
+ "uns\u5B57\u6BB5"
15744
16627
  ]
15745
16628
  },
15746
16629
  {
@@ -15754,7 +16637,24 @@ var SKILL_ROUTES = [
15754
16637
  "cellagent",
15755
16638
  "\u81EA\u52A8\u7EC6\u80DE\u6CE8\u91CA",
15756
16639
  "\u7EC6\u80DE\u6CE8\u91CA\u81EA\u52A8\u5316",
15757
- "\u5355\u7EC6\u80DE\u6CE8\u91CA"
16640
+ "\u5355\u7EC6\u80DE\u6CE8\u91CA",
16641
+ // reference-based
16642
+ "\u53C2\u8003\u96C6\u6CE8\u91CA",
16643
+ "sctype",
16644
+ "celltypist",
16645
+ "singler\u6CE8\u91CA",
16646
+ "scmap\u6CE8\u91CA",
16647
+ "\u8FC1\u79FB\u5B66\u4E60\u7EC6\u80DE\u6CE8\u91CA",
16648
+ // specific cell types
16649
+ "t\u7EC6\u80DE\u6CE8\u91CA",
16650
+ "\u514D\u75AB\u7EC6\u80DE\u6CE8\u91CA",
16651
+ "\u80BF\u7624\u7EC6\u80DE\u6CE8\u91CA",
16652
+ "\u4E0A\u76AE\u7EC6\u80DE\u6CE8\u91CA",
16653
+ "\u6210\u7EA4\u7EF4\u7EC6\u80DE\u9274\u5B9A",
16654
+ "\u5185\u76AE\u7EC6\u80DE\u8BC6\u522B",
16655
+ // marker-based
16656
+ "\u6807\u5FD7\u7269\u9A71\u52A8\u6CE8\u91CA",
16657
+ "\u7EC6\u80DE\u7279\u5F81\u57FA\u56E0\u6CE8\u91CA"
15758
16658
  ]
15759
16659
  },
15760
16660
  {
@@ -15768,7 +16668,20 @@ var SKILL_ROUTES = [
15768
16668
  "\u5355\u7EC6\u80DE\u53D8\u5206\u63A8\u65AD",
15769
16669
  "batch correction scvi",
15770
16670
  "totalvi",
15771
- "scvi\u6279\u6B21\u77EB\u6B63"
16671
+ "scvi\u6279\u6B21\u77EB\u6B63",
16672
+ // related models
16673
+ "scarches",
16674
+ "scarchess",
16675
+ "peakvi",
16676
+ "multivi",
16677
+ "\u6DF1\u5EA6\u5B66\u4E60\u5355\u7EC6\u80DE",
16678
+ "\u53D8\u5206\u81EA\u7F16\u7801\u5668\u5355\u7EC6\u80DE",
16679
+ "vae\u5355\u7EC6\u80DE",
16680
+ // applications
16681
+ "\u6279\u6B21\u6548\u5E94\u53BB\u9664\u6DF1\u5EA6\u5B66\u4E60",
16682
+ "\u591A\u6A21\u6001\u5355\u7EC6\u80DE\u6574\u5408",
16683
+ "\u5355\u7EC6\u80DEimputation",
16684
+ "\u57FA\u56E0\u8868\u8FBE\u63D2\u8865"
15772
16685
  ]
15773
16686
  },
15774
16687
  {
@@ -15777,12 +16690,92 @@ var SKILL_ROUTES = [
15777
16690
  category: "\u836F\u7269",
15778
16691
  tag: "builtin",
15779
16692
  keywords: [
16693
+ // core drug discovery
15780
16694
  "\u836F\u7269\u53D1\u73B0\u6D41\u7A0B",
15781
16695
  "drug discovery",
15782
16696
  "\u5019\u9009\u836F\u7269\u7B5B\u9009",
15783
16697
  "\u5148\u5BFC\u5316\u5408\u7269",
15784
16698
  "hit\u5316\u5408\u7269",
15785
- "\u836F\u7269\u9776\u70B9\u53D1\u73B0"
16699
+ "\u836F\u7269\u9776\u70B9\u53D1\u73B0",
16700
+ // target analysis
16701
+ "\u9776\u70B9\u8BC4\u4F30",
16702
+ "\u9776\u70B9\u53EF\u89C6\u5316",
16703
+ "\u9776\u70B9\u62A5\u544A",
16704
+ "\u9776\u70B9\u5206\u6790",
16705
+ "\u9776\u70B9\u53EF\u6210\u836F\u6027",
16706
+ "druggability",
16707
+ "\u53EF\u6210\u836F\u6027\u8BC4\u4F30",
16708
+ "\u9776\u70B9\u7EFC\u5408\u8BC4\u5206",
16709
+ "target visualization",
16710
+ "drug target report",
16711
+ "target assessment",
16712
+ "\u9776\u70B9\u9A8C\u8BC1",
16713
+ "\u9776\u70B9\u786E\u8BA4",
16714
+ "\u9776\u70B9\u4F18\u5148\u7EA7\u6392\u5E8F",
16715
+ // specific target contexts
16716
+ "kras\u9776\u70B9",
16717
+ "kras\u53EF\u6210\u836F\u6027",
16718
+ "kras\u6291\u5236\u5242",
16719
+ "kras\u7A81\u53D8\u9776\u70B9",
16720
+ "egfr\u9776\u70B9",
16721
+ "alk\u9776\u70B9",
16722
+ "braf\u9776\u70B9",
16723
+ "her2\u9776\u70B9",
16724
+ "met\u9776\u70B9",
16725
+ "pd-1\u9776\u70B9",
16726
+ "pd-l1\u9776\u70B9",
16727
+ "ctla4\u9776\u70B9",
16728
+ "vegfr\u9776\u70B9",
16729
+ "fgfr\u9776\u70B9",
16730
+ "idh1\u9776\u70B9",
16731
+ "idh2\u9776\u70B9",
16732
+ // virtual screening
16733
+ "\u865A\u62DF\u7B5B\u9009",
16734
+ "\u5206\u5B50\u5BF9\u63A5",
16735
+ "molecular docking",
16736
+ "\u5BF9\u63A5\u6253\u5206",
16737
+ "glide docking",
16738
+ "autodock",
16739
+ "vina",
16740
+ "\u9AD8\u901A\u91CF\u865A\u62DF\u7B5B\u9009",
16741
+ // ADMET
16742
+ "admet\u9884\u6D4B",
16743
+ "\u836F\u4EE3\u52A8\u529B\u5B66\u9884\u6D4B",
16744
+ "pk\u9884\u6D4B",
16745
+ "adme\u9884\u6D4B",
16746
+ "\u53E3\u670D\u751F\u7269\u5229\u7528\u5EA6",
16747
+ "\u8840\u8111\u5C4F\u969C",
16748
+ "bbb\u9884\u6D4B",
16749
+ "\u6BD2\u6027\u9884\u6D4B",
16750
+ "\u4EE3\u8C22\u7A33\u5B9A\u6027",
16751
+ "herg\u6BD2\u6027",
16752
+ // drug repurposing
16753
+ "\u836F\u7269\u91CD\u5B9A\u4F4D",
16754
+ "\u8001\u836F\u65B0\u7528",
16755
+ "drug repurposing",
16756
+ "\u836F\u7269\u518D\u5229\u7528",
16757
+ // network pharmacology
16758
+ "\u7F51\u7EDC\u836F\u7406\u5B66",
16759
+ "\u9776\u70B9\u7F51\u7EDC",
16760
+ "\u4E2D\u836F\u7F51\u7EDC\u836F\u7406\u5B66",
16761
+ "\u4E2D\u836F\u6D3B\u6027\u6210\u5206",
16762
+ "\u5929\u7136\u4EA7\u7269\u6D3B\u6027",
16763
+ "\u4E2D\u8349\u836F\u6709\u6548\u6210\u5206",
16764
+ "\u4E2D\u836F\u9776\u70B9",
16765
+ // visualization
16766
+ "\u96F7\u8FBE\u56FE\u8BC4\u5206",
16767
+ "\u6C14\u6CE1\u56FE\u9776\u70B9",
16768
+ "\u6851\u57FA\u56FE\u7A81\u53D8\u901A\u8DEF",
16769
+ "\u9776\u70B9\u70ED\u56FE",
16770
+ // natural-language
16771
+ "\u54EA\u4E9B\u9776\u70B9\u503C\u5F97\u5F00\u53D1",
16772
+ "\u9776\u70B9\u4F18\u5148\u7EA7",
16773
+ "\u9776\u70B9\u6210\u836F\u6027\u5206\u6790",
16774
+ "\u9776\u5411\u6CBB\u7597\u9776\u70B9",
16775
+ "\u7CBE\u51C6\u533B\u5B66\u9776\u70B9",
16776
+ "\u5F00\u53D1\u4EC0\u4E48\u836F\u7269",
16777
+ "\u9488\u5BF9\u67D0\u9776\u70B9\u7684\u836F",
16778
+ "\u9776\u70B9\u53EF\u884C\u6027\u8BC4\u4F30"
15786
16779
  ]
15787
16780
  },
15788
16781
  {
@@ -15796,7 +16789,19 @@ var SKILL_ROUTES = [
15796
16789
  "\u5316\u5408\u7269\u6D3B\u6027\u6570\u636E",
15797
16790
  "bioactivity\u6570\u636E",
15798
16791
  "chembl\u5316\u5408\u7269",
15799
- "\u9776\u70B9\u6D3B\u6027\u5316\u5408\u7269"
16792
+ "\u9776\u70B9\u6D3B\u6027\u5316\u5408\u7269",
16793
+ // activity data
16794
+ "ic50\u67E5\u8BE2",
16795
+ "ki\u503C",
16796
+ "kd\u503C",
16797
+ "ec50",
16798
+ "\u6D3B\u6027\u5316\u5408\u7269\u67E5\u8BE2",
16799
+ "\u5316\u5408\u7269\u9776\u70B9\u6D3B\u6027",
16800
+ "\u591A\u9776\u70B9\u6D3B\u6027\u8C31",
16801
+ // drug data
16802
+ "\u6279\u51C6\u836F\u7269\u6570\u636E",
16803
+ "\u4E34\u5E8A\u5316\u5408\u7269",
16804
+ "fda\u6279\u51C6\u836F\u7269"
15800
16805
  ]
15801
16806
  },
15802
16807
  {
@@ -15811,7 +16816,36 @@ var SKILL_ROUTES = [
15811
16816
  "\u5206\u5B50\u63CF\u8FF0\u7B26\u8BA1\u7B97",
15812
16817
  "\u5206\u5B50\u76F8\u4F3C\u5EA6",
15813
16818
  "smiles\u5206\u5B50\u64CD\u4F5C",
15814
- "\u5316\u5B66\u7ED3\u6784\u5904\u7406"
16819
+ "\u5316\u5B66\u7ED3\u6784\u5904\u7406",
16820
+ // fingerprints
16821
+ "\u5206\u5B50\u6307\u7EB9",
16822
+ "morgan\u6307\u7EB9",
16823
+ "ecfp",
16824
+ "maccs\u6307\u7EB9",
16825
+ "topological fingerprint",
16826
+ // scaffold
16827
+ "\u9AA8\u67B6\u5206\u6790",
16828
+ "scaffold hopping",
16829
+ "\u9AA8\u67B6\u8DF3\u8DC3",
16830
+ "\u836F\u6548\u56E2",
16831
+ "pharmacophore",
16832
+ // properties
16833
+ "\u5206\u5B50\u91CF\u8BA1\u7B97",
16834
+ "logp\u8BA1\u7B97",
16835
+ "\u6C22\u952E\u53D7\u4F53\u4F9B\u4F53",
16836
+ "\u65CB\u8F6C\u952E",
16837
+ "lipinski\u4E94\u89C4\u5219",
16838
+ "\u7C7B\u836F\u6027",
16839
+ "drug-likeness",
16840
+ // QSAR/ML
16841
+ "qsar\u5EFA\u6A21",
16842
+ "\u6784\u6548\u5173\u7CFB",
16843
+ "\u5206\u5B50\u673A\u5668\u5B66\u4E60",
16844
+ "\u5316\u5B66\u7A7A\u95F4",
16845
+ // reactions
16846
+ "\u53CD\u5E94\u9884\u6D4B",
16847
+ "\u9006\u5408\u6210\u5206\u6790",
16848
+ "retrosynthesis"
15815
16849
  ]
15816
16850
  },
15817
16851
  {
@@ -15820,13 +16854,47 @@ var SKILL_ROUTES = [
15820
16854
  category: "\u57FA\u56E0\u7EC4",
15821
16855
  tag: "builtin",
15822
16856
  keywords: [
16857
+ // tools
15823
16858
  "\u53D8\u5F02\u68C0\u6D4B\u6D41\u7A0B",
15824
16859
  "variant calling\u6D41\u7A0B",
15825
16860
  "somatic\u53D8\u5F02\u68C0\u6D4B",
15826
16861
  "\u4F53\u7EC6\u80DE\u7A81\u53D8\u68C0\u6D4B",
15827
16862
  "mutect2",
15828
16863
  "gatk\u53D8\u5F02\u68C0\u6D4B",
15829
- "\u80BF\u7624\u53D8\u5F02\u68C0\u6D4B"
16864
+ "\u80BF\u7624\u53D8\u5F02\u68C0\u6D4B",
16865
+ "haplotypecaller",
16866
+ "deepvariant",
16867
+ "strelka2",
16868
+ "varscan",
16869
+ // sequencing types
16870
+ "wes\u5206\u6790",
16871
+ "\u5168\u5916\u663E\u5B50\u6D4B\u5E8F\u5206\u6790",
16872
+ "wgs\u5206\u6790",
16873
+ "\u5168\u57FA\u56E0\u7EC4\u6D4B\u5E8F",
16874
+ "panel\u6D4B\u5E8F",
16875
+ "\u9776\u5411\u6D4B\u5E8F",
16876
+ "ngs\u53D8\u5F02\u68C0\u6D4B",
16877
+ "tumor-normal\u914D\u5BF9",
16878
+ "\u80BF\u7624\u6B63\u5E38\u914D\u5BF9\u6D4B\u5E8F",
16879
+ // variant types
16880
+ "\u70B9\u7A81\u53D8\u68C0\u6D4B",
16881
+ "snp calling",
16882
+ "indel\u68C0\u6D4B",
16883
+ "cnv\u68C0\u6D4B",
16884
+ "\u7ED3\u6784\u53D8\u5F02\u68C0\u6D4B",
16885
+ "sv calling",
16886
+ "\u57FA\u56E0\u878D\u5408\u68C0\u6D4B",
16887
+ // quality
16888
+ "\u53D8\u5F02\u8FC7\u6EE4",
16889
+ "vqsr",
16890
+ "\u53D8\u5F02\u8D28\u63A7",
16891
+ "\u6D4B\u5E8F\u8D28\u63A7",
16892
+ // natural-language
16893
+ "\u4ECEbam\u6587\u4EF6\u627E\u7A81\u53D8",
16894
+ "\u4ECEfastq\u5230\u7A81\u53D8",
16895
+ "\u6D4B\u5E8F\u6570\u636E\u627E\u53D8\u5F02",
16896
+ "\u80BF\u7624\u57FA\u56E0\u7EC4\u6D4B\u5E8F\u5206\u6790",
16897
+ "ngs\u6570\u636E\u5206\u6790\u6D41\u7A0B"
15830
16898
  ]
15831
16899
  },
15832
16900
  {
@@ -15835,12 +16903,50 @@ var SKILL_ROUTES = [
15835
16903
  category: "\u6297\u4F53",
15836
16904
  tag: "builtin",
15837
16905
  keywords: [
16906
+ // core
15838
16907
  "\u6297\u4F53\u8BBE\u8BA1",
15839
16908
  "antibody design",
15840
16909
  "\u6297\u4F53\u4F18\u5316",
15841
16910
  "cdr\u8BBE\u8BA1",
15842
16911
  "\u5355\u514B\u9686\u6297\u4F53\u8BBE\u8BA1",
15843
- "\u6297\u4F53\u5DE5\u7A0B\u6539\u9020"
16912
+ "\u6297\u4F53\u5DE5\u7A0B\u6539\u9020",
16913
+ // types
16914
+ "\u6CBB\u7597\u6027\u6297\u4F53",
16915
+ "\u4E2D\u548C\u6297\u4F53",
16916
+ "\u53CC\u7279\u5F02\u6027\u6297\u4F53",
16917
+ "bispecific antibody",
16918
+ "\u7EB3\u7C73\u6297\u4F53",
16919
+ "nanobody",
16920
+ "\u5355\u57DF\u6297\u4F53",
16921
+ "sdab",
16922
+ "\u5168\u4EBA\u6E90\u6297\u4F53",
16923
+ "\u4EBA\u6E90\u5316\u6297\u4F53",
16924
+ "humanization",
16925
+ // optimization
16926
+ "\u6297\u4F53\u4EB2\u548C\u529B\u6210\u719F",
16927
+ "affinity maturation",
16928
+ "cdr\u4F18\u5316",
16929
+ "\u6297\u4F53\u7A33\u5B9A\u6027\u6539\u9020",
16930
+ "\u6297\u4F53\u53EF\u6EB6\u6027\u63D0\u9AD8",
16931
+ // antibody-drug conjugate
16932
+ "adc\u8BBE\u8BA1",
16933
+ "\u6297\u4F53\u5076\u8054\u836F\u7269",
16934
+ "\u5076\u8054\u4F4D\u70B9\u8BBE\u8BA1",
16935
+ // function
16936
+ "fc\u5DE5\u7A0B\u6539\u9020",
16937
+ "effector function\u4F18\u5316",
16938
+ "adcc",
16939
+ "cdc",
16940
+ // immune checkpoint
16941
+ "\u514D\u75AB\u68C0\u67E5\u70B9\u6297\u4F53",
16942
+ "pd-1\u6297\u4F53",
16943
+ "pd-l1\u6297\u4F53",
16944
+ "ctla4\u6297\u4F53",
16945
+ // natural-language
16946
+ "\u8BBE\u8BA1\u65B0\u6297\u4F53",
16947
+ "\u6539\u9020\u6297\u4F53",
16948
+ "\u6297\u4F53\u5982\u4F55\u4F18\u5316",
16949
+ "\u5F00\u53D1\u6297\u4F53\u836F\u7269"
15844
16950
  ]
15845
16951
  },
15846
16952
  {
@@ -15849,12 +16955,53 @@ var SKILL_ROUTES = [
15849
16955
  category: "\u6297\u4F53",
15850
16956
  tag: "builtin",
15851
16957
  keywords: [
16958
+ // core
15852
16959
  "car-t\u8BBE\u8BA1",
15853
16960
  "cart\u7EC6\u80DE\u8BBE\u8BA1",
15854
16961
  "\u5D4C\u5408\u6297\u539F\u53D7\u4F53\u8BBE\u8BA1",
15855
16962
  "chimeric antigen receptor",
15856
16963
  "armored cart",
15857
- "\u514D\u75AB\u7EC6\u80DE\u6CBB\u7597\u8BBE\u8BA1"
16964
+ "\u514D\u75AB\u7EC6\u80DE\u6CBB\u7597\u8BBE\u8BA1",
16965
+ // CAR structure
16966
+ "\u5171\u523A\u6FC0\u57DF\u8BBE\u8BA1",
16967
+ "costimulatory domain",
16968
+ "cd28\u5171\u523A\u6FC0",
16969
+ "4-1bb\u8BBE\u8BA1",
16970
+ "\u94F0\u94FE\u533A\u8BBE\u8BA1",
16971
+ "\u8DE8\u819C\u533A\u4F18\u5316",
16972
+ "\u80DE\u5185\u4FE1\u53F7\u57DF",
16973
+ // applications
16974
+ "\u8840\u6DB2\u80BF\u7624car-t",
16975
+ "b\u7EC6\u80DE\u6DCB\u5DF4\u7624car-t",
16976
+ "\u591A\u53D1\u6027\u9AA8\u9AD3\u7624cart",
16977
+ "\u5B9E\u4F53\u7624car-t",
16978
+ "\u5B9E\u4F53\u80BF\u7624\u7EC6\u80DE\u6CBB\u7597",
16979
+ // targets
16980
+ "cd19 cart",
16981
+ "cd22 cart",
16982
+ "bcma cart",
16983
+ "cd33 cart",
16984
+ "her2 cart",
16985
+ "gd2 cart",
16986
+ "egfr cart",
16987
+ // engineering
16988
+ "\u901A\u7528car-t",
16989
+ "\u5F02\u4F53cart",
16990
+ "allogeneic cart",
16991
+ "tcr\u03B1\u03B2\u6572\u9664",
16992
+ "\u6301\u4E45\u6027\u6539\u9020",
16993
+ "persistence",
16994
+ // related therapies
16995
+ "car-nk\u8BBE\u8BA1",
16996
+ "tcr-t\u7EC6\u80DE",
16997
+ "til\u6CBB\u7597",
16998
+ "\u80BF\u7624\u6D78\u6DA6\u6DCB\u5DF4\u7EC6\u80DE",
16999
+ // natural-language
17000
+ "\u8BBE\u8BA1car-t",
17001
+ "\u5F00\u53D1\u7EC6\u80DE\u6CBB\u7597",
17002
+ "\u514D\u75AB\u7EC6\u80DE\u7597\u6CD5\u8BBE\u8BA1",
17003
+ "cart\u6CBB\u7597\u4EC0\u4E48\u764C\u75C7",
17004
+ "cart\u6301\u4E45\u6027"
15858
17005
  ]
15859
17006
  }
15860
17007
  ];
@@ -16003,7 +17150,7 @@ function clearCheckpoints(sessionId) {
16003
17150
 
16004
17151
  // src/index.ts
16005
17152
  var import_fs7 = require("fs");
16006
- var VERSION2 = "2.4.4";
17153
+ var VERSION2 = "2.4.6";
16007
17154
  var SKILLHUB_HUBS = {
16008
17155
  bgi: { label: "BGI\u5185\u7F51", apiBase: "https://clawhub.ai", backend: "clawhub" },
16009
17156
  clawhub: { label: "clawhub.ai", apiBase: "https://clawhub.ai", backend: "clawhub" },
@@ -17880,16 +19027,29 @@ async function main() {
17880
19027
  const { routes: suggestedRoutes, topScore } = routeSkill(trimmed);
17881
19028
  const newRoutes = suggestedRoutes.filter((r2) => !injectedSkills.has(r2.id));
17882
19029
  if (newRoutes.length === 1 && topScore >= 8) {
17883
- const r2 = newRoutes[0];
17884
- const ok = await injectSkill(r2.id, history, injectedSkills, rl, true);
17885
- if (ok) {
17886
- console.log(source_default.dim(" (\u63D0\u793A: /clear \u53EF\u6E05\u9664\u4E0A\u4E0B\u6587\u540E\u5207\u6362 Skill)"));
17887
- }
17888
- } else if (newRoutes.length >= 2 && topScore >= 4) {
17889
- console.log(source_default.dim("\n\u{1F4A1} \u68C0\u6D4B\u5230\u76F8\u5173\u6280\u80FD\uFF0C\u8F93\u5165 /sk <id> \u6FC0\u6D3B:"));
17890
- newRoutes.slice(0, 3).forEach((r2) => {
17891
- console.log(source_default.dim(` /sk ${r2.id} \u2014 ${r2.name}`));
19030
+ await injectSkill(newRoutes[0].id, history, injectedSkills, rl, false);
19031
+ } else if (newRoutes.length >= 1 && topScore >= 2) {
19032
+ const candidates = newRoutes.slice(0, 3);
19033
+ console.log();
19034
+ 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"));
19035
+ candidates.forEach((r2, i2) => {
19036
+ console.log(`\u2502 ${source_default.bold.cyan(`[${i2 + 1}]`)} ${source_default.cyan(r2.id)}${source_default.dim(" \u2014")} ${r2.name}`);
17892
19037
  });
19038
+ 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"));
19039
+ 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 `;
19040
+ const skillChoice = await question(rl, source_default.yellow(pickPrompt));
19041
+ const choiceTrimmed = skillChoice.trim().toLowerCase();
19042
+ if (choiceTrimmed !== "" && choiceTrimmed !== "n") {
19043
+ let indices;
19044
+ if (candidates.length === 1) {
19045
+ indices = choiceTrimmed === "y" || choiceTrimmed === "" ? [0] : [];
19046
+ } else {
19047
+ indices = choiceTrimmed.split(",").map((s2) => parseInt(s2.trim(), 10) - 1).filter((i2) => i2 >= 0 && i2 < candidates.length);
19048
+ }
19049
+ for (const idx of indices) {
19050
+ await injectSkill(candidates[idx].id, history, injectedSkills, rl, true);
19051
+ }
19052
+ }
17893
19053
  console.log();
17894
19054
  }
17895
19055
  const expanded = expandFileRefs(trimmed);