计算化学公社

 找回密码 Forget password
 注册 Register
Views: 5291|回复 Reply: 4
打印 Print 上一主题 Last thread 下一主题 Next thread

自用批量转换ZINC的mol2文件分割为单个文件、批量形成gjf文件并提交超算中心排队

[复制链接 Copy URL]

343

帖子

1

威望

6996

eV
积分
7359

Level 6 (一方通行)

本帖最后由 zsu007 于 2016-5-9 19:17 编辑

我的工作中需要将ZINC文件分割,形成g09计算用的gjf文件,最后提交到超算中心进行批量计算。自己亲测在红帽和Ubuntu中可以使用。通过论坛学习了很多东西,希望这个自己编写的shell脚本能够使得大家提高工作效率。
理解了本脚本,又有一定的shell编程经验的人可以在此基础上进行修改来适合自己的工作和习惯。
Have a fun!
————————————————
mol2pbs.sh
#!/bin/bash
dos2unix -q *.mol2
declare -i m
declare -i l
declare -i j
declare -i start
declare -i end
for inf in *.mol2
do
   grep -n '@<TRIPOS>MOLECULE' ${inf} |cut -d ":" -f 1 > ${inf%.mol2}.tmp
   cat ${inf} |wc -l >> ${inf%.mol2}.tmp
   cat ${inf%.mol2}.tmp |tr "\n" ' ' > ${inf}.dat
   mv ${inf}.dat ${inf%.mol2}.tmp   
   read -a SHELLS < ${inf%.mol2}.tmp
   m=$(grep -c '@<TRIPOS>MOLECULE' ${inf})
   for (( j=0;j<$m;j++))
     do
      l=${SHELLS[j]}+1
      filename=$(echo "${inf%.mol2}""$j")
      start=${SHELLS[j]}
      end=${SHELLS[j+1]}-1
      cat ${inf} |sed -n ''$start','$end' p' > ${filename}.dat
     done
done
for inf in *.dat
  do
    start=$(grep -n '@<TRIPOS>ATOM' ${inf} |cut -d ":" -f 1)+1
    end=$(grep -n '@<TRIPOS>BOND' ${inf} |cut -d ":" -f 1)-1
    cat ${inf} |sed -n ''$start','$end' p'|awk '{print $2"\t"$3"\t"$4"\t"$5}' > ${inf%.dat}.xyz
  done
for inf in *.xyz
do
cat ~/sh/opt.gjf > ${inf%.xyz}.dat
cat ${inf} >> ${inf%.xyz}.dat
cat ~/sh/ecd.gjf >> ${inf%.xyz}.dat
cat ${inf%.xyz}.dat |sed "s/xxx/${inf%.xyz}/g" > ${inf%.xyz}.gjf
done
for inf in *.gjf
do
cat ~/sh/g09pbs.sh | sed "s/xxx/${inf%.gjf}/g" > ${inf%.gjf}.pbs
done  
for inf in *.pbs
do
   qsub ${inf}
done
——————————————————————————————————————————————
说明:
0 假设用户已经设置好g09的.bashrc,安装了bashshell、sed、awk等。
1 cat ~/sh/opt.gjf > ${inf%.xyz}.dat
2 cat ~/sh/ecd.gjf >> ${inf%.xyz}.dat
3 cat ~/sh/g09pbs.sh | sed "s/xxx/${inf%.gjf}/g" > ${inf%.gjf}.pbs
_________________________________
opt.gjf
%nprocshared=8
%mem=4gb
%chk=xxx.chk
# pm6 opt test

LCY-OptFreqECD-PCM-MO

0 1
--------------------------------------------------
ecd.gjf

--link1--
%nprocshared=8
%mem=4gb
%chk=xxx.chk
# b3lyp/6-31g** opt scrf(solvent=methanol) geom=allcheck
guess=read test


--link1--
%nprocshared=4
%mem=4gb
%chk=xxx.chk
# pbe1pbe/6-311g** td(singlets,nstates=100) scrf(solvent=methanol)
geom=allcheck guess=read scf(novaracc) test


--link1--
%nprocshared=4
%mem=4gb
%chk=xxx.chk
# b3lyp/6-31g** freq scrf(solvent=methanol) geom=allcheck
guess=read test


-----------------------------------------------
g09pbs.sh
#!/bin/bash
#PBS -S /bin/bash
#PBS -N g09
#PBS -j oe
#PBS -q Acb85
#pbs -l nodes=1:ppn=4
INPUT=xxx.gjf
OUTPUT=xxx.out
export g09root=/public/users/hg_chy
source $g09root/g09/bsd/g09.profile
export GAUSS_SCRDIR=/checkpoints/home/hg_chy/"$PBS_JOBNAME"."$PBS_JOBID"
[ -d $GAUSS_SCRDIR ] || mkdir -p $GAUSS_SCRDIR  
cd $PBS_O_WORKDIR
g09  <"$INPUT" > $OUTPUT
rm -rf /checkpoints/home/hg_chy/"$PBS_JOBNAME"."$PBS_JOBID"

# end g09pbs.sh
-------------------------------------------------------------------------------

myg09sh.zip

1.33 KB, 阅读权限: 30, 下载次数 Times of downloads: 7

以上文件压缩

评分 Rate

参与人数
Participants 3
威望 +1 eV +7 收起 理由
Reason
质谱飞 + 2 谢谢
sobereva + 1
978142355 + 5 赞!

查看全部评分 View all ratings

1552

帖子

2

威望

6241

eV
积分
7833

Level 6 (一方通行)

给dalao们倒茶

2#
发表于 Post on 2016-5-9 22:11:51 | 只看该作者 Only view this author
顶,鼓励支持一下。
淡泊以明志,宁静以致远。

294

帖子

0

威望

3528

eV
积分
3822

Level 5 (御坂)

3#
发表于 Post on 2016-5-10 08:00:08 | 只看该作者 Only view this author
好物,支持一下!

336

帖子

2

威望

4531

eV
积分
4907

Level 6 (一方通行)

4#
发表于 Post on 2016-5-10 09:00:04 | 只看该作者 Only view this author
ZINC批量算,这个事情好疯狂!

2

帖子

0

威望

9

eV
积分
11

Level 1 能力者

5#
发表于 Post on 2018-8-18 15:14:20 | 只看该作者 Only view this author
可以不能下载

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 18:41 , Processed in 1.013547 second(s), 31 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list