PyTom をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
本家様 [[https://github.com/SBC-Utrecht/PyTom>+https://gi...
PyTom is a toolbox developed for interpreting cryo electr...
(DeepL先生訳)
PyTomは低温電子トモグラフィデータを解釈するために開発され...
他、テンプレートマッチングに特化した pytom-match-pick (本...
***下準備 [#x7cc19a5]
実行環境はこんな感じです。nvidiaドライバのみ入っていてcud...
#code(nonumber){{
[root@rockylinux9 ~]# cat /etc/redhat-release
Rocky Linux release 9.6 (Blue Onyx)
[root@rockylinux9 ~]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX Open Kernel Module for x86_64 ...
GCC version: gcc version 11.5.0 20240719 (Red Hat 11.5.0...
[root@rockylinux9 ~]# ls /usr/local/cuda
ls: cannot access '/usr/local/cuda': No such file or dire...
[root@rockylinux9 ~]#
}}
まず、pyenv/anaconda で仮想実行環境を作れるようにします。
#code(nonumber){{
git clone https://github.com/yyuu/pyenv.git /apps/pyenv
export PYENV_ROOT=/apps/pyenv
export PATH=$PYENV_ROOT/bin:$PATH
pyenv install --list <--これでanaconda,minic...
pyenv install miniforge3-25.3.1-0
source /apps/pyenv/versions/miniforge3-25.3.1-0/etc/profi...
conda update conda -y
}}
っで構築します。
***PyTom [#e3546930]
#code(nonumber){{
[root@rockylinux9 ~]# dnf install fftw-devel
[root@rockylinux9 ~]# cd /apps/
[root@rockylinux9 apps]# git clone https://github.com/SBC...
[root@rockylinux9 apps]# cd PyTom/
[root@rockylinux9 PyTom]#
}}
python 3.7とかでないとコンパイルできないようなので「envir...
cupyはv13.4以上でblackwell対応です. pytomのコードの仕様な...
#code(diff,nonumber){{
@@ -2,7 +2,7 @@ name: pytom_env
channels:
- conda-forge
dependencies:
-- python=3
+- python=3.12
- ipython
- numpy<2
- lxml
@@ -19,10 +19,10 @@ dependencies:
- tqdm
- mpi4py
- joblib
-- cupy
+- cupy>=13.4
- matplotlib
- scikit-image
- swig
- fftw[build=*openmpi*]
- make
-- gcc
+- gcc<12
}}
その上で
#code(nonumber){{
[root@rockylinux9 PyTom]# conda env create -f environment...
[root@rockylinux9 PyTom]# conda activate pytom
(pytom) [root@rockylinux9 PyTom]# conda list
:
cuda-cccl_linux-64 13.1.78 ha770c72_...
cuda-cudart-dev_linux-64 13.1.80 h376f20c_...
cuda-cudart-static_linux-64 13.1.80 h376f20c_...
cuda-cudart_linux-64 13.1.80 h376f20c_...
cuda-nvrtc 13.1.80 hecca717_...
cuda-version 13.1 h2ff5cdb_...
cupy 13.6.0 py310hcc3...
cupy-core 13.6.0 py310h1d2...
:
gcc 11.4.0 h602e360_...
gcc_impl_linux-64 11.4.0 h00c12a0_...
gcc_linux-64 11.4.0 ha077dfb_...
gfortran_impl_linux-64 11.4.0 hd465bd8_...
gfortran_linux-64 11.4.0 hddf7001_...
:
mpi 1.0 openmpi ...
mpi4py 4.1.1 py310h42a...
:
numpy 1.26.4 py312heda...
:
openmpi 5.0.5 h6ae21d5_...
openmpi-mpicc 5.0.5 hc43e4ee_...
openmpi-mpicxx 5.0.5 hc10b7d8_...
openmpi-mpifort 5.0.5 hede194e_...
:
python 3.12.12 hd63d673_...
:
}}
っで $CONDA_PREFIX の場所を確認して pytom を作ります
#code(nonumber){{
(pytom) [root@rockylinux9 PyTom]# echo $CONDA_PREFIX
/apps/pyenv/versions/miniforge3-25.3.1-0/envs/pytom
(pytom) [root@rockylinux9 PyTom]# python setup.py install...
:
Searching : mpicc Found : True
Searching : mpic++ Found : True
Searching : libmpi.so Found : True
Searching : mpi.h Found : True
Searching : Python.h Found : True
Searching : libpython3.12.so Found : True
Searching : fftw3.h Found : True
Searching : libfftw3.so Found : True
Searching : type_traits.hpp Found : True
Searching : ndarrayobject.h Found : False
Searching : ndarrayobject.h Found : True
Check compiling prerequisites:
:
(pytom) [root@rockylinux9 PyTom]# conda list
:
cuda-version 13.1 h2ff5cdb_...
cupy 13.6.0 py312h045...
:
gcc 11.4.0 h602e360_...
:
mpi 1.0 openmpi ...
mpi4py 4.1.1 py312hd14...
:
numpy 1.26.4 py312heda...
:
pyqt 5.15.11 py312h82c...
pyqt5-sip 12.17.0 py312h128...
pyqtgraph 0.14.0 pyhd8ed1a...
pyside6 6.9.2 py312h565...
python 3.12.12 hd63d673_...
python-dateutil 2.9.0.post0 pyhe01879...
python_abi 3.12 8_cp312 ...
pytom 1.0 pypi_0 ...
:
(pytom) [root@rockylinux9 PyTom]# conda deactivate
[root@rockylinux9 PyTom]#
}}
以上で完成です。
pytomGUI「/apps/PyTom/pytom/gui/pytomGUI.py」の最下行あた...
#code(nonumber){{
[root@rockylinux9 ~]# tail /apps/PyTom/pytom/gui/pytomGUI...
print(exctype, value, traceback)
sys._excepthook(exctype, value, traceback)
sys.exit(1)
sys.excepthook = exception_hook
for fname, module in [( 'motioncor2', 'motioncor2/1.2...
if subprocess.run(['which', fname], capture_outpu...
print('Please load the {} module'.format(modu...
main()
[root@rockylinux9 ~]#
}}
と motioncor2/1.2.1 をロードさせて motioncor2 の存在確認...
ですが事前にmoduleコマンドで正しくMotionCor2やimodをロー...
いつものEnvironmentModules
こちらは「/apps/modulefiles/PyTom」として中身は下記のよう...
#code(nonumber){{
#%Module1.0
module load IMOD
module load MotionCor2
set root /apps/pyenv/versions/minifor...
prepend-path PATH $root/bin
prepend-path LD_LIBRARY_PATH $root/lib
}}
起動は
#code(nonumber){{
[saber@rockylinux9 ~]$ module use /apps/modulefiles
[saber@rockylinux9 ~]$ module load PyTom
[saber@rockylinux9 ~]$ pytomGUI
Please load the motioncor2/1.2.1 module
Please load the imod/4.10.25 module
}}
となって下記画面が表示される
&ref(2024y07m11d_192818881.png,nolink);
***pytom-match-pick [#w0b2e701]
本家様 [[https://github.com/SBC-Utrecht/pytom-match-pick>...
pipy [[https://pypi.org/project/pytom-match-pick/>+https:...
#code(nonumber){{
[root@rockylinux9 ~]# source /apps/pyenv/versions/minifor...
[root@rockylinux9 ~]# conda create -n pytom_tm -c conda-f...
[root@rockylinux9 ~]# conda activate pytom_tm
(pytom_tm) [root@rockylinux9 ~]# python -m pip install py...
(pytom_tm) [root@rockylinux9 ~]# conda list
:
cuda-cccl_linux-64 12.8.90 ha770c72_...
cuda-cudart-dev_linux-64 12.8.90 h3f2d84a_...
cuda-cudart-static_linux-64 12.8.90 h3f2d84a_...
cuda-cudart_linux-64 12.8.90 h3f2d84a_...
cuda-nvrtc 12.8.93 h5888daf_...
cuda-version 12.8 h5d125a7_...
cupy 13.6.0 py312h031...
cupy-core 13.6.0 py312h16a...
:
numpy 2.4.2 py312h33f...
:
python 3.12.12 hd63d673_...
python-dateutil 2.9.0.post0 pypi_0 ...
python_abi 3.12 8_cp312 ...
pytom-match-pick 0.12.1 pypi_0 ...
:
(pytom_tm) [root@rockylinux9 ~]#
(pytom_tm) [root@rockylinux9 ~]# python -c "import pytom_...
(pytom_tm) [root@rockylinux9 ~]# python -c "import cupy a...
->上記2つともエラーなしで動いたので cupy は問題ないかと
}}
EnvironmentModules
「/apps/modulefiles/pytom-match-pick」として
#code(nonumber){{
#%Module1.0
set root /apps/pyenv/versions/miniforge3-25.3.1-...
prepend-path PATH $root/bin
}}
チュートリアルの実行 [[https://github.com/SBC-Utrecht/pyt...
まず [[https://doi.org/10.34894/TLGJCM>+https://doi.org/1...
***pytom-match-pick (CentOS7で) [#o139ffa9]
[[CentOS/repo]]で devtoolset-11 を組み込んでgcc-11を有効...
#code(nonumber){{
[root@centos7 ~]# yum install centos-release-scl-rh
[root@centos7 ~]# vi /etc/yum.repos.d/CentOS-SCLo-scl-rh....
(vault.centos.orgを参照させるように修正します)
[root@centos7 ~]# yum install devtoolset-11 -y
[root@centos7 ~]# source scl_source enable devtoolset-11
[root@centos7 ~]# gcc --version
gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditi...
warranty; not even for MERCHANTABILITY or FITNESS FOR A P...
[root@centos7 ~]#
[root@centos7 ~]# source /apps/pyenv/versions/miniforge3-...
[root@centos7 ~]# conda create -n pytom_tm -c conda-forge...
[root@centos7 ~]# conda activate pytom_tm
(pytom_tm) [root@centos7 ~]# conda install -c conda-forge...
(pytom_tm) [root@centos7 ~]# python -m pip install pytom-...
(pytom_tm) [root@centos7 ~]# conda list
:
cuda-version 11.8 h70d...
cudatoolkit 11.8.0 h4ba...
cupy 13.6.0 py31...
cupy-core 13.6.0 py31...
:
pyarrow 21.0.0 py31...
pyarrow-core 21.0.0 py31...
pyparsing 3.2.5 pypi...
python 3.11.13 h9e4...
python-dateutil 2.9.0.post0 pypi...
python_abi 3.11 8_cp...
pytom-match-pick 0.12.0 pypi...
:
(pytom_tm) [root@centos7 ~]# conda deactivate
[root@centos7 ~]#
}}
conda で pyarrow を入れる必要あり。その後に pip で pytom-...
そうでないと pyarrow のビルドが始まるが、centos7ではその...
テスト.
#code(nonumber){{
git clone https://github.com/SBC-Utrecht/pytom-match-pick
cd pytom-match-pick/tests
python -m unittest discover
}}
***メモ [#f699ab48]
計算系によってはGPUメモリーが足らないと言われる.
正しい方法かは不明だが、ユニファイドメモリーを使って回避...
下記のように追記します.
#code(nonumber){{
vi /apps/pyenv/versions/miniforge3-23.11.0-0/envs/pytom_t...
:
pool = cp.cuda.MemoryPool(cp.cuda.malloc_managed)
cp.cuda.set_allocator(pool.malloc)
:
}}
終了行:
本家様 [[https://github.com/SBC-Utrecht/PyTom>+https://gi...
PyTom is a toolbox developed for interpreting cryo electr...
(DeepL先生訳)
PyTomは低温電子トモグラフィデータを解釈するために開発され...
他、テンプレートマッチングに特化した pytom-match-pick (本...
***下準備 [#x7cc19a5]
実行環境はこんな感じです。nvidiaドライバのみ入っていてcud...
#code(nonumber){{
[root@rockylinux9 ~]# cat /etc/redhat-release
Rocky Linux release 9.6 (Blue Onyx)
[root@rockylinux9 ~]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX Open Kernel Module for x86_64 ...
GCC version: gcc version 11.5.0 20240719 (Red Hat 11.5.0...
[root@rockylinux9 ~]# ls /usr/local/cuda
ls: cannot access '/usr/local/cuda': No such file or dire...
[root@rockylinux9 ~]#
}}
まず、pyenv/anaconda で仮想実行環境を作れるようにします。
#code(nonumber){{
git clone https://github.com/yyuu/pyenv.git /apps/pyenv
export PYENV_ROOT=/apps/pyenv
export PATH=$PYENV_ROOT/bin:$PATH
pyenv install --list <--これでanaconda,minic...
pyenv install miniforge3-25.3.1-0
source /apps/pyenv/versions/miniforge3-25.3.1-0/etc/profi...
conda update conda -y
}}
っで構築します。
***PyTom [#e3546930]
#code(nonumber){{
[root@rockylinux9 ~]# dnf install fftw-devel
[root@rockylinux9 ~]# cd /apps/
[root@rockylinux9 apps]# git clone https://github.com/SBC...
[root@rockylinux9 apps]# cd PyTom/
[root@rockylinux9 PyTom]#
}}
python 3.7とかでないとコンパイルできないようなので「envir...
cupyはv13.4以上でblackwell対応です. pytomのコードの仕様な...
#code(diff,nonumber){{
@@ -2,7 +2,7 @@ name: pytom_env
channels:
- conda-forge
dependencies:
-- python=3
+- python=3.12
- ipython
- numpy<2
- lxml
@@ -19,10 +19,10 @@ dependencies:
- tqdm
- mpi4py
- joblib
-- cupy
+- cupy>=13.4
- matplotlib
- scikit-image
- swig
- fftw[build=*openmpi*]
- make
-- gcc
+- gcc<12
}}
その上で
#code(nonumber){{
[root@rockylinux9 PyTom]# conda env create -f environment...
[root@rockylinux9 PyTom]# conda activate pytom
(pytom) [root@rockylinux9 PyTom]# conda list
:
cuda-cccl_linux-64 13.1.78 ha770c72_...
cuda-cudart-dev_linux-64 13.1.80 h376f20c_...
cuda-cudart-static_linux-64 13.1.80 h376f20c_...
cuda-cudart_linux-64 13.1.80 h376f20c_...
cuda-nvrtc 13.1.80 hecca717_...
cuda-version 13.1 h2ff5cdb_...
cupy 13.6.0 py310hcc3...
cupy-core 13.6.0 py310h1d2...
:
gcc 11.4.0 h602e360_...
gcc_impl_linux-64 11.4.0 h00c12a0_...
gcc_linux-64 11.4.0 ha077dfb_...
gfortran_impl_linux-64 11.4.0 hd465bd8_...
gfortran_linux-64 11.4.0 hddf7001_...
:
mpi 1.0 openmpi ...
mpi4py 4.1.1 py310h42a...
:
numpy 1.26.4 py312heda...
:
openmpi 5.0.5 h6ae21d5_...
openmpi-mpicc 5.0.5 hc43e4ee_...
openmpi-mpicxx 5.0.5 hc10b7d8_...
openmpi-mpifort 5.0.5 hede194e_...
:
python 3.12.12 hd63d673_...
:
}}
っで $CONDA_PREFIX の場所を確認して pytom を作ります
#code(nonumber){{
(pytom) [root@rockylinux9 PyTom]# echo $CONDA_PREFIX
/apps/pyenv/versions/miniforge3-25.3.1-0/envs/pytom
(pytom) [root@rockylinux9 PyTom]# python setup.py install...
:
Searching : mpicc Found : True
Searching : mpic++ Found : True
Searching : libmpi.so Found : True
Searching : mpi.h Found : True
Searching : Python.h Found : True
Searching : libpython3.12.so Found : True
Searching : fftw3.h Found : True
Searching : libfftw3.so Found : True
Searching : type_traits.hpp Found : True
Searching : ndarrayobject.h Found : False
Searching : ndarrayobject.h Found : True
Check compiling prerequisites:
:
(pytom) [root@rockylinux9 PyTom]# conda list
:
cuda-version 13.1 h2ff5cdb_...
cupy 13.6.0 py312h045...
:
gcc 11.4.0 h602e360_...
:
mpi 1.0 openmpi ...
mpi4py 4.1.1 py312hd14...
:
numpy 1.26.4 py312heda...
:
pyqt 5.15.11 py312h82c...
pyqt5-sip 12.17.0 py312h128...
pyqtgraph 0.14.0 pyhd8ed1a...
pyside6 6.9.2 py312h565...
python 3.12.12 hd63d673_...
python-dateutil 2.9.0.post0 pyhe01879...
python_abi 3.12 8_cp312 ...
pytom 1.0 pypi_0 ...
:
(pytom) [root@rockylinux9 PyTom]# conda deactivate
[root@rockylinux9 PyTom]#
}}
以上で完成です。
pytomGUI「/apps/PyTom/pytom/gui/pytomGUI.py」の最下行あた...
#code(nonumber){{
[root@rockylinux9 ~]# tail /apps/PyTom/pytom/gui/pytomGUI...
print(exctype, value, traceback)
sys._excepthook(exctype, value, traceback)
sys.exit(1)
sys.excepthook = exception_hook
for fname, module in [( 'motioncor2', 'motioncor2/1.2...
if subprocess.run(['which', fname], capture_outpu...
print('Please load the {} module'.format(modu...
main()
[root@rockylinux9 ~]#
}}
と motioncor2/1.2.1 をロードさせて motioncor2 の存在確認...
ですが事前にmoduleコマンドで正しくMotionCor2やimodをロー...
いつものEnvironmentModules
こちらは「/apps/modulefiles/PyTom」として中身は下記のよう...
#code(nonumber){{
#%Module1.0
module load IMOD
module load MotionCor2
set root /apps/pyenv/versions/minifor...
prepend-path PATH $root/bin
prepend-path LD_LIBRARY_PATH $root/lib
}}
起動は
#code(nonumber){{
[saber@rockylinux9 ~]$ module use /apps/modulefiles
[saber@rockylinux9 ~]$ module load PyTom
[saber@rockylinux9 ~]$ pytomGUI
Please load the motioncor2/1.2.1 module
Please load the imod/4.10.25 module
}}
となって下記画面が表示される
&ref(2024y07m11d_192818881.png,nolink);
***pytom-match-pick [#w0b2e701]
本家様 [[https://github.com/SBC-Utrecht/pytom-match-pick>...
pipy [[https://pypi.org/project/pytom-match-pick/>+https:...
#code(nonumber){{
[root@rockylinux9 ~]# source /apps/pyenv/versions/minifor...
[root@rockylinux9 ~]# conda create -n pytom_tm -c conda-f...
[root@rockylinux9 ~]# conda activate pytom_tm
(pytom_tm) [root@rockylinux9 ~]# python -m pip install py...
(pytom_tm) [root@rockylinux9 ~]# conda list
:
cuda-cccl_linux-64 12.8.90 ha770c72_...
cuda-cudart-dev_linux-64 12.8.90 h3f2d84a_...
cuda-cudart-static_linux-64 12.8.90 h3f2d84a_...
cuda-cudart_linux-64 12.8.90 h3f2d84a_...
cuda-nvrtc 12.8.93 h5888daf_...
cuda-version 12.8 h5d125a7_...
cupy 13.6.0 py312h031...
cupy-core 13.6.0 py312h16a...
:
numpy 2.4.2 py312h33f...
:
python 3.12.12 hd63d673_...
python-dateutil 2.9.0.post0 pypi_0 ...
python_abi 3.12 8_cp312 ...
pytom-match-pick 0.12.1 pypi_0 ...
:
(pytom_tm) [root@rockylinux9 ~]#
(pytom_tm) [root@rockylinux9 ~]# python -c "import pytom_...
(pytom_tm) [root@rockylinux9 ~]# python -c "import cupy a...
->上記2つともエラーなしで動いたので cupy は問題ないかと
}}
EnvironmentModules
「/apps/modulefiles/pytom-match-pick」として
#code(nonumber){{
#%Module1.0
set root /apps/pyenv/versions/miniforge3-25.3.1-...
prepend-path PATH $root/bin
}}
チュートリアルの実行 [[https://github.com/SBC-Utrecht/pyt...
まず [[https://doi.org/10.34894/TLGJCM>+https://doi.org/1...
***pytom-match-pick (CentOS7で) [#o139ffa9]
[[CentOS/repo]]で devtoolset-11 を組み込んでgcc-11を有効...
#code(nonumber){{
[root@centos7 ~]# yum install centos-release-scl-rh
[root@centos7 ~]# vi /etc/yum.repos.d/CentOS-SCLo-scl-rh....
(vault.centos.orgを参照させるように修正します)
[root@centos7 ~]# yum install devtoolset-11 -y
[root@centos7 ~]# source scl_source enable devtoolset-11
[root@centos7 ~]# gcc --version
gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditi...
warranty; not even for MERCHANTABILITY or FITNESS FOR A P...
[root@centos7 ~]#
[root@centos7 ~]# source /apps/pyenv/versions/miniforge3-...
[root@centos7 ~]# conda create -n pytom_tm -c conda-forge...
[root@centos7 ~]# conda activate pytom_tm
(pytom_tm) [root@centos7 ~]# conda install -c conda-forge...
(pytom_tm) [root@centos7 ~]# python -m pip install pytom-...
(pytom_tm) [root@centos7 ~]# conda list
:
cuda-version 11.8 h70d...
cudatoolkit 11.8.0 h4ba...
cupy 13.6.0 py31...
cupy-core 13.6.0 py31...
:
pyarrow 21.0.0 py31...
pyarrow-core 21.0.0 py31...
pyparsing 3.2.5 pypi...
python 3.11.13 h9e4...
python-dateutil 2.9.0.post0 pypi...
python_abi 3.11 8_cp...
pytom-match-pick 0.12.0 pypi...
:
(pytom_tm) [root@centos7 ~]# conda deactivate
[root@centos7 ~]#
}}
conda で pyarrow を入れる必要あり。その後に pip で pytom-...
そうでないと pyarrow のビルドが始まるが、centos7ではその...
テスト.
#code(nonumber){{
git clone https://github.com/SBC-Utrecht/pytom-match-pick
cd pytom-match-pick/tests
python -m unittest discover
}}
***メモ [#f699ab48]
計算系によってはGPUメモリーが足らないと言われる.
正しい方法かは不明だが、ユニファイドメモリーを使って回避...
下記のように追記します.
#code(nonumber){{
vi /apps/pyenv/versions/miniforge3-23.11.0-0/envs/pytom_t...
:
pool = cp.cuda.MemoryPool(cp.cuda.malloc_managed)
cp.cuda.set_allocator(pool.malloc)
:
}}
ページ名:
1