Answers:
一些算法可从源代码中获得,用于不同的软件包。PyMol就是这样的一种,VMD的来源也是可访问的。
我在1990年代实现了VMD的功能区算法。第一步是结构确定-氨基酸在哪里?哪些连接成链?C-α原子在哪里?
正如Kyle所说,接下来是样条曲线。VMD使用Catmull–Rom样条,以C-alphas作为控制点。这是3阶样条曲线,样条曲线穿过C-alpha。如果进行数学计算,则只有一个自由参数,该参数对应于样条线在控制点周围的刚度。我尝试了一些值,直到找到一个美观的值。
没有足够的C-alpha,如何处理结尾也有些棘手。我推断得到其他观点。
那给出了道路。沿着路径的圆形挤压形成了一个管。您可以改变横截面半径以给出一个椭圆,并通过做更多的工作来定义功能区。
问题是找到正确的范数,使色带与alpha螺旋对齐。我尝试了各种尝试,然后放弃了,研究了Raster3D的实现,获得了使用它的权限,并将其添加到了VMD中。它是前一个向量规范与C-alpha轨迹定义的当前规范的累加之和。我将不得不看看源代码如何再次起作用。有趣的是,Raster3D的作者Ethan Merritt指出,他从FRODO那里获得了这段代码,因此它具有悠久的历史。
VMD现在具有“ NewRibbons”,这是在我的时间之后实施的。我不知道它是如何工作的。
做一个α螺旋的最简单方法是从第一个残基到最后一个残基画一条线。沿直线挤出一个圆,您将得到一个圆柱体。您也可以对螺旋线进行线性最佳拟合,但是我认为这会导致短螺旋线出现问题。可能有更聪明的方法可以做到这一点,包括Kyle建议的方法,它可以进行柔和的弯曲。
Beta链很容易。有两条控制路径,每边一条。这些定义了股线路径和法线。您必须谨慎对待扭曲,以使您的线束在扭曲70度时不会扭曲290度,但这并不难处理。
一个您没有提到的困难部分是如何检测alpha螺旋和beta链的位置。一些PDB记录包含该记录,但不是全部。我为此使用了第三方工具STRIDE。沃伦实现了自己的算法。Roger Sayle为Raster3D实现了自己的DSSP版本。
我会刺一下。
蛋白质卡通(也称为功能区)表示法由三个部分组成,分别对应于蛋白质二级结构的三种类型。
功能区图上的Wikipedia页面包含有关这种可视化类型的起源的附加信息,用于显示蛋白质结构。