FirstGlance in Jmol的技术信息 (FGiJ)


这份文件是提供给安装FGiJ到现有的网站中或增加其功能的软件开发者们,也提供给那些在设计对开发FGiJ过程中做出许多设计决定的理由感兴趣的人。


应用程序大小

Jmol applet程序的大小主要在于像素。 使用一定比例的窗口用于程序方面在一些常见的浏览器是不工作的。程式尺寸( jmolWidth , jmolHeight )是在get_applet_dimensions ( ) (感谢蒂姆德里斯科尔提供的这些代码)中通过窗口方面来计算的。 如果窗口在进行FGiJ后调整而显示的,手动加载/刷新程序将相应调整。 以上步骤的自动化的方法可能被潜在的恼人或疑难问题所拒绝。 (我从来没有能够让onResize ( )运作良好。尤其是,我试图利用它反而造成了Safari无限循环的加载。 )为了进一步了解applet大小的控制,FGiJ被嵌入在下面的一个表中。




三个版本

已经提供了FGiJ的三个版本。 所有这三个版本共享共同的.js文件和一些.htm文件。
  1. fg.htm :无框架。这是默认版本。
  2. fgf.htm :使用框架。 (终止版本0.98 。 )经常使用fs_left.htm , controls.htm , moldoc.htm ,还有blank.htm (作为临时占位符) 。
  3. fge.htm :嵌入在一个表中。这表明FGiJ怎样能够被其他内容所包围。
上述版本哪个被采用可通过主网页中高级选项链接,或超连接所控制。

主网页, index.htm ,通过附加查询参数来控制哪个版本的FGiJ被使用。当它下载了gallery.htm时,“” (对于无框来说) , “f”(对于有框来说) ,或“e” (对于嵌入到表中来说)。 查询参数是用来在gallery.htm中建立链接来援引FGiJ ,所以他们需要适当的文件fg.htm , fgf.htm ,或fge.htm 。


JavaScript

top.js :顶层变量和函数(即使是在框架版) 。

实现窗口分领域

FGiJ包括三个矩形分领域在浏览器窗口中:
  1. Jmol applet显示分子(右)
  2. 控制这种变化的分子认视角(左上角)
  3. 帮助(左下)
在使用框架的版本中 ( fgf.htm不支持0.97后的版本) ,每个分区是一个框架。 框架似乎在所有流行的浏览器都能工作。 鼠标滚轮滚动中的文字帮助框架在IE与Gecko引擎的浏览器中。 一个缺点是,浏览器的后退按钮推翻了会议历史(增强在FGiJ控制中的密切联系) 。 另一个不利因素是,通过框架开发和维护非常复杂。
相比之下,在无框版本(这是默认情况下, fg.htm ) ,鼠标轮滚动并没有卷插帮助文本到Gecko浏览器中。然而,当一个新的窗口打开一个FGiJ会议,浏览器的后退按钮仍然呈现灰色,避免了在框架的版本中由于按钮的原因而导致的混乱。 另一个尚未解决的问题是,在新的文字显示在帮助区,滚动位置的仍然是以前的文字,所以在没有滚动备份下,您不能看到顶部的新的帮助。 [ 看来这两个问题在使用滚动IFRAME中可能得到解决而不是滚动司。 这仍然是实施和测试。 ]

在不使用框架版本中( fg.htm ) :
  1. Jmol嵌入的标记包括排列= 'right'
  2. 控件的滚动司
  3. 帮助是在滚动司命名helpDiv
在第一个应用试用中,滚动帮助司被指定为百分比值。 当第一次加载FGiJ,“忍耐”帮助很短,并且帮助司是正确的高度。经过较长的帮助文本装在Gecko的浏览器,帮助司将扩大到两倍以上的窗口(虽然仍与垂直滚动条) ,同时较低的边缘控制司太低。 类似的问题是在IE中发现略有不同的编码FGiJ 。 这个问题已经解决了设置滚动帮助司像素的高度。 这一高度根据浏览器窗口的大小计算的(就是Jmol applet的大小,见上文) 。

当无框版本FGiJ是嵌入在部分浏览器窗口时,其职权范围内可以控制的范围内单元格的表,如在fge.htm 。 .

在执行( fge.htm )中,FGiJ被嵌入在一个网页与周边“外”的内容,三个表的单元格被使用。 两个表单元格用于外部内容,第三个包含FGiJ 。 FGiJ配置为在此表第三单元格本身包含三个单元格。 这就比较容易移植FGiJ作为一个独立包含的代码块内载于本表。 有可能是控制司和帮助司可以共享一个单一的左侧表格单元格。 目前尚不清楚这是否会浪费少一点空间。

