计算化学公社

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

[建模与可视化] EasyCurling:构建环状/管状结构的轻量化工具

[复制链接 Copy URL]

84

帖子

1

威望

1672

eV
积分
1776

Level 5 (御坂)

吃猫咪的鱼

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 imasen 于 2025-4-21 12:44 编辑

大家好,本贴向大家分享一个近期完成的小工具 —— EasyCurling。它可以将任意可重复的分子结构或晶胞结构进行复制和空间卷曲,从而快速构建出各类环状、管状周期性结构


以环对苯撑的构建为例展示一下使用方法。输入的结构单元有两种形式:1.提供至少一个完整单元,并且两端需要保留环状结构中重复位置的原子(例如6,11),用于最后的缝合。2.提供至少一个完整单元,两端不需要保留重复原子(11),但需要提供两端距离最远的非重复原子(例如6,3)在环状结构中的间距(1.35埃),这种情况更适合非共价键连接的情况。对于环对苯撑提供的片段如下:


启动EasyCurling.exe,依次输入:
path\CPP.xyz  ||输入原始 .xyz 文件路径
6,11  ||输入卷曲方向上距离最远的两个原子序号
1,3,5  ||定义平面(面向旋转中心的面)的三个原子序号
回车  ||定义从卷曲中心向外的方向的两个原子序号,如果是平面分子或是没有区分内外的必要,键入enter跳过
6  ||单元左端重复的原子序号,对于无重复原子的情况,键入enter跳过
11  ||单元右端重复的原子序号
12  ||设置重复单元数,取1时可对长链分子进行卷曲
1  ||选择卷曲类型:1 表示刚性卷曲(即不对结构做变换,直接复制并旋转),2 表示柔性卷曲(按重复单元数分配扇形区间,并对结构进行扇形变形)
q  ||输入其他的重复单元数,或输入'q'退出

运行完成后,EasyCurling.exe目录下会产生一个CPP_n12.xyz的结构文件。可以以[12]环对苯撑为单元,产生更加复杂的超分子化学结构,如下:


下面展示几个其他的构建环状/管状结构的典型例子:


碳纳米管的构建,同一个输入结构,选择不同的卷曲方向和缝合原子可以得到不同类型的碳纳米管。构建纯碳的纳米管有许多更方便的程序如NanotubeModeler等,如果碳管上有修饰本程序将更具优势。


环状多肽的构建。需要注意的是使用柔性卷曲时,由于会对结构进行扇形变形,如果你的结构的径向厚度不显著小于环状结构的半径,那么环内外两侧的化学键会出现不同程度缩短和拉长,可能造成结构的不合理。所以在构建较小的环肽时,建议用甘氨酸这种无侧基的氨基酸先构建骨架,然后再手动添加侧基。


无机纳米环/管的构建。对温石棉的结构单元,可分别构建Mg在内侧和Si在内侧的两种环状结构。对晶胞进行一维的扩展后,还可以构建纳米管结构。

为了避免处理同一个结构时,每次打开程序都要重复输入,examples文件夹下还提供了几个利用bat批处理脚本运行EasyCurling的例子。用户在第一次运行后记录下相关输入,后面都可以通过bat脚本运行。上面的例子均提供了输入文件,部分提供了bat脚本,用户可以根据脚本中的输入内容自己操作。

欢迎各位试用,提供反馈意见和建议。


评分 Rate

参与人数
Participants 10
eV +46 收起 理由
Reason
zjm123456 + 4 精品内容
北大-陶豫 + 5 好物!
sobereva + 8
zsu007 + 5 好物!
含光君 + 5 牛!
xsc6 + 5 谢谢
lll123 + 3 好物!
zjxitcc + 3
Graphite + 5 好物!
Uus/pMeC6H4-/キ + 3 谢谢分享

查看全部评分 View all ratings

880

帖子

3

威望

1662

eV
积分
2602

Level 5 (御坂)

傻傻的木瓜

2#
发表于 Post on 2025-4-20 10:43:04 | 只看该作者 Only view this author
这个也是python写完pyinstaller打包产生的可执行文件么?比起工具本身可能我更想知道代码的设计思路、编写方法,方便介绍一二不?

