24小时热门版块排行榜    

查看: 3347  |  回复: 24

秋雨子

金虫 (小有名气)

[求助] homo和lumo批量提取的脚本

最近在弄一批分子,一万个左右 ,想提取其中的homo和lumo能量值,但是发现很难实现,因为才接触脚本半年,还是自学的,所以搞不定了,有哪位大侠给个小脚本?我只会一点shell,提取个Energy还行,homo和lumo不好提取,若可以分享一下不胜感激!
回复此楼
To the time to life, rather than to life in time
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

asaka

银虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★
zhou2009(金币+5): 2011-12-11 20:10:45
秋雨子(金币+20): 谢谢您的费心!只怪我学艺不精,只会shell!仍然非常感谢 2011-12-11 20:28:37
说一下我的想法啊:

首先用grep把有用的输出信息过滤一下:
一个是分割各个计算结果,免得把好几个计算的信息混在一起,
另外也是楼主要求的,只输出最后的结果,
另一个就是各个轨道能的数据。

然后把占据轨道的能级收集起来,取最大值,就是HOMO
以及把空轨道的能级收集起来,取最小值,就是LUMO
但是shell没有数学计算的功能,只好借用一下python命令
CODE:
#!/bin/sh
block='Population'
eigen='eigenvalues'
occst='occ'
virst='vir'
sepst='--'
for file in $*; do
  echo "File : $file"
  grep "\($block\|$eigen\)" $file > tmp
  while read line; do
    case $line in
      *$block*)
        eocc='' ;
        evir='' ;;
      *$occst*)
        data=`echo $line | sed "s/^.*$sepst\(.*\)$/\1/"` ;
        eocc=`echo $eocc $data` ;;
      *$virst*)
        data=`echo $line | sed "s/^.*$sepst\(.*\)$/\1/"` ;
        evir=`echo $evir $data` ;;
    esac
  done < tmp
  data=`echo $eocc | sed "s/ /,/g"`
  echo "  HOMO :" `python -c "print max($data)"`
  data=`echo $evir | sed "s/ /,/g"`
  echo "  LUMO :" `python -c "print min($data)"`
  rm tmp
done

以上程序需要bash和python就可以运行,测试LZ的文件,输出如下:
$ sh homolumo Row1.log
File : Row1.log
  HOMO : -0.40657
  LUMO : 0.13145
其中homolumo是上面shell的文件名。

当然楼主可能有其他类型的输出文件,
修改shell程序中部分的关键字和流程,应该可以应付其他情况。
block='Population' #不同计算间的分割行
eigen='eigenvalues' #包含轨道能级的输出行
occst='occ' #标记占据轨道的字符
virst='vir' #标记空轨道的字符
sepst='--' #分割信息和能级数据的字符

» 本帖已获得的红花(最新10朵)

9楼2011-12-09 04:13:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

asaka

银虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★
zhou2009(金币+5): 2011-12-11 20:11:12
上面的帖子不能修改。稍微修改了一下程序,
速度快一点,另外避免了数据多于255个时python出错的情况。
CODE:
#!/bin/sh
block='Population'
eigen='eigenvalues'
occst='occ'
virst='vir'
sepst='--'
for file in $*; do
  grep "\($block\|$eigen\)" $file > tmp
  while read line; do
    case $line in
      *$block*)
        eocc='' ;
        evir='' ;;
      *$occst*)
        data=`echo $line | sed "s/^.*$sepst//"` ;
        eocc="$eocc $data" ;;
      *$virst*)
        data=`echo $line | sed "s/^.*$sepst//"` ;
        evir="$evir $data" ;;
    esac
  done < tmp
  rm tmp
  echo "File : $file"
  data=`echo $eocc | sed "s/ /,/g"`
  [ ! -z "$data" ] && echo "  HOMO :" `python -c "print max(($data))"`
  data=`echo $evir | sed "s/ /,/g"`
  [ ! -z "$data" ] && echo "  LUMO :" `python -c "print min(($data))"`
done

10楼2011-12-09 06:02:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

秋雨子

金虫 (小有名气)

没有人回复呢 ?!
To the time to life, rather than to life in time
2楼2011-12-06 14:11:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

秋雨子

金虫 (小有名气)

3楼2011-12-07 11:23:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

abbott

金虫 (著名写手)

不要用QQ问我东西

