#author("2018-08-23T13:29:37+00:00","default:sysosa","sysosa") #author("2018-08-23T14:59:11+00:00","default:sysosa","sysosa") 本家様 [[https://github.com/FumiakiMakino/Gwatch/blob/master/Readme_jp.md>+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でインストールしてみた ***下準備 [#aff1ffae] 「MotionCor2」、「Gautomatch」、「Gctf」の名称で実行パスが通っている必要がある(コマンドの&color(crimson){大文字小文字};に注意)。 &color(red){*};&size(10){「motioncor2」など全て小文字とかは却下}; 簡単に確認します #code(nonumber){{ [saber@c ~]$ which MotionCor2 /Appl/local/bin/MotionCor2 [saber@c ~]$ which Gautomatch /Appl/Gautomatch/cr/Gautomatch [saber@c ~]$ which Gctf /Appl/Gctf/bin/Gctf }} とパス的には大丈夫みたい。 ***python3 [#d1c29b4c] 「pythonプログラムです。」 なのでpythonが必要。CentOS7の規定は python-2.7。これでは駄目なようで python-3.6が必要みたい。 別途コンパイルしてインストールでは既存環境への影響が大きいので、素直にyumリポジトリを追加してpython3を有効にします。 python3を提供するリポジトリは複数ある。 まず、[[CentOS/devtoolset]]にあるように &color(magenta){centos-sclo-rh}; リポジトリから rh-python36.x86_64 を インストールして使う方法がある。この場合 python3 を使う前に scl で環境切り替えを行うか、.bashrc に scl を 組み込む必要がある。 他には リポジトリepel が提供している python36 と開発元が提示している[[https://ius.io/]] てに提供の python36u がある。 どちらも「/usr/bin/python3.6」のファイルを作る。恐らく 前述の scl のような環境切り替えが必要なくpython3.6を使えると 思える。そしてどっちでも問題ないと思うが、開発側が提示している 後者のリポジトリ &color(orangered){ius}; にて python36 をインストールしてみた。 #code(nonumber){{ [root@c ~]# yum install https://centos7.iuscommunity.org/ius-release.rpm }} これでリポジトリ &color(orangered){ius}; が登録(/etc/yum.repos.d/ius.repo)された。 #code(nonumber){{ [root@c ~]# yum list |grep ius }} にてリポジトリ &color(orangered){ius}; が提供しているパッケージが確認できるが、python36 以外にも ruby, phpらもあるみたい。 ここでは python36u をインストール #code(nonumber){{ [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の関連モジュールをインストールします #code(nonumber){{ [root@c ~]# python3.6 -m pip install pyqt5 [root@c ~]# python3.6 -m pip install watchdog [root@c ~]# python3.6 -m pip install numpy }} 確認 #code(nonumber){{ [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」らに収められる。 ***インストール [#xb86bdb0] gitから取得して、その展開場所がインストール先となる。 &size(10){amberToolとかに似ているかな}; #code(nonumber){{ [root@c ~]# cd /Appl/ [root@c Appl]# git clone git://github.com/FumiakiMakino/Gwatch.git }} ***起動 [#m5f68eeb] 各自のPATH環境変数に「/Appl/Gwatch/Gwatch_project_v323」を追加して Gwatch_v32.py と実行する #code(nonumber){{ [saber@c ~]$ export PATH=/Appl/Gwatch/Gwatch_project_v323:$PATH [saber@c ~]$ mkdir Gwatch && cd $_ [saber@c Gwatch]$ Gwatch_v32.py }} GUIアプリで下記の画面が表示される &ref(2018y08m23d_210314771.png,nolink); ***memo [#v9041ea3] 「Gwatch.py」を起動したマシンにGPUがあればOK. もしクラスターとかでログインノードにGPUがなく、計算ノードにGPUがあるのならインターラクティブモード(「-I」)とかで GPUノードにログインする必要がある。 #code(nonumber){{ [saber@c ~]$ qsub -q bio -I -X }} この際、「-X」をつけてXが飛ぶようにする必要がある。 [[Ansible]]で全ての計算機に「python36u」をインストールして、追加モジュールを入れるには。 下記を「python36.yml」として &color(red){*};&size(10){pukiwiki表記の制限から「}}」を「} }」としています}; #code(nonumber){{ - 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 }} 下記コマンドを実行する。&size(10){(「/etc/ansible/hosts」に対象ホストを登録してから)}; #code(nonumber){{ [saber@c ansible]$ ansible-playbook python36.yml --user root --ask-pass }}