我想为一个研讨会做一个演示,我想交互式地展示一个蛋白质结构(三维旋转,甚至可以改变它显示的模型,比如卡通、线框、球和棍子……)
我希望这是内联的,而不是在单独的窗口或文件。在
我可以考虑两种可能的解决办法。在
一种方法是调用一个输出内联到笔记本的软件,所以假设我通过bash运行带有输入文件的Jmol,然后从笔记本操作整个事情(注意,我使用的是ipython笔记本,但是如果解决方案需要,我愿意安装jupyter或任何其他东西)。这将是可怕的,尤其是如果我可以使用它与任何其他软件,但我认为这并不容易,甚至可能不可能。在
另一种方法是在同一个浏览器、不同的选项卡中链接到已经在运行的jmol或jsmol对象,并在notebook内联显示相同的东西,然后在我演示时从那里旋转它。 我认为这更有可能实现,因为两者都运行在同一个浏览器中,而且都知道html和javascript,所以有一种共同的语言。(我对HTML、javascript或php了解不多,但我认为有可能做到这一点)
如果打开此链接:
http://www.rcsb.org/pdb/explore/jmol.do?structureId=1A0K&bionumber=1
你将看到可旋转的物体。如果我运行Firebug来检查这个对象,它会给出:
画布 id="jmolApplet0_canvas2d" style="width: 100%; height: 100%; z-index: 9002; cursor: default;" width="600" height="600"
但这对我没什么用,因为我不明白。它看起来像XML代码,像是函数或类的输入,但我不知道如何在我的笔记本演示文稿中运行它。在
我还试图保存对象,然后用python解析它,但这只给了我3D对象的点,不会给它着色或给对象表面,或者至少我不知道怎么做。(我说的是VRML)
对于在ipython笔记本中运行内联内容,我发现:
%matplotlib nbagg百分比
工作,但没有别的。在
感谢任何帮助。在
我使用的是python3,ipython3笔记本,ubuntu16.04,firefox,但是我可以安装任何可以解决我问题的东西,如果需要的话,甚至可以在virtualbox中使用windows。在
我搜索了很多,在Oliver Stueker的github站点上找到了一个工作示例:https://github.com/ostueker/simple_jmol_demo
唯一的问题是我需要.pdb文件,而不是cml,因为cml不包含二级结构信息。我又搜索了一些,发现了jhjensen2发布的另一个几乎可以工作的示例:https://gist.github.com/jhjensen2/4701339
所以我想到了这个:
你可以用这个作为ipython笔记本的魔力。在
编辑: 目前,只有当你加载的文件不是一个.pdb文件,但是它会加载一个.cml文件,你可以用Avogadro制作这个文件。代码将只在浏览器中加载.pdb文件,而不是在ipython笔记本中加载。也许没有办法把两者结合起来。如果我在
Jmol.getApplet
中使用load inline
,它对我不起作用,但它在Jmol.getApplethtml
中有效,但只适用于.cml文件,而不适用于.pdb文件。:(相关问题 更多 >
编程相关推荐