★ ★
小红豆(金币+2): 感谢交流。 2011-12-14 18:07:53
你先贴一个样板文件,,,,
否则谁知道你要从什么文档中提取你要的东西啊.
Chemistry[]==[]Chem[]is[]try!!!
4楼2011-12-08 10:57:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ZDBWHZ

金虫 (正式写手)

最近不小心写了个shell脚本,也是纠结了好久才完成。
5楼2011-12-08 22:14:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

秋雨子

金虫 (小有名气)

引用回帖:
4楼: Originally posted by abbott at 2011-12-08 10:57:14:
你先贴一个样板文件,,,,
否则谁知道你要从什么文档中提取你要的东西啊.

谢谢提醒~,贴个输出文件,就是最简单的优化和频率计算,因为优化会计算好几圈,想提取最后一次优化的homo和lumo,但是找不到唯一区别的关键词,不知道说清楚没有,我是入门新手希望交流!

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : Row1.log
  • 2011-12-08 22:46:50, 2.38 M
To the time to life, rather than to life in time
6楼2011-12-08 22:46:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

秋雨子

金虫 (小有名气)

引用回帖:
5楼: Originally posted by ZDBWHZ at 2011-12-08 22:14:39:
最近不小心写了个shell脚本,也是纠结了好久才完成。

是提取homo,lumo的吗?可以分享下吗?我的shell几乎是自学的,写着很蹩脚,简单还行,复杂就不行了
To the time to life, rather than to life in time
7楼2011-12-08 22:49:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ZDBWHZ

金虫 (正式写手)

【答案】应助回帖

★ ★ ★
小红豆(金币+3): 感谢交流。 2011-12-14 18:08:11
fortran and shell,各有一个
8楼2011-12-08 23:14:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 秋雨子 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 IDs3scOF0tjC 2026-09-28 5/250 2026-09-29 13:50 by etmYJ6d2rquH
[教师之家] 某top大学教授说“能够在市场中兑现的能力才是真能力”无比同意! +8 zju2000 2026-09-26 9/450 2026-09-29 13:47 by ahsoarli
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 tqUTOxClQUMF 2026-09-28 3/150 2026-09-29 10:26 by JzYBbHIXWSrW
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 tqUTOxClQUMF 2026-09-28 3/150 2026-09-29 09:59 by JzYBbHIXWSrW
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +5 GDBe8tDZqE8z 2026-09-28 5/250 2026-09-29 09:52 by JzYBbHIXWSrW
[找工作] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +5 IDs3scOF0tjC 2026-09-28 5/250 2026-09-29 09:24 by JzYBbHIXWSrW
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 IDs3scOF0tjC 2026-09-28 6/300 2026-09-29 09:18 by JzYBbHIXWSrW
[考研] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 ZYXdhzDAy9ZX 2026-09-28 3/150 2026-09-29 06:42 by ZvyPK8n6Nfki
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 ZYXdhzDAy9ZX 2026-09-28 3/150 2026-09-29 06:34 by ZvyPK8n6Nfki
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 ZYXdhzDAy9ZX 2026-09-28 3/150 2026-09-29 06:18 by ZvyPK8n6Nfki
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 tqUTOxClQUMF 2026-09-28 3/150 2026-09-28 23:46 by b8fCuTHqckEt
[考研] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 GDBe8tDZqE8z 2026-09-28 3/150 2026-09-28 23:12 by b8fCuTHqckEt
[公派出国] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 IDs3scOF0tjC 2026-09-28 4/200 2026-09-28 22:55 by ez6fGg9abYaj
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 CfXuS1rDhLYN 2026-09-28 4/200 2026-09-28 22:55 by ez6fGg9abYaj
[有机交流] 同一个分子,一条来自文献,一条来自AI——不告诉你答案,你会选哪条? +3 tianxiaoxian 2026-09-28 6/300 2026-09-28 22:44 by tianxiaoxian
[找工作] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 IDs3scOF0tjC 2026-09-28 5/250 2026-09-28 22:32 by ez6fGg9abYaj
[博后之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 IDs3scOF0tjC 2026-09-28 3/150 2026-09-28 22:21 by ez6fGg9abYaj
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 IDs3scOF0tjC 2026-09-28 6/300 2026-09-28 22:15 by ez6fGg9abYaj
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 CfXuS1rDhLYN 2026-09-28 3/150 2026-09-28 19:08 by 9lS3ad5oOymn
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 IDs3scOF0tjC 2026-09-28 4/200 2026-09-28 18:51 by 9lS3ad5oOymn
信息提示
请填处理意见