首页 >> 仿真软件说明 >>VMD >>1.9.3手册 >> 6.1渲染方法
详细内容

6.1渲染方法

时间:2025-06-14     作者:邱新龙翻译【转载】   来自:vmd手册   阅读

所有不同的渲染方法都有不同的参数,这些参数决定了它们的绘制方式。对于每种方法,图形窗口中都有修改相关参数的控件,例如线宽和球面分辨率(图形控件将在5.4.7节中描述)。表6.1列出了可用的呈现方法,下面的部分描述了这些方法和修改其外观的参数。

 

Lines

默认的表示是“线条”,也被称为“线框”。它在每个原子和它所连接的原子之间画一条线。两个原子都要被选中,才能形成键。每个键的前半部分对应第一个原子的颜色,而后半部分对应第二个原子的颜色。线条表示的唯一参数是线条厚度。

 

Bonds

这个选项几乎和“线”一样[§6.1.1],除了在两个原子之间画的不是一条线,而是一个圆柱体。更具体地说,它绘制了一个n面棱镜,其中边的数量由图形窗口[§5.4.7]中的键分辨率控件决定,半径由键半径的值给定,单位为埃。如果半径或边数太小,键就会被画成直线。

为了微调键表示,VMD对棱镜进行了少量的欺骗。也就是说,想象两个中空的圆柱体靠在一起,一个圆柱体表面的中心与另一个圆柱体表面的中心处于相同的位置。同样假设这两个圆柱体以90度相交。虽然这两个圆柱体中的大部分会重叠,但在它们的交叉处会出现间隙。

为了纠正这个问题,VMD稍微延长两个气缸,使远端接触。

如果仔细观察,会产生更多的重叠,但它比缺口好看得多。

当三个或更多键在一个原子上连接时,VMD选择编号最低的键,并扩展所有其他键以与该原子相遇。然后它延伸最低编号的键与第二低编号的键相遇。

 

DynamicBonds

DynamicBonds表示将自动执行基于距离的键搜索活动原子选择和活动轨迹框架。该表示不执行上述常规“bond”[§6.1.2]表示的端点固定过程。相反,它打算与“VDW”[§6.1.6]表示一起使用,以显示在轨迹过程中正在创建和破坏的键。如果原子在彼此的距离截止范围内,就会形成键。

 

HBonds

如果两个原子之间可能存在氢键,那么“HBonds”表示法会在它们之间画一条虚线。一个可能的氢键由以下标准定义:

给定一个与氢原子H成键的原子D和一个没有与D成键的原子a,在a和H之间存在一个氢键,其距离为||D- a || < dist,角度为D-H- a < ang,其中ang和dist由用户定义。

 

只搜索选定的原子,因此必须同时选择供体和受体才能形成键。另外,您会注意到上面的代码没有检查供体或受体的原子类型;唯一的标准是它是否有一个氢。

当前实现的一个缺点是,它对选定的原子进行n2搜索,所以你可能不想显示一个非常大的结构的所有h键。在未来版本的VMD中寻找性能改进。

如果您选择了HBonds表示,但没有看到任何氢键,这可能是因为VMD中默认的角度切断和距离切断标准太小,因此您可能希望尝试将角度值从20度增加到30度,将距离值从3度增加到4度。

hbond被绘制为给定宽度的虚线。默认的线厚是1,但你可能应该增加到2。在大多数sgi上,您不能将其设置得比这更宽,正如联机宽度的手册页所描述的那样。键的颜色与受体的颜色相对应。

 

Points

“点”将每个原子画为一个点,而不画任何化学键。这个选项在渲染包含数百万原子的非常大的分子时非常有用,特别是在渲染水或其他不需要几何细节的结构时。点的大小可以改变。当VMD渲染模式设置为GLSL时,点表示将以大小与size参数成比例的方式渲染填充空间的球体,其性能与其他渲染模式下绘制的非阴影点相当。

 

VDW

“VDW”将原子绘制成球体。使用的球体尺度是范德华半径乘以用户可选择的缩放因子。

当使用渲染模式和只能绘制多边形几何的外部渲染工具时,球体分辨率决定了绘制球体的精细程度。多边形球体渲染的性能与镶嵌成三角形所产生的三角形数量成反比。每个球体的三角形数量随球体分辨率参数值的平方成比例地变化。对于GLSL等渲染模式,以及可以直接表示球体和其他二次曲面的外部渲染工具,球体分辨率参数没有影响。

注意:由于原子命名约定的变化,在极少数情况下VMD可能不正确地将VDW半径分配给特定原子,因为VMD根据构成其名称的第一个字母确定每种原子类型。例如,VMD会假设一个名为“HG”的原子是氢而不是汞。如果发生这种情况,你总是可以自由地重新定义半径,使用类似下面的语法:

 

