本文基于AMS2024.102以上版本。
用户可以创建自己常用的取代基到图形界面中,便于平时使用,创建方法参考:用户如何创建个性化的取代基到取代基库中
假定用户使用上面介绍的方法,创建了N个自由基,或者直接使用现成的ligands(点击苯环形状的“结构”按钮 > Ligands)中的CN CO CO3 NC NH2 NH2CH3 NH3 OC OCH3 OH PH3 Pyridine,来研究取代基效应,方式是类似的。
进入工作目录,创建结构,例如苯,其中第12号原子是H。我们尝试将12号H原子替换成上述自由基,并使用UFF力场优化,生成新的一系列结构,步骤如下:
第一步:导出苯分子的结构(AMSinput > Export Coordinates,保存为*.xyz文件,例如这里命名为Benzene.xyz)到当前工作目录
第二步:在该文件夹内运行脚本文件:
#! /bin/sh # for ligand in CN CO CO3 NC NH2 NH2CH3 NH3 OC OCH3 OH PH3 Pyridine; do "$AMSBIN/amsprep" -t ForceField-GO -m Benzene.xyz -structure "12 Ligands/$ligand.ams" > "benzene_$ligand.run" sh "./benzene_$ligand.run" "$AMSBIN/amsreport" ams.rkf SDF > "benzene_$ligand.mol" rm -rf ../ams.results done
完成。
for ligand in CN CO CO3 NC NH2 NH2CH3 NH3 OC OCH3 OH PH3 Pyridine; do 这一行,用户可以根据自己的需要,修改ligand这个词,ligand是一个变量,用户可以随便改为其他名字,但不能包含中文、空格,在这里,ligand代表的是一系列自由基的名字,也就是:CN CO CO3 NC NH2 NH2CH3 NH3 OC OCH3 OH PH3 Pyridine,这些名字用一个(或者多个)空格隔开,以分号结尾。for开头、do结尾表示做循环,用户照抄即可。
下面几行是循环的内容,也就是将$ligand替换成自由基的名字,一个一个运行下面的内容。
"$AMSBIN/amsprep" -t UFF-GO -m Benzene.xyz -structure "12 Ligands/$ligand.adf" > "benzene_$ligand.run"
这一行中:
sh "./benzene_$ligand.run"
表示运行该*.run文件
"$AMSBIN/adfreport" uff.rkf SDF > "benzene_$ligand.mol"
表示将生成的结构导出为*.mol文件
mv uff.rkf "benzene_$ligand.rkf"
将生成的rkf文件根据自由基的名字重新命名
最后以done结尾和开头的for呼应,for和done之间的几行,表示循环执行的内容,遍历所有自由基后,循环结束。