计算化学公社

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

[辅助/分析程序] 绘制 Energy Profile 的小工具 2.0

  [复制链接 Copy URL]

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

本帖最后由 liyuanhe211 于 2018-2-15 02:09 编辑



######## UPDATE ########
本程序已更新3.0版本,见下文:
http://bbs.keinsci.com/thread-9256-1-1.html
######## UPDATE ########


######## UPDATE
########
2016.3.1 更新2.0:
增加自定义纵坐标文字
增加了拖动数值的功能,解决数值overlap
解决了原有负数区域Tag拖动后消失的Bug(Matplotlib库的问题)
具体情况与新下载地址见本文末尾
######## UPDATE ########

-----------------------------------------------------------  原文↓ -----------------------------------------------------------
火车上闲得无聊,用 Python+PyQt5+matplotlib 写了一个给自己用的、绘制能量折线图(Energy Profile)的小工具,可以做出如下的图。
在群里显摆了一下,竟然有很多人想要,以及发现有至少4人竟然一直用 ChemDraw+鼠标+眼 来做类似的图。。。故编译成 exe 传上来(python本身不需要编译,但源码运行需要用户安装python和相应库)。


导出的图片:

这组数据是本组之前一篇文章里的数据(10.1038/ncomms9617),稍微调一调,放到ChemDraw里画上结构,估计可以达到发表的标准,原文中的图如下:


(P.S. 个人十分讨厌 kCal/mol 这个非 SI 非 au 单位)


使用方法:
下载后解压缩,可得到3个文件夹。exe 是 ./Packed/Draw_Energy_Diagram.exe, 源码在SourceCode文件夹里, Example里有一些实例。


程序界面如下,读取的输入是 excel 文件(内容下文说),可以用 Load 按钮打开,或者直接拖到 Drop Area 里。

随后就会显示对应的图片。可以通过缩放窗口、或使用放大镜工具调整图片的范围和长宽比。按保存可以将当前状态存为多种图片文件(推荐png)


下面是对应于上图的 excel 输入:


  1. 1~2行(可以是任意多行):
  2.                A列为颜色声明(K: 黑色,R: 红色,其他代码见下),指认该行的颜色。
  3.                B,C,D...为各路径的能量。

  4. 3行:
  5.                一个空行(分割数据部分和Tag部分)

  6. 4~5行(行数与数据部分对应):
  7.                数据部分,每个态对应的tag
复制代码


这种输入格式其实有点奇怪,因为它其实是我的另一个程序的输出格式。。。

