Hom's Blog


JSMol使用

Jmol是一个用Java语言编写的免费的、开源的、跨平台的新一代分子可视化软件,支持多国语言(包括中文).JSmol是针对使用html来使用的版本.Jmol包括三部分:JmolApplet是一个可嵌入到网页的网页浏览器,也可以作为开发工具被整合到其它的Java应用程序中。JmolApplication是一个可独立运行的桌面应用程序。JmolViewer是一个开发工具包,可以被其它的Java应用所集成。

右键菜单介绍

  • 查看:菜单可供使用者切换到“前面、左边、右边、顶面、底面”等几个标准的方位进行查看。
  • 样式:可以框选“深度透视、边界盒、单位晶格、轴”等菜单,其中选择“单位晶格”则在晶体中显示单位晶格边框,选择“轴”则显示三维坐标轴。“立体图形”是最近版本增加的菜单,此菜单包含“红+青玻璃”等6项子菜单,选择“红+青玻璃”菜单,使用者可佩戴购买的红+青三维立体眼镜即可查看逼真的三维分子效果。“方案”菜单可选择“CPK空间填充、球—棍”等6种模型显示方式用于显示比例(填充)模型、球棍模型等。样式菜单还可以选择显示化学键、氢键、二硫键等化学键类型,总之鼠标右键操作中的样式菜单是Jmol3D模型交互操作中最常用的菜单之一。
  • 颜色:通过颜色菜单可对原子、化学键、氢键等的颜色进行选择与更换,对于原子的颜色默认使用CPK颜色方案,对于化学键默认使用继承颜色方案,即将化学键按成键原子颜色各一半进行显示。
  • 表面:表面菜单可以控制分子表面的显示和隐藏,显示时可以设置为“点状表面、范德华表面和溶剂可及表面”等多种类型。
  • 对称性:可以对研究对象的对称性进行全面观察。
  • 振动:在进行红外光谱分子振动显示时,该菜单可对化学键的振动进行控制。
  • 测量:该菜单可对原子间的距离、化学键间的夹角、三原子间的夹角等量进行测量和显示
  • 鼠标拾取:该菜单包括“居中显示”、“显示标识”、“显示标签”等多个子菜单,其中点击“显示标签”后,再用鼠标点击某个原子,可显示该原子的标签(元素名称)。

安装

  • 去sourceforge(ref:3)下载binary结尾的压缩包后,解压,再将jsmol.zip解压. 将整个jsmol文件扔到服务器.里面j2s是html加载jsmol的主要文件夹,java是java加载的主要文件夹.
  • head调用主脚本JSmol.min.js.
  • 新建java脚本,指定变量结构info指明applet插件的基本参数.包括使用use:HTML5/JAVA(使用java加载还是html js加载,一般使用html5),指明jar/j2s/serverURL(php目录的php文件)(注意路径),调用初始化何种命令.最后使用 Jmol.getApplet("appletname",infoname)来创建jmol插件.
  • 更多参数和教程参考Ref7和8.

TestPage

<script type="text/javascript" src="/jsmol/JSmol.min.js"></script>
<div style="margin: auto; text-align: center; width: 300px;">
<script type="text/javascript">
var  script_run = 'load /jsmol/test.pdb;spin on;';
var jmolApplet0;
var Info0 = {
  width:  300,
  height: 300,
  color: "black",
  serverURL: "/jsmol/php/jsmol.php",
  use: "HTML5",
  jarPath: "/jsmol/java",
  j2sPath: "/jsmol/j2s",
  script: script_run,//The command defined before.
  disableInitialConsole: true
}
  Jmol.getApplet("jmolApplet0", Info0)
</script>
Jmol display test
</div>

PS: 在chrome用file:///模式本地加载网页时,会弹出错误,主要是ajax不支持.可以用Safari解决.或者Chrome启动时chrome.exe --allow-file-access-from-filesopen /Applications/Google\ Chrome.app/ --args --allow-file-access-from-files.更多请参考Ref2中出错部分.

控制

  • 打开菜单: 右键或者ctrl+左键
  • 旋转: 左键拖动
  • 平移: ctrl+右键或者shift+双击左键再拖动或者双击中键再拖动
  • Z轴转: 中键/shift左键并左右移动; 或者shift+右键任意移动
  • 放大: 中键/shift左键并上下移动 (总结: shift+左键=中键)
  • 恢复视角: 双击中键; 或者shift+双击左键.

Jmol对象

  • Jmol.getApplet = function(id, Info, checkOnly),id是用于识别Jmol对象的名字,要字符串.Info是个类似字典的结构.
  • Jmol.jmolButton(JmolObject, script, label, id, title),插入一个按钮于下方,第二个是命令字符串,第三个是显示的内容.第四个是html id,第五个是鼠标在上面时的显示.
  • Jmol.jmolCheckbox(JmolObject, scriptWhenChecked, scriptWhenUnchecked, labelHtml, isChecked, id, title),第二三个分别是选中和不选中时的动作.
  • Jmol.setCheckboxGroup(chkMaster,chkBoxes) 多选
  • Jmol.jmolRadio(JmolObject, script, labelHtml, isChecked, separatorHtml, groupName, id, title) 多选一,第三项是显示内容,第四项是是否默认被选,第五项是可用于插入html代码用于分隔,如"<br>",第六项是组名,用于区分不同组.
  • Jmol.jmolRadioGroup(JmolObject, arrayOfRadioButtons, separatorHtml, groupName, id, title) 使用array来创建多选一.
  • Jmol.jmolLink(JmolObject, script, text, id, title) 超链接形式做响应
  • Jmol.jmolCommandInput(JmolObject, label, size, id, title) 支持输入命令!
  • Jmol.jmolMenu(JmolObject, arrayOfMenuItems, size, id, title) 插入菜单.
  • Jmol.jmolBr() 在html插入换行.
  • Jmol.jmolHtml('context') 再html插入指定内容.
  • Jmol.script = function(JmolObject, myScript) 使用脚本或命令字符串.一般脚本用*.spt结尾,不需要加引号.
  • Jmol.showInfo(jmolObject, true/false): 是否显示控制台结果(会取代分子显示)
  • Jmol.clearConsole(jmolObject): 清除控制台结果.
  • Jmol.resizeApplet(JmolObject, [400,700]); 重设大小,也可以只用一个数字.也可以用百分比(注意上层div大小)

Reference

  1. JMol主页
  2. JMol-wiki
  3. JMol-sourceforge
  4. 新一代分子可视化软件Jmol及其教学应用简介
  5. An Introduction to Jmol Scripting
  6. Biomodel.uah
  7. Dr Gutow’s tutorial
  8. Jmol Interactive Online Documentation,十分详细
  9. OSU
  10. 元素周期表


◆ 本文地址: http://platinhom.github.io/2015/06/19/JSMol/, 转载请注明 ◆

前一篇: Usage of Delphi-APBS-AmberPB
后一篇: JSME


Contact: Hom / 已阅读()
Source 类别: CompCB  标签: Visualize  CompBiol  JS  Web