使用AMBER中遇到的一些问题
2018-06-26 21:26 丨o聽乄雨o丨 阅读(6199) 评论(1) 编辑 收藏 举报1.读取蛋白问题
读取无配体pdb文件(loadpdb complex.pdb)时,出现一堆 FATAL: Atom .R<ARG 18>.A<HD1 27> does not have a type 错误,导致 check不过关,也无法 saveamberparm:
错误原因:AMBER不能识别用户PDB文件里特定残基(<ARG 18>)的H原子
解决方法:我遇到的问题是很多H原子都无法被识别,所以解决方法比较直接,删除所有氢,再根据AMBER的规则,重新添加H:
1) 使用pdb4amber删除所有氨基酸的H:
pdb4amber -i WT.pdb -o WT_noH.pdb -y --dry
pdb4amber的帮助信息如下:
$ pdb4amber -h Options: --version show program's version number and exit -h, --help show this help message and exit -i FILE, --in=FILE PDB input file (default: stdin) -o FILE, --out=FILE PDB output file (default: stdout) -y, --nohyd remove all hydrogen atoms (default: no) -d, --dry remove all water molecules (default: no) -p, --prot keep only Amber-compatible residues (default: no) --noter remove TER, MODEL, ENDMDL cards (default: no) --constantph rename GLU,ASP,HIS for constant pH simulation --most-populous keep most populous alt. conf. (default is to keep 'A') --reduce Run Reduce first to add hydrogens. (default: no) --model=MODEL Model to use from a multi-model pdb file (integer). (default: use all models)
2) 使用reduce添加H原子:
reduce WT_noH.pdb > WT_H.pdb
3) 使用pdb4amber对加氢后的pdb文件进行规划化处理:
pdb4amber -i WT_H.pdb -o WT_new.pdb
2.小分子文件准备问题:
非标准残基或者小分子文件,若想被amber读入,则需要对小分子文件进行定义及分配力场参数。
简单来说,需要以下两类文件:
AGI.frcmod
AGI.lib
1.先对小分子文件加氢:
reduce AGI.pdb > AGI_h.pdb
2.加氢完毕转换为mol2格式:
antechamber -i AGI_new.pdb -fi pdb -o AGI.mol2 -fo mol2 -c bcc -s 2
3.用parmchk检查参数的可用性,产生frcmod力场参数文件:
parmchk2 -i AGI.mol2 -f mol2 -o AGI.frcmod
4.加载AGI.frcmod和mol2文件到tleap中,产生lib库文件:
$ tleap -f oldff/leaprc.ff99SB
> source leaprc.gaff
> AGI = loadmol2 AGI.mol2 > check AGI > loadamberparams AGI.frcmod > saveoff AGI AGI.lib
可以参考另外一篇博客https://www.cnblogs.com/wq242424/p/9157072.html
3. GPU加速及多GPU运行问题:
拥有多GPU card时,使用 export CUDA_VISIBLE_DEVICES 命令指定使用哪张显卡,
1.使用命令前先用 unset CUDA_VISIBLE_DEVICES 命令清空变量;
2.再使用 export CUDA_VISIBLE_DEVICES 命令设置使用哪张或者哪几张显卡;
export CUDA_VISIBLE_DEVICES=0 使用0号显卡(pmemd.cuda)
export CUDA_VISIBLE_DEVICES=0,1 使用0,1两张显卡(mpirun -np 2 pmemd.cuda.MPI)
3.指定显卡后,我们使用pmemd.cuda命令或者mpirun -np 2 pmemd.cuda.MPI命令(指定两张显卡)运行amber。