官网链接见这里:https://www.pymol.org/
但是注意有license,也就是要付费。
开源版见这里:https://github.com/schrodinger/pymol-open-source
开源版的安装见这里:https://github.com/schrodinger/pymol-open-source/blob/master/INSTALL
一,安装部分
1,手动安装并编译:hard but pleasure
有能力的,可以锻炼一下自己的折腾能力
2,Anaconda:simple but less interesting
anaconda上有开源版的pymol的conda包,即pymol-open-source可以直接安装;
mamba create -n pymol -y -c conda-forge pymol-open-source
mamba update pymol-open-source
安装之后的运行:
二,VSCode 连接远程服务器使用图形化界面(GUI)
我为什么要提这个,是因为有些新手vscode的配置没有做到位,所以在需要调用GUI的任务执行的时候会出问题,比如说计算生物学中的各种软件,都有GUI版本;
包括本篇博客中提到的pymol,也是在可视化过程中进行编辑操作。
要么在vscode中一次性的解决这个小问题,一劳永逸,
要么就使用带有GUI功能的,我见过有学生搞不定就直接跳过vscode,每次有GUI任务需求就另外开一个Mobaxterm终端使用。
比如说下面这样的问题:
很明显,这是因为PyMOL尝试使用图形界面(GUI),但在无图形环境(如服务器或SSH连接)中无法连接到X11显示服务器导致。
当然,要执行pymol的任务,并不一定需要GUI的存在,强悍的人,照样能够在命令行中像使用python一样使用pymol。
当然,这适用于在Python中使用PyMOL,也就是脚本化的pymol数据分析。
比如说:
pymol的无头模式:
# 启动PyMOL时使用无头模式
pymol -c # -c 表示命令行模式,不启动GUI
不使用GUI的方法还有很多,比如说使用环境变量禁用GUI。
其他的做法:
设置虚拟显示器,比如说是xvfb,也就是虚拟帧缓冲器;
另外就是启用X11转发,毕竟是通过SSH连接的。
当然,如果本身就在服务器主机上,当然也可以直接安装图形化界面,比如说ubuntu-desktop;当然,如果计算机配置比较低,或者希望保持系统轻量级的话,可以考虑使用轻量级的桌面环境(比如说Xfce、LXQt等),而不是完整的Ubuntu桌面环境。
本篇博客就是针对vscode在远程连接服务器时,程序无法在本地显示图像以及使用图形化界面命令的问题,所以需要使用X协议转发的解决思路;
参考下面博客中的解决思路:
https://blog.youkuaiyun.com/Dteam_f/article/details/109806294
其实就是在本地系统安装Xming,然后在vscode中安装插件,设置连接以及环境变量等。
1,问题本身
vscode本身的远程连接插件remote-SSH,用于链接远程服务器进行编程。
但是如果程序涉及到操作显示图像,由于程序运行在服务器上(比如说上面我们要运行的pymol),无法直接将图像显示到我们的本地系统。
解决思路:
使用X协议进行转发,也就是把显示在远程服务器上的图像转发到我们的本地系统。
2,操作步骤
基本按照https://blog.youkuaiyun.com/Dteam_f/article/details/109806294
(1)安装Xming
使用的是Xming,就是将Linux图形界面输出到Windows上;
下载地址在:https://sourceforge.net/projects/xming/
需要下载的是下面两个文件:
- Xming-6-9-0-31-setup.exe:直接在上面界面中download即可
- Xming-fonts-7-7-0-10-setup.exe:在上面界面中下面的project activity中下载
详细安装过程:
注意在安装Xming,按照自己需求是否要安装一个ssh client。
在安装了Xming之后,字体格式也按照同样的方式安装下载。
(2)开启X11服务
在本地电脑上,注意是打开XLaunch,而不是Xming
(3)修改Xming设置
在Xming安装的目录中,找到下面的这个X0.hosts文件
在localhost中添加我们的服务器ip(按照你自己的主机设置来处理)
(4)在vscode中安装相关插件
Remote-SSH就不用说了,用vscode的应该都安装了。
其实可以看到,两个remote X11的相关插件都不再支持了;
(5)设置本地vscode Remote-SSH
按照参考博客,在自己的.ssh\config中添加下面3段,对于每一个主机,只要添加下面以Forward*开头的3行就可以了,
也就是:
ForwardX11 yes
ForwardX11Trusted yes
ForwardAgent yes
(6)在服务器要使用GUI的工程中设置.vscode/launch.json
因为我目前是某个环境中安装了开源的pymol,也就没有所谓的哪个工程了,所以我就直接设置了。
然后我们需要修改vscode中的配置文件:
然后对于要使用GUI的工程中设置下图中的文件,.vscode/launch.json,
注意!!!!这个文件不是在vscode左下角的settings中搜索的,有很多新手会误以为是下面的这个配置文件:
这个文件可以参考:https://blog.youkuaiyun.com/qq_16587307/article/details/106593867。
实际上的这个json文件,是在vscode左侧的run&debug中(就是左侧的这个小bug)
然后我们要添加的字段,其实就是本地电脑图形界面的ip+端口
另外就是有很多教程,可能这里说添加的不是10.0,是按照自己Xming中运行的端口来配置的,
比如说这里本地电脑运行的是0.0,我一开始也是配置0.0,但是没有成功。
但是我亲测这里是配置10.0的时候,是能够成功的(总之就是按照自己的实际情况来,可以自己探索一下哪个能够成功)
另外就是ip的问题,前面也说了,我这里因为处于同一个局域网下,所以就使用了localhost。
然后除了在这个json文件中配置这个GUI的ip以及端口以外,
(7)在服务器中设置DISPLAY的环境变量
另外就是在服务器中设置DISPLAY的环境变量:
也就是我们前面设置的ip+端口,
在上面的json文件中添加ip地址的环境变量,就是前面使用Xming中设置的host,
在向/.bashrc(/.zshrc同理)中添加环境变量,然后source更新;
因为本人服务器和本地端在同一局域网下,所以我这里就是用localhost解析了,具体使用的时候按照自己的实际情况来定。
export DISPLAY="localhost:10.0"
端口就是前面Xming中的host地址端口;
然后就是就入到之前安装的开源pymol环境中,然后就可以运行pymol了:
然后就可以愉快地玩耍了!
参考:
https://www.cnblogs.com/dechinphy/p/pymol.html
https://blog.youkuaiyun.com/Dteam_f/article/details/109806294