本家様 https://github.com/FumiakiMakino/Gwatch/blob/master/Readme_jp.md
「Gwatch: a pipeline program for quick evaluation of sample quality in CryoEM」
「このソフトは、単粒子像解析のためのデータ収集を行うクライオ電顕ユーザ用に開発したpythonプログラムです。」
とのこと。コンセプトが素晴らしい。
インストール手順は上記URLに記載されているけどCentOS7でインストールしてみた
「MotionCor2」、「Gautomatch」、「Gctf」の名称で実行パスが通っている必要がある(コマンドの大文字小文字に注意)。
*「motioncor2」など全て小文字とかは却下
簡単に確認します
[saber@c ~]$ which MotionCor2
/Appl/local/bin/MotionCor2
[saber@c ~]$ which Gautomatch
/Appl/Gautomatch/cr/Gautomatch
[saber@c ~]$ which Gctf
/Appl/Gctf/bin/Gctf
とパス的には大丈夫みたい。
「pythonプログラムです。」
なのでpythonが必要。CentOS7の規定は python-2.7。これでは駄目なようで python-3.6が必要みたい。
別途コンパイルしてインストールでは既存環境への影響が大きいので、素直にyumリポジトリを追加してpython3を有効にします。
python3を提供するリポジトリは複数ある。
まず、CentOS/devtoolsetにあるように centos-sclo-rh リポジトリから rh-python36.x86_64 を
インストールして使う方法がある。この場合 python3 を使う前に scl で環境切り替えを行うか、.bashrc に scl を
組み込む必要がある。
他には リポジトリepel が提供している python36 と開発元が提示しているhttps://ius.io/ てに提供の python36u がある。
どちらも「/usr/bin/python3.6」のファイルを作る。恐らく 前述の scl のような環境切り替えが必要なくpython3.6を使えると
思える。そしてどっちでも問題ないと思うが、開発側が提示している
後者のリポジトリ ius にて python36 をインストールしてみた。
[root@c ~]# yum install https://centos7.iuscommunity.org/ius-release.rpm
これでリポジトリ ius が登録(/etc/yum.repos.d/ius.repo)された。
[root@c ~]# yum list |grep ius
にてリポジトリ ius が提供しているパッケージが確認できるが、python36 以外にも ruby, phpらもあるみたい。
ここでは python36u をインストール
[root@c ~]# yum install python36u python36u-libs python36u-devel python36u-pip
(リンク作成)
[root@c ~]# ln -s /usr/bin/python3.6 /usr/bin/python3
[root@c ~]# ls -l /usr/bin/python3
lrwxrwxrwx 1 root root 18 8月 23 20:44 /usr/bin/python3 -> /usr/bin/python3.6
[root@c ~]#
その後、追加で Gwatch に必要なpython3.6の関連モジュールをインストールします
[root@c ~]# python3.6 -m pip install pyqt5
[root@c ~]# python3.6 -m pip install watchdog
[root@c ~]# python3.6 -m pip install numpy
確認
[root@c ~]# pip3.6 list
:
argh (0.26.2)
numpy (1.15.1)
pathtools (0.1.2)
pip (9.0.1)
PyQt5 (5.11.2)
PyQt5-sip (4.19.12)
PyYAML (3.13)
setuptools (39.0.1)
watchdog (0.8.3)
:
[root@c ~]#
途中「pipのバージョンが古いぞ、新しくしたら?」と言われるが無視。
これら追加パッケージは「/usr/lib64/python3.6/site-packages」らに収められる。
gitから取得して、その展開場所がインストール先となる。
amberToolとかに似ているかな
[root@c ~]# cd /Appl/
[root@c Appl]# git clone git://github.com/FumiakiMakino/Gwatch.git
各自のPATH環境変数に「/Appl/Gwatch/Gwatch_project_v323」を追加して Gwatch_v32.py と実行する
[saber@c ~]$ export PATH=/Appl/Gwatch/Gwatch_project_v323:$PATH
[saber@c ~]$ mkdir Gwatch && cd $_
[saber@c Gwatch]$ Gwatch_v32.py
GUIアプリで下記の画面が表示される
「Gwatch.py」を起動したマシンにGPUがあればOK.
もしクラスターとかでログインノードにGPUがなく、計算ノードにGPUがあるのならインターラクティブモード(「-I」)とかで
GPUノードにログインする必要がある。
[saber@c ~]$ qsub -q bio -I -X
この際、「-X」をつけてXが飛ぶようにする必要がある。
Ansibleで全ての計算機に「python36u」をインストールして、追加モジュールを入れるには。
下記を「python36.yml」として
*pukiwiki表記の制限から「}}」を「} }」としています
- hosts: em
tasks:
- name: install ius repository
yum: name=https://centos7.iuscommunity.org/ius-release.rpm state=present
- name: install python-3.6
yum: name={{ item } } state=latest
with_items:
- python36u
- python36u-libs
- python36u-devel
- python36u-pip
- name: install python-3.6 module
shell: python3.6 -m pip install {{ item } }
with_items:
- pyqt5
- watchdog
- numpy
- name: symbolic link python3.6 to python3
file: src=/usr/bin/python3.6 dest=/usr/bin/python3 state=link
下記コマンドを実行する。(「/etc/ansible/hosts」に対象ホストを登録してから)
[saber@c ansible]$ ansible-playbook python36.yml --user root --ask-pass