全自动蛋白质相互作用标记仪
该项目通过使用大型语言模型(LLM)进行自动结构注释,探索了一种更智能的蛋白质复合物分析方法。我们的服务器处理PDB文件中的蛋白质结构,支持T细胞受体(TCR)和肽-MHC(pMHC)复合物相互作用,以自动识别链类型并生成定量标记。通过优化提示策略,我们的管道有效地减轻了LLM幻觉,确保了高可靠性。
核心能力
- ### 自动链识别:读取PDB文件中的标头进行链分类
- ### 综合交互分析:
- 氢键网络 - 盐桥 - 疏水作用力 - π-π堆积相互作用 - 接口SASA计算 - 捆绑角度测量
- ### 批处理:通过实时进度跟踪分析多个PDB文件
- ### 数据完整性:数据收集过程中的内置验证
需求
- Python 3.8+
- PyMOL(带Python API)
- 克劳德桌面
- MCP(模型上下文协议)服务器框架
- MCP服务器插件:pymol-MCP服务器、文件系统-MCP服务器
快速启动
安装
Pymol mcp服务器
有关更多详细信息和服务器,请单击此链接https://github.com/ChatMol/molecule-mcp
- 转到Claude>设置>开发人员>编辑配置>Claude_desktop_Config.json,以包含以下内容:
{
"mcpServers": {
"pymol": {
"command": "/path/to/mcp",
"args": [
"run",
"/path/to/molecule-mcp/pymol_server.py"
]
}
}
}- 安装mcp并获取脚本
pip install "mcp[cli]" chatmol
which mcp复制此路径以进行下一步,并将/path/to/mcp替换为mcp的路径。 4.获得分子mcp的路径。
git clone https://github.com/ChatMol/molecule-mcp.git
cd molecule-mcp
pwd将显示分子mcp的路径。复制此路径以进行下一步,并将/path/to/molecule mcp替换为molecule mcp的路径。
文件系统mcp服务器
- 下载Node.jshttps://nodejs.org/zh-cn
2.使用npx安装并运行服务器 3.转到Claude>设置>开发人员>编辑配置>Claude_desktop_Config.json,包括以下内容:
Mac/linux
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop",
"/Users/username/Downloads"
]
}
}
}视窗
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"C:\\Users\\username\\Desktop",
"C:\\Users\\username\\Downloads"
]
}
}
}注意:在配置文件中,Windows必须使用\\\\
配置后记得重新启动Claude。
用法
- 使用本地值更新服务器配置中的文件路径。
- 将服务器插入Claude。
"TCR-pMHC-Analyzer": {
"command": "path to mcp",
"args": ["path to TCR-pMHC-Analyze server"]}- 输入PDB文件路径以开始处理。
User-input-surface 用户输入界面
示例结果
输入PDB文件地址后,Claude将尝试连接到您的本地PyMOL软件,找到您的PDB文件,并将其加载到PyMOL中。读取标题中的信息后,它将开始识别链类型并生成定量标签。
Screenshoot-of-the-operation-process
操作流程截图
注意:如果你的PyMOL和Claude在成功安装PyMOL-mcp服务器后仍然无法正确连接,你可以尝试将以下代码复制到PyMOL的命令行中。
import threading
try:
import xmlrpc.server
from pymol import cmd
def start_server():
server = xmlrpc.server.SimpleXMLRPCServer(("localhost", 9123), allow_none=True)
server.register_function(lambda x: cmd.do(x), 'do')
server.register_function(cmd.get_names, 'get_names')
print("Remote control server started on port 9123.")
server.serve_forever()
thread = threading.Thread(target=start_server)
thread.daemon = True
thread.start()
print("Server thread has been started.")
except Exception as e:
print("Error starting the server:", e)整个操作完成后,将在您的桌面上生成一个CSV文件,Claude还将在界面中组织和显示一些数据结果。您可以交叉引用以下.txt文件和CSV表中的数据,以确保所有数据的真实性。
注意:请确保在操作过程中检查Claude是否正在将数据写入.txt文件。缺少.txt输出可能会导致CSV结果不可靠。
致谢
- 西安交通大学夏季本科生研究金
- SURF代码:SURF-2025-0465
