代码改变世界

使用AMBER中遇到的一些问题

2018-06-26 21:26  丨o聽乄雨o丨  阅读(6331)  评论(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。