zl程序教程

您现在的位置是:首页 >  Python

当前栏目

pymol中编写和运行python脚本

2023-03-20 15:00:04 时间

pymol中编写和运行python脚本

0.说明

  • 简单介绍pymol中调用python脚本,后续把详细的图片更新。(2021年9月13日)
  • 后续相关更新会直接粘贴到文件中。

1. 编写功能

  • 批量读取本地夹中pdb文件并去除蛋白质中的水。
  • 将批量去水后的pdb文件保存到本地。

2. 代码

# 导入pymol
import pymol
from pymol import *
import os
def file_name(file_dir):
    L = []
    for root, dirs, files in os.walk(file_dir):
        for file in files:
        # 读取pdb文件
            if os.path.splitext(file)[1] == '.pdb':
                L.append(os.path.join(root , file))
        return L
# 读取本地文件夹下pdb文件(../gg/)
file_name_pdb=file_name('本地文件地址')
## 利用pymol处理本地pdb
for i in range(file_name_pdb.__len__()):
    print(i)
    # 读取本地pdb文件
    cmd.load(file_name_pdb[i]) 
    # pdb去除水分子
    cmd.remove('solvent')
    # 保存去除后的水分子
    cmd.save(file_name_pdb[i])
        # 删除当前运行,加载后续
    cmd.delete('all')
    # preset.publication(i, _self=cmd)

3. 编写教程

  • 建立python空白脚本,可以用txt或者相关ide环境。
  • 将建立的脚本在pymol中点击file->Run Script 中打开运行。

4. 核心教程说明

  • 关于功能命令的写作可以参考官网的链接教程
  • https://pymol.org/pymol-command-ref.html#save
  • 官网中的API 例子部分相关调用方式进行了介绍
  • 当需要特定原子信息提取或是特定操作,需要单独写逻辑
# pymol 调用时主要是通过cmd+功能(文件)的形式。
#例如下载pdb文件
cmd.fetch(‘z2kp’, async='0')

5.注意事项

  • 文件中不要包含中文字符,包括文件地址,保存名称
  • 脚本名字要规范
  • 输出结果可以直接print或者保存到txt中方便多软件交互使用
  • 如果需要叠加可以不设置每次运行删除文件,或删除特定文件

6. 原子信息的读取

 cmd.get_extent(string selection="(all)", state=0 )

附录. 详细图文教程