计算化学公社

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

[Python] tBuFixer:更方便地处理叔丁基无序

[复制链接 Copy URL]

28

帖子

0

威望

852

eV
积分
880

Level 4 (黑子)

本帖最后由 yaonaite 于 2026-6-18 18:41 编辑

太长不看版:
在有机合成中,叔丁基是一种能够有效提高分子溶解性的基团。但在单晶解析过程中,叔丁基经常存在振动无序和转动无序,需要分PART并用DFIX命令处理。
由于这样的分子中往往有很多个叔丁基,这样的工作令人非常难绷,导致相关的工作者时常反思为什么要做出这种东西折磨自己。
本帖提供了两个python脚本,能够快速写出DFIX命令行和PART行。但是,仍然没有解决需要手动去找ins文件中原子编号的问题。
由于习惯,make_parts.py要求至少每一个叔丁基的四个原子的原子编号是相邻的。
理论部分受到了北京师范大学龚汉元教授的指导。

正文:
以下是连接在苯环上的叔丁基示例。字母代表的是对应的碳原子。在单晶数据中要处理其转动无序(表现为BCD围绕圆心拉长)时,应当处理B,C,D三个原子。
这就需要对于拆开的两组,各自:
1. 固定AB,AC,AD的距离
2. 固定BC,CD,BD的距离
3. 固定EB,EC,ED的距离(确保叔丁基是向外的伞状,而不是向内)
4. 设定A,B,C,D的位移参数一样(EADP命令)
在处理振动无序(表现为碳原子并非小球)时,或两种无序均存在时,则应当处理A,B,C,D,需要:
1. 固定AB,AC,AD的距离
2. 固定BC,CD,BD的距离
3. 固定EB,EC,ED的距离
4. 固定EA的距离
5. 固定AF,AG的距离
6. 设定A,B,C,D的位移参数一样


考虑到处理振动无序的方法包括了处理转动无序的方法,加上叔丁基总是不那么完美,本系列脚本是按照处理振动无序书写的。
使用方法及效果:
快速写出DFIX行的convert_tbu.py:
输入:工作文件夹D:\forrings中的一个或多个xxxtbu.txt,tbu不区分大小写
1 2 3 4 5 6 7(这里是其中一行,多行也是一样的格式:七个数字,中间以空格分隔,数字1-7分别对应上面的字母A-G。显然,BCD的顺序随意,FG的顺序随意)

输出:xxxtbuDFIX.txt,xxx与输入的文件名对应
DFIX 1.51 0.01 C1 C2 C1 C3 C1 C4
DFIX 2.55 0.02 C5 C2 C5 C3 C5 C4
DFIX 2.55 0.02 C2 C3 C3 C4 C4 C2
DFIX 1.51 0.01 C1 C5
DFIX 2.45 0.02 C1 C6 C1 C7
EADP C1 C2 C3 C4

DFIX 1.51 0.01 C1M C2N C1M C3P C1M C4Q
DFIX 2.55 0.02 C5 C2N C5 C3P C5 C4Q
DFIX 2.55 0.02 C2N C3P C3P C4Q C4Q C2N
DFIX 1.51 0.01 C1M C5
DFIX 2.45 0.02 C1M C6 C1M C7
EADP C1M C2N C3P C4Q

其中1M(对应数字1),2N(对应数字2),3P(对应数字3),4Q(对应数字4)最后的字母后缀应该被替换为A,B,D,E,以此类推直到K(为了避免混淆,跳过字母C)。具体用哪个字母规则如下:
对应的数字为0-99时,在数字后直接加A。如98对应98A,7对应7A,08对应08A。
对应的数字为100-199时,去掉百位数,并在最后加B。如197对应97B,107对应07B。
对应的数字为200-299时,去掉百位数,并在最后加D。如230对应30D,200对应00D。
对应的数字为300-399时,去掉百位数,并在最后加E。如330对应30E,300对应00E。
以此类推

快速写出PART行的make_parts.py:
输入:工作文件夹D:\forrings中的一组或多组xxx.ins和xxxtbu.txt,tbu不区分大小写
遵循的替换规则和上面的convert_tbu.py脚本一样。效果有点难以描述,示例如下:
AtBu.txt中的内容:
174 175 176 177 41 40 42
178 179 180 181 47 46 48
找到的A.ins中的第一部分内容:
C174  1   1.25950   0.64301  -0.19599  11.00000   0.04729   0.07225 =
       0.06351  -0.02934   0.01230   0.00664
