轻松上手PDBFixer:分子动力学模拟文件处理利器,修复蛋白结构中常见的问题

在分子动力学模拟领域,PDB(Protein Data Bank)文件常存在各类问题,而PDBFixer可有效解决这些难题。以下为您详细介绍。

一、PDB文件常见问题

  1. 氢原子缺失:X射线晶体学生成的结构,多数氢原子通常缺失。

  2. 重原子缺失:柔性区域因电子密度难以清晰解析,部分重原子可能缺失,范围从侧链末端几个原子到整个环。

  3. 末端原子缺失:许多PDB文件缺少链末端应有的原子。

  4. 非标准残基:为晶体学目的添加的非标准残基,可能并非模拟所需天然分子成分。

  5. 多余成分:文件可能包含实验添加的盐、配体或其他分子,或晶胞中有多个蛋白质拷贝,而我们仅需模拟单个拷贝。

  6. 原子位置重复:部分原子可能列出多个位置。

  7. 溶剂与膜缺失:若在显式溶剂中模拟,需添加水盒;对于膜蛋白,还需添加脂质膜。

二、PDBFixer安装指南

  1. Conda安装 最简单的方式是使用conda或mamba,在命令行输入:

conda install -c conda-forge pdbfixer
  1. 源码安装 先下载仓库,进入根目录,再执行:

python setup.py install

此操作将安装PDBFixer的Python包及命令行程序pdbfixer。需注意,运行PDBFixer前,要先安装OpenMM,参照OpenMM手册说明操作。同时,建议安装CUDA或OpenCL以提升速度,PDBFixer还依赖NumPy。使用conda安装时,这些依赖会自动安装。

三、PDBFixer使用方法

(一)桌面应用模式

  1. 在命令行输入pdbfixer,它会通过网页浏览器展示用户界面。通常会自动打开浏览器显示界面,若未自动打开,可手动在浏览器输入http://localhost:8000

  2. 用户界面操作流程
    • 加载文件:可从本地磁盘选择PDB文件,或输入PDB结构标识符从RCSB下载。

    • 选择链:可在此选择移除结构部分内容,界面列出文件中所有链,取消勾选不想模拟的链即可。还可选择移除杂原子,有保留所有杂原子、只保留水删除其他杂原子、删除所有杂原子三种选项。

    • 添加残基:若文件有缺失残基(依SEQRES记录序列判断),此处会列出,选择要添加的缺失残基块后点击“继续”。

    • 转换残基:若文件含非标准残基,此页可将其替换为标准残基,程序给出建议替换,也可自行选择其他。

    • 添加重原子:列出文件中所有缺失重原子并自动添加。

    • 添加氢、水和膜:可选择添加缺失氢原子(可指定pH确定质子化状态)、添加水盒(同时添加抗衡离子中和系统,还能按需添加更多离子)、添加脂质膜(支持POPC和POPE脂质)。

    • 保存文件:处理完成后,点击“保存文件”将处理后的PDB文件保存到磁盘。若还有其他文件要处理,点击“处理另一个文件”;若处理完毕,点击右上角“退出”。

(二)命令行应用模式

  1. 若想了解命令行界面使用说明,在命令行输入pdbfixer --help,可查看各类参数信息。

  2. 命令行示例

pdbfixer --keep-heterogens=water --replace-nonstandard --water-box=4.0 4.0 3.0 myfile.pdb

此命令加载myfile.pdb,添加现有残基缺失原子,但不添加缺失残基;在pH 7.0条件下添加氢原子;替换非标准氨基酸或核苷酸为标准的;保留文件中水分子,删除其他杂原子;添加4×4×3纳米大小水盒,必要时添加抗衡离子(Na +或Cl -),但不添加其他离子(默认离子强度为0.0),处理结果写入output.pdb文件。

(三)Python API模式

  1. 这是功能最强大的使用方式,可对PDB文件处理过程进行编程控制。使用前需熟悉OpenMM API。

  2. 代码示例

from pdbfixer import PDBFixer
from openmm.app import PDBFile
fixer = PDBFixer(filename='myfile.pdb')
# 调用各种方法对fixer进行操作
# 例如:
fixer.findMissingResidues()
fixer.findNonstandardResidues()
fixer.replaceNonstandardResidues()
fixer.removeHeterogens(True)
fixer.findMissingAtoms()
fixer.addMissingAtoms()
fixer.addMissingHydrogens(7.0)
fixer.addSolvent(fixer.topology.getUnitCellDimensions())
PDBFile.writeFile(fixer.topology, fixer.positions, open('output.pdb', 'w'))
  1. 各种方法说明
    • 移除链fixer.removeChains(indices)indices为要移除的链的索引列表。

    • 识别缺失残基fixer.findMissingResidues(),识别SEQRES记录中无原子数据的残基,但不立即添加,结果存于missingResidues字段,该字段为字典,键由链索引和链内残基索引组成元组,值为要插入的残基名称列表,之后可修改此字典决定实际插入残基。

    • 替换非标准残基:先调用fixer.findNonstandardResidues(),结果存于nonstandardResidues字段,该字段为列表,每个元素由残基对象和建议替换残基名称组成元组,调用fixer.replaceNonstandardResidues()前可修改此列表。

    • 移除杂原子fixer.removeHeterogens(False),参数为False时移除所有杂原子包括水,为True时保留水移除其他杂原子。

    • 添加缺失重原子:先调用fixer.findMissingAtoms(),识别出的缺失重原子存于missingAtomsmissingTerminals字段,这两个字段均为字典,键为残基对象,值为原子名称列表,之后调用fixer.addMissingAtoms()添加所有重原子,包括缺失的残基和替换非标准残基后缺失的原子。

    • 添加缺失氢原子fixer.addMissingHydrogens(7.0),参数为pH值,用于选择质子化状态。

    • 添加水盒addSolvent(self, boxSize, positiveIon='Na+', negativeIon='Cl-', ionicStrength=0*molar)boxSize为水盒尺寸的Vec3对象,还可指定离子类型和离子强度。

    • 添加脂质膜addMembrane(self, lipidType='POPC', membraneCenterZ=0*nanometer, minimumPadding=1*nanometer, positiveIon='Na+', negativeIon='Cl-', ionicStrength=0*molar)lipidType可选POPCPOPE,还可指定膜中心位置、最小填充距离等。

四、非标准残基处理

  1. PDBFixer知晓如何构建标准氨基酸和核苷酸。对于PDB化学组件字典中定义的残基,如模拟含硒代半胱氨酸(PDB代码SEC)的蛋白质,调用fixer.downloadTemplate('SEC'),之后可像处理标准残基一样处理。

  2. 对于不在PDB化学组件字典中的分子或残基,需自行定义模板。通过registerTemplate()方法,传入OpenMM拓扑对象描述残基结构,以及描述残基典型构象的位置列表。若残基是大分子一部分,还需传入第三个参数,即布尔标志列表,指定哪些原子在非末端残基中应省略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

药研猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值