介绍
官方网站:https://github.com/pandegroup/pdbfixer
PDB文件通常有一定的稳定从而必须在进行分子动力学模拟之前进行修复。具体的修复一般依赖于文件是如何生成的,PDBFixer官网列出了可能产生的问题:
- 如果结构是用X-ray解析,大多数或者所有的氢原子可能缺失
- 柔性区域可能会有缺失heavy atoms,其电子密度可能没有被清晰的解析。其可能包括loop侧链末端的一些原子。
- 因为晶体学的目的可能增加一些非标准的残基,但是可能并不存在于自然中。
- 许多PDB文件中缺少末端原子
- 可能有你不需要的例子,配体或者其它分子,可能是聚合物然而你仅想做单体蛋白
- 一些原子可能含有多个位置
- 如果想模拟显示水,可能需要在水盒子中增加水
PDBFixer可以自动的修复这些问题
PDBFixer可以采用不同的方式进行使用,图像交互,命令行以及Python API都可以使用。
安装
需要安装OpenMM以及CUDA或者OpenCL,同时Numpy需要被安装
建议采用anconda进安装
conda config --add channels http://conda.binstar.org/omnia
conda install omnia
如果单独安装可以
python setup.py install
PDBFixer交互模式
PDBFixer界面交互主要采用浏览器模式,使用方法仅需在终端输入pdbfixer
PDBFixer命令行模式
其实和很多软件类似,PDBFixer的命令模式其实可以用--help
查看,完整命令如下:
pdbfixer --help
以下为其参数
--pdbid=PDBID
从PDB中获得文件
--url=URL
从URL中获得文件
--output=FILENAME
输出文件(默认:output.pdb)
--add-atoms=ATOMS
指定哪种缺失原子被增加,选项有:all(默认),heavy,hydrogen,none
--replace-nonstandard
替换不标准残基
--add-residues
增加缺失残基
--water-box=X Y Z
增加水盒子
--ph=PH
增加缺失氢的时候的PH,默认为7
--positive-ion=ION
正电荷原子,默认为Na+. Cs+, K+,Li+, Na+, or Rb+
--negative-ion=ION
负电荷,默认为Cl-. Cl-, Br-,F-, or I-
--ionic-strength=STRENGTH
盒子内离子摩尔浓度
例子:
pdbfixer --keep-heterogens=water --replace-nonstandard --water-box=4.0 4.0 3.0 myfile.pdb
PDBFixer Python API交互
fixer =PDBFixer(filename='myfile.pdb')
#
# 调用PDBFixer方法
#
PDBFile.writeFile(fixer.topology,fixer.positions,open('output.pdb','w'))
移除链
fixer.removeChains(indices)
indices
为数组
识别缺失残基
fixer.findMissingResidues()
返回一个字典
替换非标准残基
fixer.findNonstandardResidues()
fixer.replaceNonstandardResidues()
一个是查找标准残基,返回数组。一个是替换标准残基命令
移除异源物
fixer.removeHeterogens(False)
False移除水和异源物,True会留下水,然而仍然去除异源物
增加缺失重原子
fixer.findMissingAtoms()
fixer.addMissingAtoms()
增加缺失氢
fixer.addMissingHydrogens(7.0)
参数为pH状态
增加水
addSolvent(self, boxSize, positiveIon='Na+', negativeIon='Cl-', ionicStrength=0*molar)
同命令模式,示例:
fixer.addSolvent(Vec3(5, 5, 5)*nanometer, positiveIon='K+', ionicStrength=0.1*molar)