本家様 http://pymol.org/
シュレーディンガー社様から販売されております. 一方でそのオープンソース版が存在していてここではそのオープンソース版を作ってみました.
https://github.com/schrodinger/pymol-open-source
有償版PyMOLはopen source版よりも機能が強化されてます
windowsOS向けopen source版は試してないです..
ver3.1.0になったので改めて作ってみた.
RHEL系はOSに直に作るのは難しいみたい. 直前の3.1.0a0ならいけたけど、今後はcondaの上で作る事にします.
ubuntu22はPyMOLのWorkflowに載っているのですんなり行ける. けどubuntu24.04はテストrunが出来なかった.
condaでコンパイル環境を作って実行したが「__cxa_call_terminate」のundefined symbolで起動しない.
恐らくcondaのコンパイル環境の問題っぽいのでOS上に作ってみた
dnf install epel-release -y
dnf config-manager --enable crb
dnf install xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-renderutil -y
dnf install https://dl.rockylinux.org/pub/rocky/9/devel/x86_64/os/Packages/g/glm-devel-0.9.9.8-3.el9.noarch.rpm -y
dnf --enablerepo=devel install cmake netcdf-devel glew-devel libpng-devel libxml2-devel freetype-devel catch2-devel msgpack-devel python3-qt5-devel python3-devel python3-numpy -y
wget -nv https://anaconda.org/schrodinger/collada2gltf/2.1.4/download/linux-64/collada2gltf-2.1.4-h6bb024c_0.tar.bz2
bzip2 -cd collada2gltf-2.1.4-h6bb024c_0.tar.bz2 | tar xf - -C /usr/local
rm -rf collada2gltf-2.1.4-h6bb024c_0.tar.bz2
git clone --depth 1 https://github.com/rcsb/mmtf-cpp.git
cp -R mmtf-cpp/include/mmtf* /usr/local/include
rm -rf mmtf-cpp
cd /apps/src/
git clone https://github.com/schrodinger/pymol-open-source
cd pymol-open-source/
python3 setup.py install --prefix=/apps/pymol修正「/apps/pymol/bin/pymol」
exec "/usr/bin/python3" "/usr/local/lib/python3.12/site-packages/pymol/__init__.py" "$@"
exec "/usr/bin/python3" "/apps/pymol/lib64/python3.12/site-packages/pymol/__init__.py" "$@"/apps/modulefiles/pymol
#%Module1.0
set root /apps/pymol
prepend-path PATH $root/bin
prepend-path PYTHONPATH $root/lib64/python3.12/site-packages既定のpythonは3.9 で gcc は gcc-11.5
(OSパッケージの追加インストールと関連アプリのインストール)
dnf groupinstall "Development Tools" -y
dnf install epel-release -y
dnf install xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-renderutil -y
dnf --enablerepo=devel install cmake netcdf-devel glew-devel glm-devel libpng-devel libxml2-devel freetype-devel catch2-devel msgpack-devel -y
wget -nv https://anaconda.org/schrodinger/collada2gltf/2.1.4/download/linux-64/collada2gltf-2.1.4-h6bb024c_0.tar.bz2
bzip2 -cd collada2gltf-2.1.4-h6bb024c_0.tar.bz2 | tar xf - -C /usr/local
rm -rf collada2gltf-2.1.4-h6bb024c_0.tar.bz2
git clone --depth 1 https://github.com/rcsb/mmtf-cpp.git
cp -R mmtf-cpp/include/mmtf* /usr/local/include
rm -rf mmtf-cpp/
(pyenv-anacondaの敷設)
git clone https://github.com/yyuu/pyenv.git /apps/pyenv
export PYENV_ROOT=/apps/pyenv
export PATH=$PYENV_ROOT/bin:$PATH
pyenv install miniforge3-25.3.1-0[root@rockylinux9 ~]# source /apps/pyenv/versions/miniforge3-25.3.1-0/etc/profile.d/conda.sh
[root@rockylinux9 ~]# conda create -n pymol-open-source python=3.10 openldap pyqt qt biopython msgpack-python vtk-m=2.3=cuda* -y
[root@rockylinux9 ~]# conda activate pymol-open-source
(pymol-open-source) [root@rockylinux9 ~]# cd /apps/src/
(pymol-open-source) [root@rockylinux9 src]# git clone https://github.com/schrodinger/pymol-open-source
(pymol-open-source) [root@rockylinux9 src]# cd pymol-open-source/
(pymol-open-source) [root@rockylinux9 pymol-open-source]#ここで vtk-m を有効にするためにちょいとソースコードを修正します
|
その上で
(pymol-open-source) [root@rockylinux9 pymol-open-source]#
(pymol-open-source) [root@rockylinux9 pymol-open-source]# INCFLAGS="-I/apps/pyenv/versions/miniforge3-25.3.1-0/envs/pymol-open-source/include/vtkm-2.3" \
pip install --prefix=/apps/pymol --config-settings use-vtkm=2.3 --config-settings use-openmp=true .
(pymol-open-source) [root@rockylinux9 pymol-open-source]#EnvironmentModules は下記になる.
「/apps/modulefiles/pymol」
#%Module1.0
set root /apps/pymol
prepend-path PATH $root/bin
prepend-path PYTHONPATH $root/lib/python3.10/site-packages
condaで仮想環境を作りpymolをコンパイルします。
(OSパッケージの追加インストールと関連アプリのインストール)
dnf groupinstall "Development Tools" -y
dnf install epel-release -y
dnf install xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-renderutil gcc-toolset-11 -y
dnf install --enablerepo=epel,devel cmake netcdf-devel glew-devel libpng-devel libxml2-devel freetype-devel catch-devel mmtf-cpp-devel -y
dnf remove glm-devel -y
dnf install https://dl.rockylinux.org/pub/rocky/9/devel/x86_64/os/Packages/g/glm-devel-0.9.9.8-3.el9.noarch.rpm -y
wget -nv https://anaconda.org/schrodinger/collada2gltf/2.1.4/download/linux-64/collada2gltf-2.1.4-h6bb024c_0.tar.bz2
bzip2 -cd collada2gltf-2.1.4-h6bb024c_0.tar.bz2 | tar xf - -C /usr/local
rm -rf collada2gltf-2.1.4-h6bb024c_0.tar.bz2
git clone --depth 1 https://github.com/rcsb/mmtf-cpp.git
cp -R mmtf-cpp/include/mmtf* /usr/local/include
rm -rf mmtf-cpp/
(pyenv-anacondaの敷設)
git clone https://github.com/yyuu/pyenv.git /apps/pyenv
export PYENV_ROOT=/apps/pyenv
export PATH=$PYENV_ROOT/bin:$PATH
pyenv install miniforge3-25.3.1-0[root@rockylinux8 ~]# source /apps/pyenv/versions/miniforge3-25.3.1-0/etc/profile.d/conda.sh
[root@rockylinux9 ~]# conda create -n pymol-open-source python=3.10 openldap pyqt qt biopython msgpack-python vtk-m=2.3=cuda* -y
[root@rockylinux8 ~]# conda activate pymol-open-source
(pymol-open-source) [root@rockylinux8 ~]# cd /apps/src/
(pymol-open-source) [root@rockylinux8 src]# git clone https://github.com/schrodinger/pymol-open-source
(pymol-open-source) [root@rockylinux8 src]# cd pymol-open-source/
(pymol-open-source) [root@rockylinux8 pymol-open-source]#vtk-m を有効にしたいのですが、ソースコード側でタイポがあるのでちょいと修正
(pymol-open-source) [root@rockylinux8 pymol-open-source]# vi layer0/ContourSurf.cpp
#include <vtkm/filter/Contour/Contour.h>
↓
#include <vtkm/filter/contour/Contour.h>その上で
(pymol-open-source) [root@rockylinux8 pymol-open-source]# source scl_source enable gcc-toolset-11
(pymol-open-source) [root@rockylinux8 pymol-open-source]# INCFLAGS="-I/apps/pyenv/versions/miniforge3-25.3.1-0/envs/pymol-open-source/include/vtkm-2.3" \
pip install --prefix=/apps/pymol --config-settings use-vtkm=2.3 --config-settings use-openmp=true .
(pymol-open-source) [root@rockylinux8 pymol-open-source]# conda deactivate
[root@rockylinux8 pymol-open-source]#EnvironmentModules は下記のようにします
/apps/modulefiles/pymol
#%Module1.0
prepend-path PATH /apps/pymol/bin
prepend-path PYTHONPATH /apps/pymol/lib/python3.10/site-packagesこれで「module use /apps/modulefiles」「module load pymol」として「pymol」で起動します

