本帖最后由 Uus/pMeC6H4-/キ 于 2025-1-11 17:10 编辑
用matplotlib或gnuplot给VMD定义渐变色标尺 Defining gradient color scale for VMD using matplotlib or gnuplot Uus_pMeC6H4- | Init post 2025-01-08 / Last edit 2025-01-11
一、前言
If you're feeling lonely and you're still searching for your true friends, just look up in the sky. Who knows? Maybe you and your future best friends are all looking at the same rainbow.
1.9.3版VMD可绘制的颜色共有1057种,其中0-32号这33种为给定RGB的有名颜色,33-1056号这1024种为线性组合起中末三色RGB产生的渐变色,每种颜色的RGB值均由三个0到1的浮点数定义;颜色的定义可在VMD的Graphics - Colors窗口设置,或在VMD的命令行用colorinfo指令查询、color指令修改。目前仍在开发中的1.9.4版VMD扩展了颜色支持,可对比在此帖5楼和6楼展示的,分别对应于1.9.3版和1.9.4版颜色设置窗口的截图。
然而1.9.3版VMD因稳定性更佳仍广泛使用,此时内置的颜色略显不足,需要编写tcl脚本修改。比如,为使原子按元素着色,社长的在VMD中使用GaussView的元素着色的方法(http://sobereva.com/652)提供了gview_color.tcl以修改101-211号颜色,而slxc920113的VMD使用Jmol风格的颜色策略提供了JmolColor.tcl以修改101-195号颜色。又比如,为使蛋白质结构按原子序号着色,ene在在VMD中以PyMOL rainbow着色风格绘制蛋白质结构提供了pymol_rainbow.tcl(更新为rainbow_v2.tcl)以修改渐变色。
VMD内置的渐变色方案种类偏少,起中末三色选择仅限于红绿蓝白灰黑的几个搭配。另一个可视化程序OVITO虽然内置也不多,但亦可加载外部图像定义渐变色来扩展可能性。而且VMD混色模式的算法亦不合理,正如liyuanhe211在用 PyMOL 渲染 HSV 混色模式的 RDG 填色等值面图所言,VMD和PyMOL的线性加权平均混色模式会导致部分颜色显得暗、“污”,但PyMOL可定义任意多颜色节点来产生渐变色来间接解决,而VMD自己只能定义起中末三个。同样是RDG分析,欧拉角在[Quantum ESPRESSO] 固体和表面的非共价相互作用分析一帖采用的是VESTA按内置的彩虹渐变色方案绘制填色等值面,以及matplotlib用jet渐变色方案绘制散点图;VESTA可在Properties - Sections的Sections and slices区设置渐变色,内置方案总体也比VMD的明亮些。
本帖将介绍如何用matplotlib和gnuplot这两种常用科学绘图工具定义渐变色,载入VMD替换内置方案获得更好的绘制效果。相关脚本在下述文件包里已提供,后缀为.py的是python脚本,.gp的是gnuplot脚本。使用前放入VMD目录,这样方便在VMD的命令行找到执行脚本产生的文件。脚本是在Windows下写的,如果放到Linux系统下可能需要chmod添加权限和sed -i "s/\r$//"修改换行符等操作。
extcolor.zip
(2.28 KB, 下载次数 Times of downloads: 52)
|