目的:演示一个用于TCGA分析工具的MCP服务器。
安装此包并在配置文件~/.config/mcptools/config.json中包含以下内容:
{
"mcpServers": {
"r-mcptools": {
"command": "Rscript",
"args": ["-e", "mcptools::mcp_server()"]
},
"r-btw": {
"command": "Rscript",
"args": ["-e", "btw::btw_mcp_server()"]
},
"r-tcga": {
"command": "Rscript",
"args": ["-e", "biocTcgaMcp::btcga_mcp_server()"]
}
}
}
然后执行以下代码:
library(ellmer)
ch = chat_openai(model="gpt-4o")
ch$set_tools(mcptools::mcp_tools()) # 需要 biocTcgaMcp 0.0.2 版本以改进类型列表工具
cc = type_array(type_object(codes = type_string(description = "TCGA肿瘤类型代码"),
types = type_string(description = "TCGA肿瘤研究名称")))
ch$chat_structured("TCGA中有哪些可用的肿瘤类型?", type=cc)
这应该返回一个数据框。chat_structured不是必需的,但它会在调用的R会话中创建一个值。
> ch$chat_structured("TCGA中有哪些可用的肿瘤类型?", type=cc)
codes types
1 ACC 肾上腺皮质癌
2 BLCA 膀胱尿路上皮癌
3 BRCA 乳腺浸润性癌
4 CESC 宫颈鳞状细胞癌和宫颈内膜腺癌
5 CHOL 胆管癌
6 COAD 结肠腺癌
7 DLBC 弥散大B细胞淋巴瘤
8 ESCA 食道癌
9 GBM 多形性胶质母细胞瘤
10 HNSC 头颈部鳞状细胞癌
11 KICH 肾嗜色细胞瘤
12 KIRC 肾透明细胞癌
13 KIRP 肾乳头状细胞癌
14 LAML 急性髓系白血病
15 LGG 脑低级别胶质瘤
16 LIHC 肝细胞肝癌
17 LUAD 肺腺癌
18 LUSC 肺鳞状细胞癌
19 MESO 胸膜间皮瘤
20 OV 卵巢浆液性囊腺癌
21 PAAD 胰腺腺癌
22 PCPG 嗜铬细胞瘤和副神经节瘤
23 PRAD 前列腺腺癌
24 READ 直肠腺癌
25 SARC 肉瘤
26 SKCM 皮肤黑色素瘤
27 STAD 胃腺癌
28 TGCT 睾丸生殖细胞肿瘤
29 THCA 甲状腺癌
30 THYM 胸腺瘤
31 UCEC 子宫内膜癌
32 UCS 子宫肉瘤
33 UVM 虹膜黑色素瘤
此包中定义的用于回答上述查询的工具可以直接运行biocTcgaMcp::list_cancer_types()并返回一个包含33行的数据框。
> ch = chat_openai(model="gpt-4o")
> ch$chat("TCGA研究了哪些肿瘤类型?")
癌症基因组图谱(TCGA)是一个大规模项目,旨在通过基因组测序和生物信息学来编目导致不同类型的癌症的遗传突变。TCGA研究了多种肿瘤类型,包括但不限于:
1. **乳腺浸润性癌(BRCA)**
2. **肺腺癌(LUAD)**
3. **肺鳞状细胞癌(LUSC)**
4. **前列腺腺癌(PRAD)**
5. **肾透明细胞癌(KIRC)**
6. **甲状腺癌(THCA)**
7. **胃腺癌(STAD)**
8. **肝细胞肝癌(LIHC)**
9. **结直肠腺癌(COADREAD)**
10. **脑低级别胶质瘤(LGG)**
11. **多形性胶质母细胞瘤(GBM)**
12. **卵巢浆液性囊腺癌(OV)**
13. **胰腺腺癌(PAAD)**
14. **膀胱尿路上皮癌(BLCA)**
15. **头颈部鳞状细胞癌(HNSC)**
16. **子宫内膜癌(UCEC)**
17. **皮肤黑色素瘤(SKCM)**
18. **食道癌(ESCA)**
19. **宫颈鳞状细胞癌和宫颈内膜腺癌(CESC)**
20. **急性髓系白血病(LAML)**
21. **肾乳头状细胞癌(KIRP)**
22. **肾嗜色细胞瘤(KICH)**
23. **虹膜黑色素瘤(UVM)**
24. **胸膜间皮瘤(MESO)**
25. **嗜铬细胞瘤和副神经节瘤(PCPG)**
26. **胸腺瘤(THYM)**
27. **肾上腺皮质癌(ACC)**
28. **胆管癌(CHOL)**
这些肿瘤类型因其发病率和死亡率以及其科学和临床重要性而被选中。从TCGA收集的数据对于推进对癌症基因组基础的理解至关重要。
这并不是非常令人满意,因为我们知道有33种肿瘤类型。
此包的目的是细化工具定义和提示设计,以便我们降低出错的风险。