有一些变量(见fge.htm上方的例子 )有可能控制部分的窗口适合于FGiJ 。 基于RCSB网站,假设有人认为FGiJ将在窗口的右下角。 空间不能适合于FGiJ左侧的窗口,而是保留成widthDecrement ,同样的,对于顶端,则保留成 heightDecrement 。这些都是用来控制程序大小get_applet_dimensions ( ) 。 这些和其他有关的变量在fge.htm的上方可以看到。

所有版本使用一个小表在控制区组合成按钮,这个表中包含司(有时使用<br>标签诱导而避免不必要的空白行) 。

检视连杆机构

点击一个链接系列(二级结构,卡通,N->C Rainbow,Composition等) ,改变了分子的视角。 该机制如下。

链接是书面的函数调用,例如, 这些要求是在controls.js中 。 writeViewLink ( )储存脚本和帮助变量名称于数组viewLinkSptName [ ] , linkHelp [ ]中 ,使用一个检索每次通话递增。

一旦链接被点击,这个功能为: i是指进入阵列的脚本和帮助名的索引。 doViewLink ()

切换按钮机理

在控制面板(左上角)包含几个切换按钮(配体+ ,水,板坯,背景,旋转) 。机制如下。 这些要求是在controls.js中 。 writeToggleButton ( )储存参数在数组toggleUpSpt [ ] , toggleDownSpt [ ] , toggleHelp [ ]中,使用索引每次通话递增。它还填充区域阵列toggleIsDown [ ] ,和变量ligandsIndex , waterIndex等。

当一个按钮被按下,这个功能为: i是该指数进入阵列。 doToggleButton()
复选框脚本及脚本处理机制

命令脚本发送到Jmol与scriptToJmol (脚本) 。 然而,通常一些前处理是必要的。 例如,如果一些基被隐藏,正脚本makeHideSpt ( )需要添加任何脚本致使分子。 此外,某些状态变量可能需要改变。 例如,组分视角无条件地抑制water和Lingands+按钮。

脚本前处理是由doToggleButton ( )和doViewLink ( )提出的。 其它脚本可分为那些改变的分子视角,和那些没有改变的。 后者的例子是脚本通过变焦按钮或复选框发送来显示轴,晶胞,或boundbox 。

那些改变分子视角的脚本被送往doMolviewSpt ( )进行前处理,而那些没有的被直接发送到scriptToJmol ( )。

help显示机理
帮助面板的内容是随着呼吁通过的帮助名称改变的,例如 此函数成为showHelp2 ( ) (这是当帧都在使用,在帮助帧中定义的) 。 showHelp2 ( )执行以下操作:

“ligands+ ” , “非标准残留” :定义

在FirstGlance中使用的原子设置在notes.htm,中定义了 ,其中包括联系到更多具体的相关文件。


通过点击的匿名链的选择机制

在大多数PDB档案中,链提供单特征名。 但是,有些文件只有单链,并在这些情况下,单链并不总是被命名的。 例如: FirstGlance可以通过点击一下它而选择一个有名链。这个”选择-按-点击”机制使用zai 两个接口:在接触..中选择一个目标,还有在隐藏..界面中。该pickCallback机制是用来报告Jmol到javascript原子点击的身份(见代码moldoc.js ) 。 选择对话有圆形按钮以区分是否为一个链,残余或集团,或一个原子将选定在每次点击。当链被指明,并且该报告包含了链的名称,这一机制按照意图工作。

然而,上述机制在链没有名称时失败。 In that case, the pickCallback report includes the residue name and number, but lacks any chain information.在这种情况下, pickCallback报告包括残基的姓名和号码,但没有任何链信息。 因此,当链用于指定选择,并且点击原子没有链信息,残基的名字将被审查。 如果残基是20个标准氨基酸之一,或5个标准核苷酸之一,所有的蛋白质或核酸分别被选中,假设这是一个单链的PDB文件,当一个非标准残基在匿名链中被点击,这一机制将仍然失败。 如果链中已指明选择,被点击的残基缺乏链的名称,并且不是一个标准的氨基酸或核苷酸,这时,FirstGlance提醒用户改变的单选按钮来指定残留/群体的选择。 这一通知每次会议只印发一次。

“选择-到-点击” 的机制进一步限制中被描述在


反馈到