You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Biopython ResidueDepth模块计算残基深度时遇msms命令未识别错误

解决Biopython ResidueDepth模块的msms命令未识别问题

报错原因

Biopython的ResidueDepth模块依赖**MSMS(分子表面计算工具)**生成蛋白质溶剂可及表面,你的系统未安装MSMS,或未将其路径添加到系统环境变量,导致命令行无法识别msms命令。

解决步骤

1. 安装MSMS工具

  • 下载适配Windows系统的MSMS压缩包(对应你系统的位数,比如64位)
  • 解压到本地固定目录,例如C:\Program Files\MSMS,确认解压后在bin子文件夹下能找到msms.exe

2. 配置系统环境变量(永久生效)

  • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 在「系统变量」列表中找到Path,点击「编辑」
  • 点击「新建」,添加MSMS的bin目录路径,例如C:\Program Files\MSMS\bin
  • 保存所有设置后,关闭并重新打开PyCharm和命令行窗口,确保环境变量生效

3. 临时指定MSMS路径(无需改环境变量)

如果不想修改系统环境变量,可在代码中直接指定msms.exe的路径:
在调用get_surface前添加以下代码:

from Bio.PDB.ResidueDepth import _MSMS_PATH
# 替换为你的msms.exe实际路径
_MSMS_PATH = r"C:\Program Files\MSMS\bin\msms.exe"

4. 验证安装

打开命令提示符,输入msms,若能显示MSMS的帮助信息,说明配置成功,此时再运行你的Python代码即可正常执行。

代码优化建议(可选)

你的代码存在冗余导入,可简化为:

from Bio.PDB import MMCIFParser
from Bio.PDB.ResidueDepth import get_surface, min_dist

def LIST(myList1):
    for i in myList1:
        cif_path = f'C:\\Users\\LENOVO GAMING 3\\PycharmProjects\\pythonProject1\\{i}.cif'
        structure = MMCIFParser(QUIET=True).get_structure(i, cif_path)
        model = structure[0]
        surface = get_surface(model)
        dist = min_dist(structure.center_of_mass(geometric=True), surface)
        print(i, structure.header['resolution'], structure.center_of_mass(geometric=True))
        print(dist)

myList1 = ['107l', '108l', '2y7q', '7r2v']
LIST(myList1)

内容的提问来源于stack exchange,提问作者arinjoy datta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 09:55:19