set sel [atomselect top ‘‘name HG’’]

$sel set radius 1.9

 

CPK

“CPK”是“Bonds”[§6.1.2]和“VDW”[§6.1.6]的结合,因为它将原子绘制为球体,将键绘制为圆柱体。分辨率和半径可以独立修改。

CPK模式下绘制的球体的大小默认是按比例缩小的VDW半径,但是这个比例因子可以通过调整sphere Scale参数来改变。因为球体是为每个原子绘制的,所以它总是比“VDW”选项慢。如果一个球体或键的半径太小,它们将不会被绘制出来。

 

Licorice

“Licorice”把原子画成球体,把键画成圆柱体。这与“CPK”[§6.1.7]的区别在于球体半径是不可控制的;相反,它被做成和键一样的大小。这是一个漂亮的,平滑的过渡,是最常用的表示之一。

对于大分子,反应可能相当缓慢。

 

Polyhedra

“Polyhedra”绘制一组三角形,这些三角形连接用户定义半径内的所有三组原子。这通常与特定的原子选择相结合,用于非晶硅纳米器件结构的可视化等。目前,对所有候选原子采用单一原子选择,只有半径参数可以修改。

 

Trace

这种表示方式在很大程度上适用于构造“管子”的过程[§6.1.11]。最后,将连续残基的α -碳原子用宽度可调的圆柱形节段连接起来。在核酸的例子中,连接的是P主链原子。

一如既往,这些片段是根据它们所关联的原子来着色的。如果圆柱体半径为0.00,则圆柱体段替换为直线。

注意:Trace选项对于只看Cα坐标和残基名称的人进行线程或蛋白质折叠工作是有用的,因为这样他们就不必构建必要的侧链来查看其结构。此外,研究聚合物的人可以通过将PDB文件中的所有内容命名为“CA”,然后使用Trace来伪造它们的结构。

 

Tube

有两种方法来绘制“管”表示,一种是蛋白质,另一种是核酸。蛋白质管是通过选定的Cα位置的光滑曲线,核酸管是通过主磷酸盐的光滑曲线。

蛋白质管是一条样条曲线,它穿过蛋白质片段中所有的Cα原子。

沿曲线找到5个均匀间隔的插值点,将连接两个Cα原子的曲线分成6个线段。如果选择了第一个Cα,则前三个部分使用分配给该Cα的颜色着色。如果选择了第二个Cα,则最后三个片段用第二个Cα的颜色着色。核酸管以同样的方式构造,只是使用了磷酸原子。

这两个控件设置样条半径和分辨率,具有与‘ Bond ’[§6.1.2]控件相同的含义。但是,如果键的半径变为0或分辨率为2或更小,则样条被绘制为一条简单的线。这使得移动和旋转图像更快。

通过点击与该原子相关的六个管段的中间附近,可以用鼠标选择定义管的Cα。

 

Ribbons

“带状”表示类似于“管”[§6.1.11],因为它遵循相同的样条曲线的蛋白质和核酸。然而,它使用额外的信息(蛋白质主链的O或核酸的一些磷酸氧)来找到绘制定向带的法线。(核酸的条带定义可能存在一些问题,因为核酸检测常规可能将残基标记为核酸,即使它不含磷酸氧。)给定每个原子的坐标和条带向量的偏移向量,绘图代码将找到条带顶部和底部的样条曲线。两条样条由三角形连接,两条样条都绘制成小管。与“Tube”表示一样,用分配给该原子的颜色绘制离给定原子最近的六个带段,可以通过单击这六个元素中心附近的原子来选择该原子。

键半径和分辨率修改了构成彩带顶部和底部的管子。如果半径或分辨率太小,则不会绘制管(这会大大加快绘制时间)。宽度控制丝带的宽度,使它看起来像任何东西,从粉丝到千层面。另外,糖是用三角形填充的。这有助于突出皱纹。

感谢Ethan Merrit从Raster3D中提取的色带绘制算法。

 

NewRibbons

“NewRibbons”表示类似于“Tube”[§6.1.11],因为它遵循蛋白质和核酸的样条曲线。然而,它使用额外的信息(蛋白质主链的O或核酸的一些磷酸氧)来找到绘制定向带的法线。(核酸的条带定义可能存在一些问题,因为核酸检测常规可能将残基标记为核酸,即使它不含磷酸氧。)NewRibbons表示使用alpha carbon作为定义带状主干的样条的控制点。该条带是通过沿着样条的长度挤出一个二维横截面来绘制的,通过参考蛋白质主链上氧的位置来定位它。与“Tube”表示一样,用分配给该原子的颜色绘制离给定原子最近的六个带段,可以通过单击这六个元素中心附近的原子来选择该原子。