支持的颜色表达如下(实际上是Matplotlib所支持的颜色 http://matplotlib.org/api/colors_api.html

  1. #DDEEFF: Arbitrary RGB Color
  2. b: blue
  3. g: green
  4. r: red
  5. c: cyan
  6. m: magenta
  7. y: yellow
  8. k: black
  9. w: white (这个显示不出来。。。)
复制代码



保存为png后,可以直接用ChemDraw打开,随后开始在图上绘制分子结构:

5 Example From Article.cdx (97 KB, 下载次数 Times of downloads: 32)


  • 疑问与反馈

这个程序初衷是个自用软件,没想发布,可能有其他Bug。有问题请先看Example。之后可直接在本帖反馈,反馈时上传自己的Excel文件


  • 已知的Bug:

当两个Tag几乎完全重合时,用鼠标拖动会同时拖动两个Tag。暂时可以放大后、脱开、再缩小;或直接把两个Tag都拖到一边,画图里删了它自己加两个。暂时没想到特别好的解决方法。


如下图,有些时候Tag之间会相互重叠,用鼠标可以拖动Tag调整位置。

(然而,调整位置这个功能本身也有bug,如果 Tag 对应的值是负数Tag拖动之后会消失 (╯﹏╰)b,就变成本帖第一张图的样子了,这是 Matplotlib 库本身的问题,不知如何解决。在正数区域是正常的,如上图显示不同颜色的例子中就是拖动过的。)
有类似情况请自行在ChemDraw等软件里补上几个Tag


################################ UPDATE ################################



2016.3.1,2.0版本新增:

  • 解决了上面的Bug

  • 现在可以拖动数值Tag以解决能级接近时,数值 Tag overlap的问题;同时解决有人希望将数值放在能级线 左边/右边/下边。。。



  • 可以定义纵坐标内容,在程序目录下,有一文本文件 Energy_Diagram_Y_Axis_Text.txt,修改其中的文字即可显示在Y轴上


######## UPDATE ########
下方地址已失效,本程序已更新3.0版本,见下文:
http://bbs.keinsci.com/thread-9256-1-1.html
######## UPDATE ########






评分 Rate

参与人数
Participants 49
威望 +1 eV +198 收起 理由
Reason
TIMELY + 4 好物!
renling + 3 谢谢
zhouxiaoke + 3 好物!
SYX_500241 + 3 赞!
小鳟鱼 + 3 赞!
AlanWang + 5 好物!
Lixiaolong + 2 好物!
tsgyls + 4 谢谢分享
波比牛提提 + 4 谢谢
Aridea + 5 好物!
胡小样 + 2 谢谢分享
dan_kuai + 3 谢谢分享! 新手会员坐标北美, 有什么办法可.
Maxwell2020 + 1 非常实用!
阿蝉na + 3 谢谢
xxu若白 + 4 牛!
shiru + 4 好物!
bychenpku + 5 赞!
米宝舞 + 5 谢谢
cottondog + 5 谢谢分享
张雅琴 + 5 谢谢

查看全部评分 View all ratings

5

帖子

0

威望

20

eV
积分
25

Level 2 能力者

88#
发表于 Post on 2024-11-11 21:29:58 | 只看该作者 Only view this author
感谢分享!

16

帖子

0

威望

9

eV
积分
25

Level 2 能力者

87#
发表于 Post on 2022-4-17 13:22:43 | 只看该作者 Only view this author
感谢分享,最近一直在找

1

帖子

0

威望

42

eV
积分
43

Level 2 能力者

86#
发表于 Post on 2021-6-4 20:05:06 | 只看该作者 Only view this author
感谢!

6

帖子

0

威望

47

eV
积分
53

Level 2 能力者

85#
发表于 Post on 2021-5-15 11:15:22 | 只看该作者 Only view this author

4

帖子

0

威望

29

eV
积分
33

Level 2 能力者

84#
发表于 Post on 2021-4-16 15:28:55 | 只看该作者 Only view this author
太赞了

43

帖子

0

威望

1168

eV
积分
1211

Level 4 (黑子)

83#
发表于 Post on 2019-5-10 11:03:40 | 只看该作者 Only view this author
liyuanhe211 发表于 2019-5-10 10:31
一个势能面上各个态的原子数必须是一样的,如果不一样应该配平,比如这里CP3之前其实应该相当于每一个态 ...

好的 谢谢你

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

82#
 楼主 Author| 发表于 Post on 2019-5-10 10:31:36 | 只看该作者 Only view this author
哈哈哈 发表于 2019-5-10 08:52
老师,我有个小问题想问问你怎么处理的:示例中CP3是TS2的产物,从TS2走IRC得到CP3,从而可以计算一个CP3的 ...

一个势能面上各个态的原子数必须是一样的,如果不一样应该配平,比如这里CP3之前其实应该相当于每一个态都加上一个孤立的化合物9的能量。

在考虑上述问题的基础上,如果CP3-0的自由能比CP3高,则只画CP3,否则,如果画的开/差的多,两个都画上,这说明CP3与PPh3会形成稳定的复合物,CP3-0单独画成一个态是合理的;如果CP3-0比CP3低,并且只能画下一个,只画CP3-0,因为下一步的活化自由能是从稳定的复合物开始算的。

43

帖子

0

威望

1168

eV
积分
1211

Level 4 (黑子)

81#
发表于 Post on 2019-5-10 08:52:59 | 只看该作者 Only view this author
老师,我有个小问题想问问你怎么处理的:示例中CP3是TS2的产物,从TS2走IRC得到CP3,从而可以计算一个CP3的能量。TS3走IRC得到其相应的反应物(以CP3-0表示吧),也可以计算其相应的能量。由于加了9,那么CP3-0和CP3体系的原子数不同能量变化应该有点大,想问这里是怎么处理的将CP3-0和CP3最终以CP3表示(体系原子数不同,怎么合并的。我做的也涉及到这个,我想做一个总的图,但会涉及原子数不同和催化的环境不同,不知道怎么合并合适)?谢谢哈

72

帖子

0

威望

400

eV
积分
472

Level 3 能力者

80#
发表于 Post on 2017-10-31 19:45:18 | 只看该作者 Only view this author
您好,我在edit修改width的时候,只有一个横线变了,其他的为啥不变化,谢谢

26

帖子

1

威望

494

eV
积分
540

Level 4 (黑子)

79#
发表于 Post on 2017-9-10 12:08:34 | 只看该作者 Only view this author
学习了,谢谢

201

帖子

2

威望

1354

eV
积分
1595

Level 5 (御坂)

78#
发表于 Post on 2017-9-8 19:23:55 | 只看该作者 Only view this author
刚好需要,看到此帖.
谢谢

55

帖子

0

威望

1197

eV
积分
1252

Level 4 (黑子)

77#
发表于 Post on 2017-9-8 18:03:10 | 只看该作者 Only view this author
多谢楼主,非常实用。
我最近一直在用的是MagicPlot这个软件,有学术版本,免费的,用起来也很容易,也推荐一下。

362

帖子

1

威望

4368

eV
积分
4750

Level 6 (一方通行)

76#
发表于 Post on 2017-9-8 06:14:53 | 只看该作者 Only view this author
awesome

44

帖子

0

威望

392

eV
积分
436

Level 3 能力者

75#
发表于 Post on 2017-9-2 17:42:21 | 只看该作者 Only view this author
老师您好,这个下载链接打不开了。

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

GMT+8, 2024-11-23 15:10 , Processed in 0.218338 second(s), 32 queries , Gzip On.

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