(如果“近期”是指在回答那个三维稠合环建模的帖子以来,那实在是高效啊)
√546=23.36664289109

84

帖子

1

威望

1672

eV
积分
1776

Level 5 (御坂)

吃猫咪的鱼

3#
 楼主 Author| 发表于 Post on 2025-4-20 18:11:20 | 只看该作者 Only view this author
本帖最后由 imasen 于 2025-4-20 18:12 编辑
Uus/pMeC6H4-/キ 发表于 2025-4-20 10:43
这个也是python写完pyinstaller打包产生的可执行文件么?比起工具本身可能我更想知道代码的设计思路、编写 ...

核心代码用nuitka转c编译成pyd文件后,再用pyinstaller打包的。
程序整体的思路是:
  • 根据重复单元数n和分子长度d计算环的周长和半径r,然后调整朝向把整个分子放置到x=r,z=0这条直线上。
  • 对单个单元按照2*pi/n的弧度进行卷曲。
  • 复制并旋转。

这个程序体量很小,完整代码也就两百来行,写得很快,输入菜单都交给chatGPT写的。上面的步骤2原理和相关代码放在下面。
  1. x_vals = coords[:, 0].copy()
  2. y_vals = coords[:, 1].copy()
  3. angles = (2 * np.pi / n) * (y_vals / d)
  4. coords[:, 0] = x_vals * np.cos(angles)
  5. coords[:, 1] = x_vals * np.sin(angles)
复制代码

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
Uus/pMeC6H4-/キ + 2 谢谢

查看全部评分 View all ratings

124

帖子

0

威望

2904

eV
积分
3028

Level 5 (御坂)

4#
发表于 Post on 2025-5-12 15:47:15 | 只看该作者 Only view this author
本帖最后由 苏玖染 于 2025-5-12 15:52 编辑

您好!如果我想把纤维素分子晶体操作成管状,需要定义很多连接键,可以实现吗?

84

帖子

1

威望

1672

eV
积分
1776

Level 5 (御坂)

吃猫咪的鱼

5#
 楼主 Author| 发表于 Post on 2025-5-12 17:16:43 | 只看该作者 Only view this author
苏玖染 发表于 2025-5-12 15:47
您好!如果我想把纤维素分子晶体操作成管状,需要定义很多连接键,可以实现吗?

你可以尝试先用单胞卷成环,然后再加上pbc,用gaussview延长成管,这样会简单点。

124

帖子

0

威望

2904

eV
积分
3028

Level 5 (御坂)

6#
发表于 Post on 2025-5-13 11:09:27 | 只看该作者 Only view this author
imasen 发表于 2025-5-12 17:16
你可以尝试先用单胞卷成环,然后再加上pbc,用gaussview延长成管,这样会简单点。

好的,非常感谢

219

帖子

0

威望

3614

eV
积分
3833

Level 5 (御坂)

7#
发表于 Post on 2025-7-18 11:13:16 | 只看该作者 Only view this author
如果能有把类似噻吩分子结构的重复单元2、5与3、4缝合或2、4与3、5卷成锥管的功能就好了。

84

帖子

1

威望

1672

eV
积分
1776

Level 5 (御坂)

吃猫咪的鱼

8#
 楼主 Author| 发表于 Post on 2025-7-18 17:55:22 | 只看该作者 Only view this author
hzfish 发表于 2025-7-18 11:13
如果能有把类似噻吩分子结构的重复单元2、5与3、4缝合或2、4与3、5卷成锥管的功能就好了。

有卷曲完的结构参考一下么?

219

帖子

0

威望

3614

eV
积分
3833

Level 5 (御坂)

9#
发表于 Post on 2025-7-18 20:38:53 | 只看该作者 Only view this author
imasen 发表于 2025-7-18 17:55
有卷曲完的结构参考一下么?

重复单位和卷好的两种结构的xyz文件见附件。

thiophene.xyz

362 Bytes, 下载次数 Times of downloads: 1

thiophene_n4.xyz

988 Bytes, 下载次数 Times of downloads: 2

thiophene2_n4.xyz

1.12 KB, 下载次数 Times of downloads: 2

本版积分规则 Credits rule

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

GMT+8, 2025-8-12 18:14 , Processed in 0.178578 second(s), 25 queries , Gzip On.

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