C175  1   1.31970   0.59557  -0.19526  11.00000   0.05454   0.07831 =
       0.08676  -0.02665   0.02145   0.01430
C176  1   1.22776   0.66270  -0.25141  11.00000   0.06618   0.08657 =
       0.04887  -0.02123   0.01176   0.00327
C177  1   1.30258   0.69582  -0.19494  11.00000   0.06785   0.07114 =
       0.08564  -0.02951   0.00864  -0.01029
输出到AtbuPART.txt中的第一部分内容:
PART 1
C174  1   1.25950   0.64301  -0.19599  10.50000   0.04729   0.07225
       0.06351  -0.02934   0.01230   0.00664
C175  1   1.31970   0.59557  -0.19526  10.50000   0.05454   0.07831
       0.08676  -0.02665   0.02145   0.01430
C176  1   1.22776   0.66270  -0.25141  10.50000   0.06618   0.08657
       0.04887  -0.02123   0.01176   0.00327
C177  1   1.30258   0.69582  -0.19494  10.50000   0.06785   0.07114
       0.08564  -0.02951   0.00864  -0.01029

PART 2
C74B  1   1.25950   0.64301  -0.19599  10.50000   0.04729   0.07225
       0.06351  -0.02934   0.01230   0.00664
C75B  1   1.31970   0.59557  -0.19526  10.50000   0.05454   0.07831
       0.08676  -0.02665   0.02145   0.01430
C76B  1   1.22776   0.66270  -0.25141  10.50000   0.06618   0.08657
       0.04887  -0.02123   0.01176   0.00327
C77B  1   1.30258   0.69582  -0.19494  10.50000   0.06785   0.07114
       0.08564  -0.02951   0.00864  -0.01029

PART 0

找到的A.ins中的第二部分内容:
C178  1   0.87712   0.77529  -0.20690  11.00000   0.08084   0.09194 =
       0.03887  -0.00114  -0.00834   0.02938
C179  1   0.79240   0.79855  -0.20131  11.00000   0.07770   0.10874 =
       0.05925   0.00714  -0.01935   0.03552
C180  1   0.88899   0.74894  -0.24949  11.00000   0.21556   0.15305 =
       0.06189  -0.04328  -0.05313   0.10620
C181  1   0.94149   0.82759  -0.22534  11.00000   0.09611   0.12777 =
       0.09764   0.05193  -0.02212   0.01533
输出到AtbuPART.txt中的第二部分内容:
PART 1
C178  1   0.87712   0.77529  -0.20690  10.50000   0.08084   0.09194
       0.03887  -0.00114  -0.00834   0.02938
C179  1   0.79240   0.79855  -0.20131  10.50000   0.07770   0.10874
       0.05925   0.00714  -0.01935   0.03552
C180  1   0.88899   0.74894  -0.24949  10.50000   0.21556   0.15305
       0.06189  -0.04328  -0.05313   0.10620
C181  1   0.94149   0.82759  -0.22534  10.50000   0.09611   0.12777
       0.09764   0.05193  -0.02212   0.01533

PART 2
C78B  1   0.87712   0.77529  -0.20690  10.50000   0.08084   0.09194
       0.03887  -0.00114  -0.00834   0.02938
C79B  1   0.79240   0.79855  -0.20131  10.50000   0.07770   0.10874
       0.05925   0.00714  -0.01935   0.03552
C80B  1   0.88899   0.74894  -0.24949  10.50000   0.21556   0.15305
       0.06189  -0.04328  -0.05313   0.10620
C81B  1   0.94149   0.82759  -0.22534  10.50000   0.09611   0.12777
       0.09764   0.05193  -0.02212   0.01533

PART 0






convert_tbu.py

3.61 KB, 下载次数 Times of downloads: 0

make_parts.py

5.79 KB, 下载次数 Times of downloads: 0

评分 Rate

参与人数
Participants 2
eV +8 收起 理由
Reason
SharkYYX2025 + 3 不明觉厉
sobereva + 5

查看全部评分 View all ratings

本版积分规则 Credits rule

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

GMT+8, 2026-6-18 20:59 , Processed in 0.302958 second(s), 25 queries , Gzip On.

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