宽高比参数控制带相对于厚度值的宽度,作为一个乘法因子。宽高比为1.0会产生类似于tube的表示。分辨率参数控制色带表面用三角形镶嵌的程度。更高的设置会以牺牲交互渲染性能为代价产生更好看的图像。通过改变样条样式的值,点可以用Catmull Rom或b样条插值。请注意,b样条并不总是通过Cα位置,因为它是一个更平滑的样条。

 

Cartoon

“卡通”选项根据蛋白质的二级结构生成蛋白质的简化表示。螺旋被绘制成圆柱体,β片被绘制成实心带,所有其他结构(线圈和匝)被绘制成管状。如果二级结构尚未确定,则由STRIDE程序自动计算。

通过沿螺旋的Cα原子坐标寻找最小二乘线性拟合来构造螺旋圆柱体。如果选择给定的残差Cα,则绘制小圆柱体(沿最佳拟合线线性插值找到),半径由半径参数确定。

因为这种方法计算的是最佳拟合,所以在绘制螺旋之前,螺旋必须至少有3个残基(那些有一个或两个残基的螺旋被绘制为线圈)。可以为每个柱面段选择Cα,但它们位于Cα的位置,而Cα不在轴柱面附近。

当整个蛋白质被定义为螺旋状并画成卡通时,会出现有趣的结果。

实心beta色带是通过沿每个beta片渣之间的中心点建立样条来构造的。同样,样条被线性插值以找到每个残差的起点和终点。这些被扩展以构造具有矩形横截面的色带的角(扩展的数量由厚度参数确定)。如果选择了相应的Cα原子,则使用带状段。请注意,由于该方法假设蛋白质为β构象,因此它绘制的条带比标准的“带状”[§6.1.12]选项更平滑,后者沿着薄片绘制带振荡。

其他构象画成管状。由于螺旋圆柱体和卡通片的端点不在c - α坐标上,因此对管的方法进行了轻微的更改,使管到达新的位置。这并不总是工作,导致管不完全连接到一个圆柱体。

 

NewCartoon

“NewCartoon”表示是原始“Cartoon”的变体,结合了“NewRibbons”表示的外观和特征。原始“卡通”表示法和“新卡通”表示法之间的主要区别在于,螺旋留在带状表示法中,这种表示法比原始“卡通”中使用的直圆柱体更精确地遵循弯曲结构。

宽高比参数控制带相对于厚度值的宽度,作为一个乘法因子。宽高比为1.0会产生类似于tube的表示。分辨率参数控制色带表面用三角形镶嵌的程度。更高的设置会以牺牲交互渲染性能为代价产生更好看的图像。通过改变样条样式的值,点可以用Catmull Rom或b样条插值。请注意,b样条并不总是通过Cα位置,因为它是一个更平滑的样条。

 

PaperChain

“纸链”表示通过遍历分子拓扑找到所有的环,达到用户定义的最大尺寸,然后通过将一个多面体拟合到所涉及的原子和环质心来渲染每个环。这些环被绘制成具有用户控制高度的双金字塔。这些环是通过褶皱来着色的,使用克雷默-波普尔褶皱振幅,这是为所有三个原子或更大的环所定义的。

 

Twister

“Twister”表示用一个平坦的条带来追踪糖苷键,该条带根据连续糖残基的相对方向扭曲。这个概念类似于VMD用于蛋白质的熟悉的带状表示。连接定向环的路径由细带连接,用户可调节宽度和厚度,并具有可调节的几何分辨率,并且表示处理分支结构。

 

QuickSurf

“QuickSurf”表示计算从每个晶格点附近的原子或粒子计算的体积高斯密度图中提取的等值面[33,34,14,35,43,26,36]。密度图生成算法在一个均匀间隔的三维网格上累积高斯密度,该网格定义在一个足够大的边界框内,以包含所有被选择作为渲染表面的一部分的原子或粒子;在体积的边缘有足够的填充确保提取的表面不会被剪掉。密度图生成算法满足

image.png

其中密度ρ在~ r位置通过对所有N原子求和来求值。每个原子i位于~ ri位置,并有一个相关的加权因子α,该加权因子是通过将其半径乘以用户定义的加权因子和自定义可视化的缩放因子来确定的,以产生具有用户定义的适当细节级别的表面。

QuickSurf表示包括几个修改Eq. 6.1参数的控件,以生成满足所需空间保真度和交互渲染性能的表面。

