介紹
官方網(wǎng)站:https://github.com/pandegroup/pdbfixer
PDB文件通常有一定的穩(wěn)定從而必須在進(jìn)行分子動(dòng)力學(xué)模擬之前進(jìn)行修復(fù)。具體的修復(fù)一般依賴于文件是如何生成的,PDBFixer官網(wǎng)列出了可能產(chǎn)生的問題:
- 如果結(jié)構(gòu)是用X-ray解析,大多數(shù)或者所有的氫原子可能缺失
- 柔性區(qū)域可能會(huì)有缺失heavy atoms,其電子密度可能沒有被清晰的解析。其可能包括loop側(cè)鏈末端的一些原子。
- 因?yàn)榫w學(xué)的目的可能增加一些非標(biāo)準(zhǔn)的殘基,但是可能并不存在于自然中。
- 許多PDB文件中缺少末端原子
- 可能有你不需要的例子,配體或者其它分子,可能是聚合物然而你僅想做單體蛋白
- 一些原子可能含有多個(gè)位置
- 如果想模擬顯示水,可能需要在水盒子中增加水
PDBFixer可以自動(dòng)的修復(fù)這些問題
PDBFixer可以采用不同的方式進(jìn)行使用,圖像交互,命令行以及Python API都可以使用。
安裝
需要安裝OpenMM以及CUDA或者OpenCL,同時(shí)Numpy需要被安裝
建議采用anconda進(jìn)安裝
conda config --add channels http://conda.binstar.org/omnia
conda install omnia
如果單獨(dú)安裝可以
python setup.py install
PDBFixer交互模式
PDBFixer界面交互主要采用瀏覽器模式,使用方法僅需在終端輸入pdbfixer
PDBFixer命令行模式
其實(shí)和很多軟件類似,PDBFixer的命令模式其實(shí)可以用--help查看,完整命令如下:
pdbfixer --help
以下為其參數(shù)
--pdbid=PDBID 從PDB中獲得文件
--url=URL 從URL中獲得文件
--output=FILENAME 輸出文件(默認(rèn):output.pdb)
--add-atoms=ATOMS 指定哪種缺失原子被增加,選項(xiàng)有:all(默認(rèn)),heavy,hydrogen,none
--replace-nonstandard 替換不標(biāo)準(zhǔn)殘基
--add-residues 增加缺失殘基
--water-box=X Y Z 增加水盒子
--ph=PH 增加缺失氫的時(shí)候的PH,默認(rèn)為7
--positive-ion=ION 正電荷原子,默認(rèn)為Na+. Cs+, K+,Li+, Na+, or Rb+
--negative-ion=ION 負(fù)電荷,默認(rèn)為Cl-. Cl-, Br-,F-, or I-
--ionic-strength=STRENGTH 盒子內(nèi)離子摩爾濃度
例子:
pdbfixer --keep-heterogens=water --replace-nonstandard --water-box=4.0 4.0 3.0 myfile.pdb
PDBFixer Python API交互
fixer =PDBFixer(filename='myfile.pdb')
#
# 調(diào)用PDBFixer方法
#
PDBFile.writeFile(fixer.topology,fixer.positions,open('output.pdb','w'))
移除鏈
fixer.removeChains(indices)
indices為數(shù)組
識(shí)別缺失殘基
fixer.findMissingResidues()
返回一個(gè)字典
替換非標(biāo)準(zhǔn)殘基
fixer.findNonstandardResidues()
fixer.replaceNonstandardResidues()
一個(gè)是查找標(biāo)準(zhǔn)殘基,返回?cái)?shù)組。一個(gè)是替換標(biāo)準(zhǔn)殘基命令
移除異源物
fixer.removeHeterogens(False)
False移除水和異源物,True會(huì)留下水,然而仍然去除異源物
增加缺失重原子
fixer.findMissingAtoms()
fixer.addMissingAtoms()
增加缺失氫
fixer.addMissingHydrogens(7.0)
參數(shù)為pH狀態(tài)
增加水
addSolvent(self, boxSize, positiveIon='Na+', negativeIon='Cl-', ionicStrength=0*molar)
同命令模式,示例:
fixer.addSolvent(Vec3(5, 5, 5)*nanometer, positiveIon='K+', ionicStrength=0.1*molar)