本家様 http://strubi.chem.uu.nl/pytom/
SourceForge https://sourceforge.net/projects/pytom/
チュートリアルhttp://strubi.chem.uu.nl/pytom/doc/pytom/tutorial.html

インストールはパッケージされたzipで得るか、gitで取得するか。
zipファイルのはversion 0.971で日付が「2016-02-23」
方やgitの方は

[root@c ~]# cd /apps
[root@c apps]# git clone http://git.code.sf.net/p/pytom/gitrepo pytom
 
[root@c apps]# cd pytom
 
[root@c pytom]# git log -1
commit 0e6b656257929da9ea88384d7d0407fb897bb611 (HEAD -> master, origin/master, origin/HEAD)
Author: Mihajlo Vanevic <m_vanevic@gmx.com>
Date:   Sun Oct 28 20:54:06 2018 +0100
 
    bugfix: first element resize(...)[0] is taken
[root@c pytom]#

と2018.10.28である。パッケージ版より新しそうなのでgit版を展開してみる

http://strubi.chem.uu.nl/pytom/doc/pytom/installation.htmlにコンパイル方法が記載されている。
これに従いまず PyTom/pytomc に移る

[root@c ~]# yum install openmpi-devel python-devel boost-devel numpy fftw-devel
 
[root@c ~]# cd /apps/pytom/
 
[root@c pytom]# cd pytomc/
[root@c pytomc]# ls -CF
check.csh*   include/              libs/      sh_alignment/  swigModules/
check.py*    installFunctions.py*  Makefile*  src/
compile.py*  installFunctions.pyc  nufft/     swigCode/
 
[root@c pytomc]#

ここで「compile.py」を実行する

(コンパイルする方のPATH情報を継承する仕組みがあるので、意図的にPATH/LD_LIBRARY_PATHを修正)
 
[root@c pytomc]# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[root@c pytomc]# unset LD_LIBRARY_PATH
 
 
[root@c pytomc]# ./compile.py
PyTom compile script
 
OPTIONS
--libDir             Specify multiple directories for dynamic library search
--includeDir         Specify multiple directories for header file search
--exeDir             Specify multiple directories for excecuteable search
--pythonVersion      Specify a python version you want to link against if you have many (2.5, 2.6 ...)
--target             Specify which build target you like
                     all         : build everything
                     swig        : build swig modules only (part of all)
                     libtomc     : build C++ libraries only (part of all)
                     np          : build numpy interface (part of all)
                     smpi        : build mpi module (part of all)
                     clean       : clean all files
                     cleanswig   : clean all swig files
                     cleanlibtomc: clean C++ libraries
                     check       : check if compile was correct
 
Good luck!
[root@c pytomc]#

と簡単なコンパイル方法が提示される。
ここではCentOS8にインストールしてみている。

[root@c pytomc]# module load mpi                #事前にopenmpi実行環境をロードする
 
[root@em00 pytomc]# which python                #pythonがOS由来のpythonであることを確認
/bin/python
 
[root@c pytomc]# ./compile.py \
         --includeDir \
             /usr/include /usr/include/openmpi-x86_64 \
             /usr/include/python2.7 /usr/include/boost \
             /usr/lib64/python2.7/site-packages/numpy/core/include/numpy \
         --libDir \
             /usr/lib64 --pythonVersion 2.7 \
         --target all
:
:
Generating executables:
../bin/pytom
../bin/ipytom
 
[root@c pytomc]#

*pytomから「/apps/pytom/bin/paths.csh」が呼ばれてPATH/LD_LIBRARY_PATHが定義されます. この中身はコンパイル者の環境を引き継ぎますので要注意

つかう

単純に /apps/pytom/bin にPATHを通せばいいみたい

export PATH /apps/pytom/bin:$PATH

EnvironmentModulesへの対応ならそのmodulefile(/etc/modulefiles/PyTOM)を下記の様にする

#%Module1.0
module load mpi/openmpi-x86_64
 
prepend-path PATH /apps/pytom/bin
prepend-path LD_LIBRARY_PATH /apps/pytom/external/lib
 
setenv LD_PRELOAD /usr/lib64/openmpi/lib/libmpi.so

チュートリアル

サンプルデータは

git clone http://git.code.sf.net/p/pytom/tutorial pytom-tutorial

で入手可能。取得サイズは 517MB

中身は

[root@c pytom-tutorial]# ls -lF
total 28
-rw-rw-r--+  1 root root 5246 Mar 21 07:14 PyTom Tutorial - Basic.ipynb
-rw-rw-r--+  1 root root   53 Mar 21 07:14 README
drwxrwxr-x+ 10 root root 4096 Mar 21 07:14 RibosFromLysate/
 
[root@c pytom-tutorial]# cd RibosFromLysate
[root@c RibosFromLysate]# ls -lF
total 196
drwxrwxr-x+ 3 root root  4096 Mar 21 07:14 alignment/
drwxrwxr-x+ 3 root root  4096 Mar 21 07:14 localization/
-rwxrwxr-x+ 1 root root 63012 Mar 21 07:14 mask.em*
drwxrwxr-x+ 2 root root  4096 Mar 21 07:14 mcoAClassification/
drwxrwxr-x+ 2 root root    24 Mar 21 07:14 particles/
drwxrwxr-x+ 4 root root  4096 Mar 21 07:14 postLocalizationClassification/
drwxrwxr-x+ 2 root root  4096 Mar 21 07:14 projections/
drwxrwxr-x+ 2 root root  4096 Mar 21 07:14 reconstructParticles/
drwxrwxr-x+ 4 root root  4096 Mar 21 07:14 reconstructTomo/
-rwxrwxr-x+ 1 root root 63012 Mar 21 07:14 reference.em*
 
[root@c RibosFromLysate]# cd projections/
[root@c projections]# ls -lvh
total 329M
-rwxrwxr-x+ 1 root root 8.2K Mar 21 07:14 markfile_temp.mark
-rw-rw-r--+ 1 root root 8.1M Mar 21 07:14 tomo01_sorted_1.em
-rw-rw-r--+ 1 root root 8.1M Mar 21 07:14 tomo01_sorted_2.em
-rw-rw-r--+ 1 root root 8.1M Mar 21 07:14 tomo01_sorted_3.em
 :
 :
-rw-rw-r--+ 1 root root 8.1M Mar 21 07:14 tomo01_sorted_40.em
-rw-rw-r--+ 1 root root 8.1M Mar 21 07:14 tomo01_sorted_41.em
-rw-rw-r--+ 1 root root 3.0K Mar 21 07:14 tomo01_sorted_stack.prexg
-rw-rw-r--+ 1 root root 8.2K Mar 21 07:14 tomo01_sorted_stack.wimp
 
[root@c projections]#

IPython経由でつかう

まずIPython環境を構築します
「yum install python-ipython」
でOK

使用時はpythonがOS由来のpythonであることを確認してください。
eman2、phenixが入っているとOS由来ではなくそのアプリが用意したpythonで動きます。
その際、PyTomのライブラリが正しく読み込まない可能性があります。
なので使用の前にはそれら自前でpythonを用意するアプリを 「module unload」 する必要があります。


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2020-07-27 (月) 21:32:02 (17d)