•Resolution-一个整体空间分辨率近似滑块,自动设置以下详细参数的值

•Radius Scale-半径缩放因子应用于所有原子之前计算他们的密度地图贡献

•Density Isovalue -密度等值使用时提取生成的等值面

•Grid Spacing-密度地图均匀晶格间距参数。

•Surface Quality-在每个晶格点附近收集原子或粒子的高斯密度贡献时使用的最大截止距离

影响QuickSurf表示交互计算和显示性能的因素有很多。QuickSurf算法的CPU版本是多线程的,但是由于与CPU内核相关的潜在内存使用,算法使用的CPU内核数量可能被限制到最多8个,对于接近1 GB大小的密度映射卷,或者更大,算法可能会将使用的CPU内核数量减少到4个或更少,以防止在运行时发生内存不足的情况。

在配备适当GPU硬件的机器上,QuickSurf表示将使用GPU加速实现,其运行速度比CPU版本快一到两个数量级。GPU算法的速度在一定程度上取决于目标GPU的内存容量,因为大于GPU容量的密度图必须在多个通道中计算。

 

Surf

这个选项使用Amitabh Varshney在北卡罗来纳大学时编写的分子表面求解器。当使用此选项时,半径和坐标被写入临时文件,并以探测半径作为参数运行‘ surf ’可执行文件。完成后,输出被写入另一个临时文件,然后由VMD读取,并显示颜色。测头半径的大小受球体半径的控制,这与测头在˚A中的尺寸相同。

•Probe Radius-用于构建分子表面的探针半径

•Representation Method-表面可以选择使用直线而不是实心三角形绘制

 

对于有几百个原子的系统,这个表面在生成和显示上都相当慢。SURF计算非常精确,即使在不需要的时候也会显示完整的细节。磁盘空间作为进程间通信媒介的使用占用了大约一半的运行时间。

有一个环境变量[§14.2]会影响Surf显示选项:

•SURF BIN - SURF二进制文件的位置(默认为vmd启动脚本中定义的SURF $ARCH)

在构造表面时,一个有用的技巧是明智地使用图形窗口上的“自动应用更改”切换按钮。也就是说,由于表面通常需要很长时间来构建,因此改变探测半径等观察参数可能会导致长时间的延迟。默认情况下,每次点击探测半径按钮时,VMD都会重建表面。如果您想将探测半径减小或扩大几个增量,那么您最终将多次重建表面。

通过切换上述按钮,您可以强制VMD仅对您的命令进行更新。

这个技巧有时对其他表示也很有用。

要获得更快的表面渲染方法,请参见“MSMS”[§6.1.20]的描述。“QuickSurf”[§6.1.18]。

 

MSMS

另一个分子表面渲染器是“MSMS”,这是一个由奥尔森在斯克里普斯实验室的迈克尔·桑纳编写的程序。这个程序比Surf快得多,根据如何使用它可能是一个更好的选择。详见http://www.scripps.edu/pub/olson-web/people/sanner/html/msms home.html网页。可用选项包括

•Which Atoms——表面应该是选择(0)的,还是选择对所有原子表面的贡献?(1)

•Sample Density-表面上的三角形密度(典型值是1.0的分子超过一千个原子和3.0的小分子)

•Probe Radius-探针半径用于构建分子表面•表示方法-表面可以选择使用线而不是实心三角形绘制。有一个环境变量[§14.2]可以影响MSMS显示选项:

•MSMSSERVER - MSMS二进制文件的位置(默认为MSMS,假定在用户路径中)在Windows机器上,将其设置为系统范围的环境变量,在系统属性控制面板中的环境变量窗口中找到。

 

VolumeSlice

“volumesslice”表示从已经加载到VMD的体积数据集中绘制纹理映射的二维切片,使用mol volume[§9.3.20]文本命令或其他方式。颜色跨越数据集的标量值范围,红色表示数据中的低值,蓝色表示最高值。切片被绘制为垂直于X、Y或Z轴的平面,并且可以定位在体积数据集的坐标系统中的任何位置。此功能目前仅在完全支持硬件3d纹理映射的机器上可用。在没有3d纹理的机器上,什么都不会显示。未来版本的VMD将大大增强此特性的用户界面和功能。

以下选择器控制VolumeSlice表示:

•Data Set -这控制在表示中引用的体积数据集,因为可以为单个分子加载多个体积数据集。

•Slice Offset-切片设置表示在体积数据的坐标系统中,沿所选轴的体积切片位置,范围为0到1。

•Slice Axis -切片平面移动的正交轴,可以是X、Y或Z。