Python 3.12.3
gcc 13.3.0
(準備)
apt-get update
apt-get install catch2 cmake libfreetype6-dev libglew-dev libglm-dev libmsgpack-dev libnetcdf-dev libpng-dev libxml2-dev python-is-python3 \
python3-biopython python3-dev python3-setuptools python3-numpy python3-pip git build-essential python3-qtpy -y
wget -nv https://anaconda.org/schrodinger/collada2gltf/2.1.4/download/linux-64/collada2gltf-2.1.4-h6bb024c_0.tar.bz2
bzip2 -cd collada2gltf-2.1.4-h6bb024c_0.tar.bz2 | tar xf - -C /usr/local
git clone --depth 1 https://github.com/rcsb/mmtf-cpp.git
cp -R mmtf-cpp/include/mmtf* /usr/local/includeっで構築
root@ubuntu22:~# mkdir -p /apps/src ; cd /apps/src
root@ubuntu22:/apps/src# git clone https://github.com/schrodinger/pymol-open-source
root@ubuntu22:/apps/src# cd pymol-open-source/
root@ubuntu22:/apps/src/pymol-open-source# pip install -v --prefix=/apps/PyMOL .テスト確認を行ってみたが、「catch2/catch.hpp」が存在しないと言われてエラーになる. testing=Trueで求められる項目がコンパイルできないみたい.
rm -rf build/
pip install -v --config-settings testing=True --prefix=/apps/PyMOL '.[dev]'
(途中でコンパイルエラー)
export PATH=/apps/PyMOL/local/bin:$PATH
export PYTHONPATH=/apps/PyMOL/local/lib/python3.12/dist-packages
pymol -ckqy testing/testing.py --run allenvironment-modules
「/apps/modulefiles/PyMOL」
#%Module1.0
prepend-path PATH /apps/PyMOL/local/bin
prepend-path PYTHONPATH /apps/PyMOL/local/lib/python3.12/dist-packages
もし「ERROR: Cannot uninstall numpy 1.26.4, RECORD file not found. Hint: The package was installed by debian」と表示されたら、OS提供の python3-numpy が原因でこれを除くといいみたい
ただ、OS提供のパッケージなので影響があるかもしれない.. pyenv/anaconda で conda で用意した方がいいのかも
Python 3.10.12
gcc 11.4.0
apt-get update
apt-get --no-install-recommends install catch2 cmake libfreetype6-dev libglew-dev libglm-dev libmsgpack-dev libnetcdf-dev libpng-dev libxml2-dev python-is-python3 \
python3-biopython python3-dev python3-setuptools python3-numpy python3-pip git build-essential python3-qtpy -y
wget -nv https://anaconda.org/schrodinger/collada2gltf/2.1.4/download/linux-64/collada2gltf-2.1.4-h6bb024c_0.tar.bz2
bzip2 -cd collada2gltf-2.1.4-h6bb024c_0.tar.bz2 | tar xf - -C /usr/local
git clone --depth 1 https://github.com/rcsb/mmtf-cpp.git
cp -R mmtf-cpp/include/mmtf* /usr/local/include
pip install --upgrade pip
root@ubuntu22:~# mkdir -p /apps/src ; cd /apps/src
root@ubuntu22:/apps/src# git clone https://github.com/schrodinger/pymol-open-source
root@ubuntu22:/apps/src# cd pymol-open-source/
root@ubuntu22:/apps/src/pymol-open-source# pip install -v --prefix=/apps/PyMOL .
(テスト確認)
rm -rf build/
pip install -v --config-settings testing=True --prefix=/apps/PyMOL '.[dev]'
export PATH=/apps/PyMOL/local/bin:$PATH
export PYTHONPATH=/apps/PyMOL/local/lib/python3.10/dist-packages
pymol -ckqy testing/testing.py --run allenvironment-modules
「/apps/modulefiles/PyMOL」
#%Module1.0
prepend-path PATH /apps/PyMOL/local/bin
prepend-path PYTHONPATH /apps/PyMOL/local/lib/python3.10/dist-packages