•Render Quality-质量可以设置为低,或中等。Low设置使切片纹理映射使用最接近采样点的颜色进行渲染。质量级别为Medium表示切片纹理图将使用双线性插值来渲染。

 

Isosurface

“等值面”表示法计算并绘制体积数据域中的曲面,在三维曲面上对应于具有单个标量值的点。

有几个设置可以控制等值面的显示方式。

•Data Set-此控件选择用于等面计算的体积数据集,因为给定的分子可以包含多个体积数据集。

•Isovalue - Isovalue控件选择计算等值面的值。在GUI中,当拖动等值滑块时,绘制的等值面暂时以较低的分辨率计算,以提高交互性;为了防止这种行为,您可以在拖动滑块时使用中间或右键(或control/shift/alt修改键)。

•Draw-这可以设置为点,阴影点,线框或实体表面。默认的绘制模式是点。当查看巨大体积地图的非常密集的等值面时,阴影点绘制方法可以在点法的速度和固体表面方法的质量之间取得很好的折衷。

•Boundary-将边界设置为Box会导致绘制体积数据边界框和坐标轴,而不是绘制数据的等值面。当第一次处理体积数据,并检查体积数据和分子的坐标系统是否匹配时,这通常是有用的。

•Step -该设置可以通过跳过体素来大大降低生成的等值面的分辨率。

•Size-设置基于等值面的点和线的厚度。

这个和其他体积显示功能将在即将发布的VMD版本中大大扩展。

 

FieldLines

“FieldLines”表示计算跟踪无质量粒子平流运动的结果的线,这些运动由与体积数据集中的每个位置相关的体积梯度矢量进行积分。VMD在初始加载体积数据集时计算体积梯度图,粒子平流例程使用简单的体积梯度三线性插值,并在每个积分步骤快速(但简单)应用欧拉方法来平流粒子。用户可调的梯度大小控制会影响体积数据集中哪些点被认为是田线种子的候选点。种子点的结果集是粒子开始平流/积分的初始点。最小和最大长度控件影响将选择用于显示的结果字段线的最小和最大长度。不显示短于最小值或长于最大值的字段行。类似地,在集成早期与数据集中的临界点碰撞的场线将被丢弃。

 

Orbital

“轨道”表示绘制了一个分子轨道等值面,对应于在规则间隔网格上计算的用户自定义波函数振幅,由选择的波函数类型、自旋、激发和轨道指数产生[29,30]。尺寸参数控制点和线等值面表示的厚度,网格间距参数控制计算波函数振幅的规则网格的密度。

Beads

在原子选择中的每个残基处绘制一个边界球。这种表示可以用作在空间填充表示中绘制非常大的结构的粗略方法,并且对于动画轨迹特别有用。

 

Dotted

‘ VDW ’[§6.1.6]相同,不同之处在于球体是虚线而不是实心。也就是说,在构成每个球体的三角形的每个顶点上放置一个点。例如,这可以用来模仿表面表示。

 

Solvent

这种方法在精神上类似于“点”[§6.1.26]的表示,因为它给出了一个快速的估计分子表面与点的集合。然而,它超越了虚点选项,提供了更均匀的表面覆盖。VMD用于检查重叠的方法在技术上是不正确的,但它是快速的,工作得很好。该算法的技术描述如下:对于原子i的表面分布(半径r =原子半径+探针半径)的每个点,检查它与之共价结合的原子j。如果点太接近j,不要显示它。同样,如果这个点太靠近相邻的k (k 6= i),那么就不要画它。这是很快的,因为没有那么多的邻居需要检查,但它并没有忽略表面与原子接触的部分,这些部分不是一个或两个键。这可以被认为是一件好事,因为你可以更好地了解接触面。

 

这个选项有三个参数。一个是在描述中提到的探测半径。如果探针半径太大,非连接原子之间的表面重叠问题就会变得更加明显。第二个是Detail Level,也许应该重命名为“Density”,因为它决定了分布的表面密度。细节越高,密度越高。最后一个选项是表示方法。默认情况下,表面被绘制为一个点的集合,但是无论分子的大小如何,一个点的大小都是一个像素,所以当缩放小时,表面密度看起来很高,当缩放大时,密度看起来很低。方法2绘制小的加号而不是点,这样可以更好地缩放,因此密度看起来更丰富。方法3在同一原子上的表面点之间画线,但不试图连接两个球体。

 

感谢Jan Hermans提供的实现指针,再次感谢Jon Leech提供的计算均匀点分布的代码。该代码包含在1.x分布。

 


最新评论
请先登录才能进行回复登录
技术支持: CLOUD | 管理登录
seo seo