kuroの覚え書き

96の個人的覚え書き

AlphaFold2.1.0登場

さて、Alphafold2の公開から4ヶ月ほど経ったが、その間に出てきた多量体解析のアイデアなどを取り込んでver2.1がアップされた。
GoogleColabの方ではいち早くバージョンアップがされていたわけだが、gitの本体の方も正式に対応したということか。

アップグレードのキモとしては使用するデータベースを2つ更新、2つ追加ということになっている。
ダウンロードのやり方はmoriwakiさんのページを見てもらうwことにして、一点だけ。

Docker imageの構築の際、以前はrun_docker.pyのなかで、データベースのディレクトリや、結果の出力先を設定しておくことになっていたが、今回その設定は廃されて跡形もない。
代わりに解析の実行時に引数で

--data_dir='/mnt/ssd/af_database'  --output_dir='/mnt/ssd/af_results'

のように与えることになったようだ。

ちょっと悩んだので共有しとく。

Nvidia Jetson NanoでMacOS

Jetson Nanoを2台も買ってみたけど、いまいち使いみちが定まっていない。
まあこの手のガジェットは明確な目的がなくても手元に転がしておけば、ある時急に役に立ったりするからいいのだけれど。

ふとJetsonNano上でDockerのコンテナとしてMacOSが動いたりしないのかな、と思いつき、まずはDockerでMacOSが動くのかと調べてみると
qiita.com
いるねえ。

KVMMacOSというのもあるようで、どちらもMacOSインストーラからbase imageをとってきて使うらしい。

tatuiyo.xyz

ではとりあえずやってみるか。

まずは

$ git clone https://github.com/kholia/OSX-KVM.git
Cloning into 'OSX-KVM'...
remote: Enumerating objects: 337, done.
remote: Counting objects: 100% (95/95), done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 337 (delta 37), reused 88 (delta 33), pack-reused 242
Receiving objects: 100% (337/337), 104.77 MiB | 3.92 MiB/s, done.
Resolving deltas: 100% (118/118), done.
$ cd OSX-KVM
$ ./fetch-macOS-v2.py 
1. High Sierra (10.13)
2. Mojave (10.14)
3. Catalina (10.15)
4. Big Sur (11.6) - RECOMMENDED
5. Monterey (latest)

Choose a product to download (1-5): 4
Big Sur (11.6) - RECOMMENDED
Downloading 694-35959...
Saving http://oscdn.apple.com/content/downloads/41/28/071-71279/5djpevqmc2w0ti2c4n1m8mkz7fm791t1ic/RecoveryImage/BaseSystem.dmg to BaseSystem.dmg...
Note: The total download size is 637.20 MB
Download complete!                                
Saving http://oscdn.apple.com/content/downloads/41/28/071-71279/5djpevqmc2w0ti2c4n1m8mkz7fm791t1ic/RecoveryImage/BaseSystem.chunklist to BaseSystem.chunklist...
Note: The total download size is 2596 bytes
Download complete! 
$ brew install dmg2img
$ dmg2img BaseSystem.dmg macOS.iso

dmg2img v1.6.7 (c) vu1tur (to@vu1tur.eu.org)

BaseSystem.dmg --> macOS.iso


decompressing:
opening partition 0 ...             100.00%  ok
opening partition 1 ...             100.00%  ok
opening partition 2 ...             100.00%  ok
opening partition 3 ...             100.00%  ok
opening partition 4 ...             100.00%  ok
opening partition 5 ...             100.00%  ok
opening partition 6 ...             100.00%  ok
opening partition 7 ...             100.00%  ok

Archive successfully decompressed as macOS.iso

とりあえずおすすめされるままにBig Surをダウンロードしてみる。
家で使っているOSはすべてCatalinaまでなので、ちょっと先取り。JetsonNanoはARM Cortex-A57だから、アップルM1チップに最適化されたBigSurのほうが相性が良いか?(たぶん関係ないけど)
いやしかし
Note: Modern NVIDIA GPUs are supported on HighSierra but not on later versions of macOS.
という記述もあるな。
一応HighSierraもダウンロードしておこう。

後半へ続く。

Express5800/110e-1EのHDDマウンタ

かなーり需要の薄い情報。

もう随分前になるが、NECの1UサーバにHDDを増設しようとしてHDDマウンタ(おそらくExpress5800/110d以前のもの、ラッチのパーツが緑色)を入手してみたところ、世代が違うと微妙にフィットせず使用できなかった、ということがあった。
その後HDDは別のサーバに移してしまっていたので、気にしていなかったのだが、またHDDをこのサーバに増設する必要が出てきたので、再トライ。
110e-1Eのもとから付いていたマウンタはラッチが薄紫、かつグリルのデザインが曲線的なもの。前回失敗のものは緑ラッチで直線的デザインなもの。110e-1Eの取説を見ると色はわからないが直線的デザインのマウンタで描かれている。だから以前は緑ラッチのものを買ったんだよ。
結論を簡単に言うと、直線的デザインで薄紫ラッチというものが存在しており、これは110e-1Eにフィットするのだ。緑と薄紫の違い以外デザイン的にはほぼ同じなのに、この2つは内側の構造が結構変更されていて、互換性がなく、薄紫ラッチは表のデザインが変わった(おそらく現行モデルでも使用している)マウンタとは互換性があるという紛らわしい事になっているらしい。

もともとついていたマウンタはこのタイプ。
https://www.amazon.co.jp/ホットプラグ対応-3-5型HDDケージ-N8154-44-Express5800-T110e-M/dp/B07SH7BNM4

python 状況整理

メインサーバ(RX1330M3)

$ which python3
/home/linuxbrew/.linuxbrew/bin/python3
$ python3 --version
Python 3.9.7
$ python3 -m pip list
Package               Version
--------------------- ---------
alembic               1.7.1
beautifulsoup4        4.10.0
biopython             1.79
bleach                4.1.0
bokeh                 2.3.3
certifi               2021.5.30
charset-normalizer    2.0.4
click                 8.0.1
configparser          5.0.2
cycler                0.10.0
dominate              2.6.0
Flask                 1.1.2
Flask-Bootstrap       3.3.7.1
flask-ldap3-login     0.9.16
Flask-Login           0.5.0
Flask-Migrate         3.1.0
Flask-Moment          1.0.2
Flask-Script          2.0.6
Flask-SQLAlchemy      2.5.1
Flask-WTF             0.15.1
greenlet              1.1.1
idna                  3.2
itsdangerous          2.0.1
Jinja2                3.0.1
joblib                1.0.1
kiwisolver            1.3.2
ldap3                 2.9.1
libxml2-python        2.9.12
Mako                  1.1.5
Markdown              3.3.4
MarkupSafe            2.0.1
matplotlib            3.4.3
meson                 0.59.1
msgpack-python        0.5.6
msgpack-tool          0.0.1
numpy                 1.21.2
packaging             21.0
pandas                1.3.2
panel                 0.12.1
param                 1.11.1
patsy                 0.5.1
Pillow                8.3.2
pip                   21.2.4
pyasn1                0.4.8
pyct                  0.4.8
PyMySQL               1.0.2
pyparsing             2.4.7
PyQt3D                5.15.4
PyQt5                 5.15.4
PyQt5-sip             12.9.0
PyQtChart             5.15.4
PyQtDataVisualization 5.15.4
PyQtNetworkAuth       5.15.4
PyQtPurchasing        5.15.4
pysam                 0.16.0.1
python-dateutil       2.8.2
pytz                  2021.1
PyVCF                 0.6.8
pyviz-comms           2.1.0
PyYAML                5.4.1
regex                 2021.8.28
requests              2.26.0
scikit-learn          0.24.2
scipy                 1.7.1
seaborn               0.11.2
setuptools            57.4.0
sip                   6.1.1
six                   1.16.0
sklearn               0.0
soupsieve             2.2.1
SQLAlchemy            1.4.23
statsmodels           0.12.2
TBB                   0.2
threadpoolctl         2.2.0
toml                  0.10.2
tornado               6.1
tqdm                  4.62.2
typing-extensions     3.10.0.2
urllib3               1.26.6
visitor               0.1.3
webencodings          0.5.1
Werkzeug              2.0.1
wheel                 0.37.0
WTForms               2.3.3


GPUサーバ(TX1310M3)

$ which python3
/home/linuxbrew/.linuxbrew/bin/python3
$ python3 --version
Python 3.9.6
$ python3 -m pip list
Package                           Version
--------------------------------- -------
backports.entry-points-selectable 1.1.0
distlib                           0.3.2
filelock                          3.0.12
pip                               21.2.4
platformdirs                      2.2.0
setuptools                        57.0.0
six                               1.16.0
virtualenv                        20.7.2
wheel                             0.36.2

virtualenvで環境切り分け
Alphafold2(Docker)用として使うときは

$ cd ~/alphafold
$ source alphafold/bin/activate
$ python3 -m pip list
Package                 Version
----------------------- -------------------
absl-py                 0.13.0
astunparse              1.6.3
biopython               1.79
cachetools              4.2.2
certifi                 2021.5.30
charset-normalizer      2.0.4
chex                    0.0.7
contextlib2             21.6.0
dm-haiku                0.0.4
dm-tree                 0.1.6
docker                  5.0.0
flatbuffers             1.12
gast                    0.4.0
google-auth             1.35.0
google-auth-oauthlib    0.4.5
google-pasta            0.2.0
grpcio                  1.34.1
h5py                    3.1.0
idna                    3.2
immutabledict           2.0.0
jax                     0.2.14
jaxlib                  0.1.70
keras-nightly           2.5.0.dev2021032900
Keras-Preprocessing     1.1.2
Markdown                3.3.4
ml-collections          0.1.0
numpy                   1.19.5
oauthlib                3.1.1
opt-einsum              3.3.0
pip                     21.2.4
protobuf                3.17.3
pyasn1                  0.4.8
pyasn1-modules          0.2.8
PyYAML                  5.4.1
requests                2.26.0
requests-oauthlib       1.3.0
rsa                     4.7.2
scipy                   1.7.0
setuptools              57.4.0
six                     1.15.0
tabulate                0.8.9
tensorboard             2.6.0
tensorboard-data-server 0.6.1
tensorboard-plugin-wit  1.8.0
tensorflow-cpu          2.5.0
tensorflow-estimator    2.5.0
termcolor               1.1.0
toolz                   0.11.1
typing-extensions       3.7.4.3
urllib3                 1.26.6
websocket-client        1.2.1
Werkzeug                2.0.1
wheel                   0.37.0
wrapt                   1.12.1

のように切り替える。


Mac mini (2018)

$ which python3
/usr/local/bin/python3    #brewで入れたpython3
$ python3 --version
Python 3.9.6
$ python3 -m pip list
Package                 Version
----------------------- -------
mmtf-python             1.1.2
msgpack                 1.0.2
numpy                   1.21.2
packaging               20.9
pip                     21.1.3
Pmw                     2.1
pymol                   2.4.0
pyparsing               2.4.7
PyQt3D                  5.15.4
PyQt5                   5.15.4
PyQt5-sip               12.9.0
PyQt6                   6.1.1
PyQt6-3D                6.1.1
PyQt6-Charts            6.1.1
PyQt6-DataVisualization 6.1.1
PyQt6-NetworkAuth       6.1.1
PyQt6-sip               13.1.0
PyQtChart               5.15.4
PyQtDataVisualization   5.15.4
PyQtNetworkAuth         5.15.4
PyQtPurchasing          5.15.4
PyQtWebEngine           5.15.4
setuptools              57.0.0
sip                     6.1.1
TBB                     0.2
toml                    0.10.2
wheel                   0.36.2


MacBook Air (Retina, 13-inch, 2020)

% which python3
/Users/kuro/.pyenv/shims/python3
% pyenv versions               
  system
* 3.8.6 (set by /Users/kuro/.pyenv/version)
  anaconda3-5.3.1
  anaconda3-5.3.1/envs/usml
% python3 --version
Python 3.8.6
% python3 -m pip list   
Package             Version
------------------- -------
appnope             0.1.1
argon2-cffi         20.1.0
async-generator     1.10
attrs               20.3.0
backcall            0.2.0
biopython           1.78
bleach              3.2.1
cffi                1.14.4
click               7.1.2
cycler              0.10.0
decorator           4.4.2
defusedxml          0.6.0
entrypoints         0.3
Flask               1.1.2
greenlet            1.0.0
ipykernel           5.3.4
ipython             7.19.0
ipython-genutils    0.2.0
ipywidgets          7.5.1
itsdangerous        1.1.0
jedi                0.17.2
Jinja2              2.11.2
joblib              0.17.0
jsonschema          3.2.0
jupyter             1.0.0
jupyter-client      6.1.7
jupyter-console     6.2.0
jupyter-core        4.7.0
jupyterlab-pygments 0.1.2
kiwisolver          1.3.1
MarkupSafe          1.1.1
matplotlib          3.3.3
mistune             0.8.4
nbclient            0.5.1
nbconvert           6.0.7
nbformat            5.0.8
nest-asyncio        1.4.3
notebook            6.1.5
numpy               1.19.4
packaging           20.7
pandas              1.1.4
pandocfilters       1.4.3
parso               0.7.1
patsy               0.5.1
pexpect             4.8.0
pickleshare         0.7.5
Pillow              8.0.1
pip                 21.2.4
prometheus-client   0.9.0
prompt-toolkit      3.0.8
ptyprocess          0.6.0
pycparser           2.20
Pygments            2.7.2
pyparsing           2.4.7
pyrsistent          0.17.3
python-dateutil     2.8.1
pytz                2020.4
pyzmq               20.0.0
qtconsole           5.0.1
QtPy                1.9.0
scikit-learn        0.23.2
scipy               1.5.4
seaborn             0.11.0
Send2Trash          1.5.0
setuptools          49.2.1
six                 1.15.0
sklearn             0.0
somoclu             1.7.5
SQLAlchemy          1.4.4
statsmodels         0.12.1
terminado           0.9.1
testpath            0.4.4
threadpoolctl       2.1.0
tornado             6.1
traitlets           5.0.5
wcwidth             0.2.5
webencodings        0.5.1
Werkzeug            1.0.1
widgetsnbextension  3.5.1

pyenvをbrewでインストールしている。
通常は3.8.6で、機械学習のテスト用にanaconda3-5.3.1(Python 3.7.0)をインストール。

% pyenv global anaconda3-5.3.1/envs/usml
% pyenv versions                        
  system
  3.8.6
  anaconda3-5.3.1
* anaconda3-5.3.1/envs/usml (set by /Users/kuro/.pyenv/version)
% python --version                      
Python 3.6.10 :: Anaconda, Inc.
% python3 -m pip list                     
Package                            Version
---------------------------------- -------------------
alabaster                          0.7.12
anaconda-client                    1.7.2
anaconda-project                   0.8.3
applaunchservices                  0.2.1
appnope                            0.1.0
appscript                          1.1.1
argh                               0.26.2
asn1crypto                         1.3.0
astroid                            2.4.2
astropy                            4.0.1.post1
atomicwrites                       1.4.0
attrs                              19.3.0
autopep8                           1.5.3
Babel                              2.8.0
backcall                           0.2.0
backports.shutil-get-terminal-size 1.0.0
beautifulsoup4                     4.9.1
bitarray                           1.4.0
bkcharts                           0.2
bleach                             3.1.5
bokeh                              2.1.1
boto                               2.49.0
Bottleneck                         1.3.2
brotlipy                           0.7.0
certifi                            2020.6.20
cffi                               1.14.0
chardet                            3.0.4
click                              7.1.2
cloudpickle                        1.5.0
clyent                             1.2.2
colorama                           0.4.3
contextlib2                        0.6.0.post1
contextvars                        2.4
cryptography                       2.9.2
cycler                             0.10.0
Cython                             0.29.21
cytoolz                            0.10.1
dask                               2.20.0
decorator                          4.4.2
defusedxml                         0.6.0
diff-match-patch                   20200713
distributed                        2.20.0
docutils                           0.16
entrypoints                        0.3
et-xmlfile                         1.0.1
fastcache                          1.1.0
filelock                           3.0.12
flake8                             3.8.3
Flask                              1.1.2
fsspec                             0.7.4
future                             0.18.2
gevent                             20.6.2
glob2                              0.7
gmpy2                              2.0.8
greenlet                           0.4.16
h5py                               2.10.0
HeapDict                           1.0.1
html5lib                           1.1
idna                               2.10
imageio                            2.9.0
imagesize                          1.2.0
immutables                         0.14
importlib-metadata                 1.7.0
intervaltree                       3.0.2
ipykernel                          5.3.2
ipython                            7.16.1
ipython-genutils                   0.2.0
ipywidgets                         7.5.1
isort                              4.3.21
itsdangerous                       1.1.0
jdcal                              1.4.1
jedi                               0.17.1
Jinja2                             2.11.2
joblib                             0.16.0
json5                              0.9.5
jsonschema                         3.2.0
jupyter                            1.0.0
jupyter-client                     6.1.6
jupyter-console                    6.1.0
jupyter-core                       4.6.3
jupyterlab                         2.1.5
jupyterlab-server                  1.2.0
keyring                            21.2.1
kiwisolver                         1.2.0
lazy-object-proxy                  1.4.3
libarchive-c                       2.9
llvmlite                           0.33.0+1.g022ab0f
locket                             0.2.0
lxml                               4.5.2
MarkupSafe                         1.1.1
matplotlib                         3.2.2
mccabe                             0.6.1
mistune                            0.8.4
mkl-fft                            1.0.14
mkl-random                         1.0.4
mkl-service                        2.3.0
mock                               4.0.2
more-itertools                     8.4.0
mpmath                             1.1.0
msgpack                            1.0.0
multipledispatch                   0.6.0
nbconvert                          5.6.1
nbformat                           5.0.7
networkx                           2.4
nltk                               3.5
nose                               1.3.7
notebook                           6.0.3
numba                              0.50.1
numexpr                            2.7.1
numpy                              1.17.0
numpydoc                           1.1.0
olefile                            0.46
openpyxl                           3.0.4
packaging                          20.4
pandas                             1.0.5
pandocfilters                      1.4.2
parso                              0.7.0
partd                              1.1.0
path                               13.1.0
pathlib2                           2.3.5
pathtools                          0.1.2
patsy                              0.5.1
pep8                               1.7.1
pexpect                            4.8.0
pickleshare                        0.7.5
Pillow                             7.2.0
pip                                20.1.1
pkginfo                            1.5.0.1
pluggy                             0.13.1
ply                                3.11
prometheus-client                  0.8.0
prompt-toolkit                     3.0.5
psutil                             5.7.0
ptyprocess                         0.6.0
py                                 1.9.0
pycodestyle                        2.6.0
pycosat                            0.6.3
pycparser                          2.20
pycrypto                           2.6.1
pycurl                             7.43.0.5
pydocstyle                         5.0.2
pyflakes                           2.2.0
Pygments                           2.6.1
pylint                             2.5.3
pyodbc                             4.0.0-unsupported
pyOpenSSL                          19.1.0
pyparsing                          2.4.7
pyrsistent                         0.16.0
PySocks                            1.7.1
pytest                             5.4.3
python-dateutil                    2.8.1
python-jsonrpc-server              0.3.4
python-language-server             0.34.1
pytz                               2020.1
PyWavelets                         1.1.1
PyYAML                             5.3.1
pyzmq                              19.0.1
QDarkStyle                         2.8.1
QtAwesome                          0.7.2
qtconsole                          4.7.5
QtPy                               1.9.0
regex                              2020.6.8
requests                           2.24.0
rope                               0.17.0
Rtree                              0.9.4
ruamel-yaml                        0.15.87
scikit-image                       0.16.2
scikit-learn                       0.23.1
scipy                              1.5.0
seaborn                            0.10.1
Send2Trash                         1.5.0
setuptools                         49.2.0.post20200714
simplegeneric                      0.8.1
singledispatch                     3.4.0.3
six                                1.15.0
snowballstemmer                    2.0.0
sortedcollections                  1.2.1
sortedcontainers                   2.2.2
soupsieve                          2.0.1
Sphinx                             3.1.2
sphinxcontrib-applehelp            1.0.2
sphinxcontrib-devhelp              1.0.2
sphinxcontrib-htmlhelp             1.0.3
sphinxcontrib-jsmath               1.0.1
sphinxcontrib-qthelp               1.0.3
sphinxcontrib-serializinghtml      1.1.4
sphinxcontrib-websupport           1.2.3
spyder                             4.1.4
spyder-kernels                     1.9.2
SQLAlchemy                         1.3.18
statsmodels                        0.11.1
sympy                              1.6.1
tables                             3.6.1
tblib                              1.6.0
terminado                          0.8.3
testpath                           0.4.4
threadpoolctl                      2.1.0
toml                               0.10.1
toolz                              0.10.0
tornado                            6.0.4
tqdm                               4.47.0
traitlets                          4.3.3
typed-ast                          1.4.1
typing-extensions                  3.7.4.2
ujson                              1.35
unicodecsv                         0.14.1
urllib3                            1.25.9
watchdog                           0.10.3
wcwidth                            0.2.5
webencodings                       0.5.1
Werkzeug                           1.0.1
wheel                              0.34.2
widgetsnbextension                 3.5.1
wrapt                              1.11.2
wurlitzer                          2.0.1
xlrd                               1.2.0
XlsxWriter                         1.2.9
xlwings                            0.19.5
xlwt                               1.2.0
yapf                               0.30.0
zict                               2.0.0
zipp                               3.1.0
zope.event                         4.4
zope.interface                     4.7.1

富士通サーバPRIMERGY RX200S7にIvy BridgeのCPUは搭載可能か

駄目でした。ちーん。


そうとう今更なんだが・・・

RX200S7はE5-2600系Sandy Bridge世代のXeon CPUを搭載している。
Intelのtic-toc戦略によりSandy Bridgeとその次の世代のIvy Bridgeは同一アーキテクチャで基本互換性があることになっている。

この基本、ってところが問題で、CPUとマザーボードは必ずしもアーキテクチャがあっているから動作するわけではなく、ファームウェアbiosが対応していることが必要らしい。

そんなわけで、ソケットも一緒だし行けるかなあと買ってみたところ見事に轟沈。
電源を入れてもbiosどころか何も映らずエラーすら出ない沈黙。

なんというかE5のXeonなんて普通、業務用なわけで、あえて世代違いの換装なんて冒険しないのよね。故に情報もほとんど出回ってなくて、検索しても何も出てこなかった。ということで人柱になってしまいましたとさ。

RX200S7, RX300S7にE5-2650v2は使えませんからね。

SDカードの規格

なんかわけわからん。

ファイルシステム規格(容量帯)(SD, SDHC, SDXC, SDUC)下位互換性あり。
バスインターフェーススピード規格(無印,UHS-I, UHS-II, UHS-III, SD Express)
スピードクラス規格

  • ビデオスピードクラス(V6, V10, V30, V60, V90)
  • UHS スピードクラス(U1, U3)
  • スピードクラス(C2, C4, C6, C10)

アプリケーションパフォーマンスクラス(A1, A2)

ファイルシステム規格は容量が変われば自動的に変わるので迷いはしない。機器の対応もはっきりしている。
その他の規格も基本右に行くほど高規格だけど一部規格は下位互換もなかったりする。
(SD ExpressをUHS-IIIバスに使用してもUHS-Iとしてしか機能しないとか)
そもそもUHS-IIIとかSD Expressなんてカード本当に売っているのか?

スピードクラスは更に混沌としている。このクラスは主に書き込み性能。

C2<C4<C6=V6<C10=U1=V10<U3=V30<V60<V90

C10U3だとU3の性能となるらしく、まさに規格の乱立。
C10U1V90とC10U3V90だと差はあるのか?と思ったら、U1でV90という商品は見当たらない。

アプリケーションパフォーマンスクラスに至ってはもうわかりません。

AlphaFold2 総括

一部業界で話題沸騰のAlphaFold2だが、ソースの公開から一月ちょっと遅れで、ようやく自前サーバで解析できる環境を構築した。

要求スペック
2.5TB以上のSSD/HDD容量 (必須、SSD推奨)
CUDA11に対応しているNVIDIAGPU(推奨)
大容量(32GB以上)のRAM(推奨)

だそうで。
うちにあるサーバのスペック
HDD: 8TB (RAID0
GPU: NVIDIA GeForce GT710 (1GB)
RAM: 64GB
CPU: E3-1230v6

当初GPUがGT710しかなくて、それだと初期の段階でメモリー不足となって止まってしまった。
そこで、GPUなしの設定で試してみるも、途中でエラーが出て先に進まない、という結果に終わった。(結果として、このエラーの原因は与えたFASTAファイルの末尾に余計な*が入っていたためとのちに判明。GPUなしでも問題なかった可能性もある。)

その後GPU入手
GPU: NVIDIA GeForce RTX3060 (12G)

あいかわらずエラーで先に進まない、と悩んだが、一点目は先に書いたとおりFASTAファイルの不備、二点目はRTX3060とCUDA11.0の組み合わせの問題であった。RTX30シリーズはCUDA11.1以上でないと不具合があるらしい。githubから落としてきたファイルで、docker上で動作する方式を選択した場合、dockerイメージの構築の際に読み込むdocker/Dockerfileの中でCUDA11.1を選択しておく必要がある。なお、動作中のGPUをモニタリングする限り、GPUメモリは2Gは常に使用していたので、それ以上はないと動作しないんじゃなかろうか。

これら問題を解消した結果、無事にAlphaFold2が走り切るようになった。

Google colab版はMMseqs2を使っていてHHblitsを使う正式版よりも精度が落ちるとの話である。しかしこのHHBritsはやたらめったら時間がかかるようで、うちの環境ではここだけで6時間ほどかかる。google colab版では5分ほどで完了することを考えると、精度向上との天秤かなあ。しかしGoogle colabの結果も素人目にはほとんど差がわからないのだが。

f:id:k-kuro:20210829101127p:plainf:id:k-kuro:20210829101148p:plainf:id:k-kuro:20210829101157p:plain
green: Arabidopsis Flowering locus T(FT) X線結晶構造解析
magenta: Ipomoea nil FT Full spec AlphaFold2
cyan: Ipomoea nil FT Google colab AlphaFold2

追記。
当初4TB のHDD(WD RED)をストライピングしたディスクにデータベースを入れていたのだが、これを4TBのSSD(SATAIII接続)に置き換えたところ劇的なスピードアップが実現した。
だいたい6時間ほどかかっていた解析が1時間程度で完了するようになった。結局の所データベースの読み出しに時間がかかっていた模様。というわけでさらにSATAIIIからNVMeにすればもっと速くなりそうな気もするが、うちの環境では結局pci-e3.0スロットに増設となるためちょっと面倒で、実効速度もそこまで上がらないかもしれない



AlphaFold2とは。
地球上の生物の体の大部分はタンパク質によって構成されている。いわゆる遺伝子とはタンパク質の設計図であり、多くの生物ではDNAとして情報を持っている。筋肉など体を構成したり、消化酵素をはじめ、体の機能性を維持するための酵素を形作るため、設計図であるDNAからタンパク質を合成する。(いま問題のCOVID19など一部のウイルスの遺伝子はRNAであるが、通常はタンパク質を作るとき、一時的な設計図のコピーとしてRNAが作られる。)
さて、DNAの設計図からどのようにタンパク質が作られるかというと、DNAの遺伝情報が4種類の塩基(A,T,G,C)で記述されていて、それらをもとに数十種類のアミノ酸が順に指定されており、まずそれらのアミノ酸を1次元的(紐状)に連結させたもの(ペプチド)を形成する。しかし、筋肉であったり、酵素であったり、最終的なタンパク質は3次元(立体)でなければ意味がなく、そのためには合成された1次元のペプチドをうまく折りたたむことで立体の構造をとらせるわけだ。ところがこの1次元のペプチドから3次元のタンパク質にどうやって折りたたむのか、ということの原理原則が実はまだ完全には解明されていない。個々のアミノ酸の特性や、繋がり方から、分子としての結合の角度などがある程度は計算することができ、ある程度の部分的な構造というのは予測できるが、アミノ酸の配列だけからは全体像の完全な予測がこれまでできていなかった。構造を知るには基本的にはX線構造解析など、実際にタンパク質を超高解像度で観察することで知るほかないが、これには莫大な時間、費用がかかるため、ごく一部のタンパク質でしか解析がされていない。
そこで昨今、各分野で開発が盛んなAIを用い、タンパク質の構造予測を実現しようというプロジェクトが各所で走り、しのぎを削ってきたわけだが、その中でダントツの解析精度を誇るプログラムとしてAlphaFoldが登場、そしてそのバージョンアップ版AlphaFold2が発表された。しかしDeep Mindという企業が開発したこともあり、高い精度が認められてはいたが、それを利用できるのは限られた研究チームでしかなかったのだが、先月、満を持してNatureに発表、そしてプログラムソースがオープンされたというわけだ。

AlphaFold2のその後2.2

いろいろわけがわからなくなってきている(特にPython絡み)ので、一旦minicondaもbrewで入れたpython3もアンインストールした。

(minicondaは~/miniconda3にインストールされているのでフォルダまるごとrm -rf)
(python3は $brew uninstall python3したあと$rm -rf /home/linuxbrew/.linuxbrew/bin/python3.9 これをやっておかないとpipで入れたモジュールが残り、python3をインストールし直したらそのまま復活してしまう。)

改めてpython3をbrewで入れ直し、今回はvirtualenvを入れる。
anaconda, minicondaはcondaとpipをまぜこぜに使うととたんに不整合が出るので、素のpython3にpipで環境構築したほうが結局はいい気がする。
その上でvirtualenvで環境を切り分けていこうかと思う。
メインのデータベースサーバはあまり複数の環境を切り替えることもないのでバーチャル環境はあえて入れていないが、機械学習関係はとかくバージョンの整合性が問題となるので、環境切り分けが重要そうだ。

ということで

python3 -m pip install virtualenv
virtualenv alphafold
source alphafold/bin/activate

これでvirtual環境に入り、

(alphafold) [kuro@tx1310m3 alphafold]$

プロンプトがこんなふうに変わることを確認
なお、virtual環境から抜けるには

deactivate

と入れる。

素の環境では

$ pip3 list
Package                           Version
--------------------------------- -------
backports.entry-points-selectable 1.1.0
distlib                           0.3.2
filelock                          3.0.12
pip                               21.2.4
platformdirs                      2.2.0
setuptools                        57.0.0
six                               1.16.0
virtualenv                        20.7.2
wheel                             0.36.2

だったが、
alphafold環境に入って

python3 -m pip install -r requirements.txt

とモジュールをインストールすると

$ pip3 list
Package                 Version
----------------------- -------------------
absl-py                 0.13.0
astunparse              1.6.3
biopython               1.79
cachetools              4.2.2
certifi                 2021.5.30
charset-normalizer      2.0.4
chex                    0.0.7
contextlib2             21.6.0
dm-haiku                0.0.4
dm-tree                 0.1.6
docker                  5.0.0
flatbuffers             1.12
gast                    0.4.0
google-auth             1.35.0
google-auth-oauthlib    0.4.5
google-pasta            0.2.0
grpcio                  1.34.1
h5py                    3.1.0
idna                    3.2
immutabledict           2.0.0
jax                     0.2.14
jaxlib                  0.1.70
keras-nightly           2.5.0.dev2021032900
Keras-Preprocessing     1.1.2
Markdown                3.3.4
ml-collections          0.1.0
numpy                   1.19.5
oauthlib                3.1.1
opt-einsum              3.3.0
pip                     21.2.4
protobuf                3.17.3
pyasn1                  0.4.8
pyasn1-modules          0.2.8
PyYAML                  5.4.1
requests                2.26.0
requests-oauthlib       1.3.0
rsa                     4.7.2
scipy                   1.7.0
setuptools              57.4.0
six                     1.15.0
tabulate                0.8.9
tensorboard             2.6.0
tensorboard-data-server 0.6.1
tensorboard-plugin-wit  1.8.0
tensorflow-cpu          2.5.0
tensorflow-estimator    2.5.0
termcolor               1.1.0
toolz                   0.11.1
typing-extensions       3.7.4.3
urllib3                 1.26.6
websocket-client        1.2.1
Werkzeug                2.0.1
wheel                   0.37.0
wrapt                   1.12.1

こうなった。
deactivateすると、もとのリストに戻ることも確認。

ちょっと気になるのはRTX30とtensorflowのバージョンの適合性。なんかこれ問題があったような気がしてきた。今更ながら。

コレだ。
github.com

docker/Dockerfileの15行目
ARG CUDA=11.0

ARG CUDA=11.1
にする。CUDA 11.0がRTX30に対応していないのが原因なので11.1に変えるということらしい。
コレで

W external/org_tensorflow/tensorflow/stream_executor/gpu/asm_compiler.cc:235] Falling back to the CUDA driver for PTX compilation; ptxas does not support CC 8.6

ここは解消するに違いない。
さあ、6時間後に歓喜の瞬間が来るか?


キターーーーーーーー!
長い道のりであった。
しかし1タンパク質の解析に7時間程度かかっているのはやはりSSD推奨のところをHDDでごまかしているからかな。SSDも買ってもらおう。そうしよう。

AlphaFold2のその後2.1

前回、どうもTensorflowのバージョンがなんかコンフリクトしているっぽく、自前で環境インストールしたのがまずかったのかも、と思ったので、一旦Dockerに戻ってみた。Docker自体にエラーの原因はないと思うし、Dockerの中ならバージョンが合わないということもないだろうと、

・・・・
I0827 15:11:45.201521 139638022334272 run_docker.py:193] I0827 06:11:45.200996 139677094938432 pipeline.py:207] Total number of templates (NB: this can include bad templates and is later filtered to top 4): 20.
I0827 15:11:45.240777 139638022334272 run_docker.py:193] I0827 06:11:45.240107 139677094938432 run_alphafold.py:142] Running model model_1
I0827 15:11:51.314033 139638022334272 run_docker.py:193] I0827 06:11:51.313426 139677094938432 model.py:132] Running predict with shape(feat) = {'aatype': (4, 177), 'residue_index': (4, 177), 'seq_length': (4,), 'template_aatype': (4, 4, 177), 'template_all_atom_masks': (4, 4, 177, 37), 'template_all_atom_positions': (4, 4, 177, 37, 3), 'template_sum_probs': (4, 4, 1), 'is_distillation': (4,), 'seq_mask': (4, 177), 'msa_mask': (4, 508, 177), 'msa_row_mask': (4, 508), 'random_crop_to_size_seed': (4, 2), 'template_mask': (4, 4), 'template_pseudo_beta': (4, 4, 177, 3), 'template_pseudo_beta_mask': (4, 4, 177), 'atom14_atom_exists': (4, 177, 14), 'residx_atom14_to_atom37': (4, 177, 14), 'residx_atom37_to_atom14': (4, 177, 37), 'atom37_atom_exists': (4, 177, 37), 'extra_msa': (4, 5120, 177), 'extra_msa_mask': (4, 5120, 177), 'extra_msa_row_mask': (4, 5120), 'bert_mask': (4, 508, 177), 'true_msa': (4, 508, 177), 'extra_has_deletion': (4, 5120, 177), 'extra_deletion_value': (4, 5120, 177), 'msa_feat': (4, 508, 177, 49), 'target_feat': (4, 177, 22)}
I0827 15:11:52.923670 139638022334272 run_docker.py:193] 2021-08-27 06:11:52.922207: W external/org_tensorflow/tensorflow/stream_executor/gpu/asm_compiler.cc:235] Falling back to the CUDA driver for PTX compilation; ptxas does not support CC 8.6
I0827 15:11:52.923956 139638022334272 run_docker.py:193] 2021-08-27 06:11:52.922279: W external/org_tensorflow/tensorflow/stream_executor/gpu/asm_compiler.cc:238] Used ptxas at ptxas
I0827 15:11:52.979863 139638022334272 run_docker.py:193] 2021-08-27 06:11:52.979194: E external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_driver.cc:625] failed to get PTX kernel "shift_right_logical_3" from module: CUDA_ERROR_NOT_FOUND: named symbol not found
I0827 15:11:52.990681 139638022334272 run_docker.py:193] 2021-08-27 06:11:52.990152: E external/org_tensorflow/tensorflow/compiler/xla/pjrt/pjrt_stream_executor_client.cc:2040] Execution of replica 0 failed: Internal: Could not find the corresponding function
I0827 15:11:53.107557 139638022334272 run_docker.py:193] Traceback (most recent call last):
I0827 15:11:53.107832 139638022334272 run_docker.py:193] File "/app/alphafold/run_alphafold.py", line 310, in <module>
I0827 15:11:53.108034 139638022334272 run_docker.py:193] app.run(main)
I0827 15:11:53.108211 139638022334272 run_docker.py:193] File "/opt/conda/lib/python3.7/site-packages/absl/app.py", line 312, in run
I0827 15:11:53.108422 139638022334272 run_docker.py:193] _run_main(main, args)
I0827 15:11:53.108574 139638022334272 run_docker.py:193] File "/opt/conda/lib/python3.7/site-packages/absl/app.py", line 258, in _run_main
I0827 15:11:53.108716 139638022334272 run_docker.py:193] sys.exit(main(argv))
I0827 15:11:53.108857 139638022334272 run_docker.py:193] File "/app/alphafold/run_alphafold.py", line 292, in main
I0827 15:11:53.109008 139638022334272 run_docker.py:193] random_seed=random_seed)
I0827 15:11:53.109150 139638022334272 run_docker.py:193] File "/app/alphafold/run_alphafold.py", line 149, in predict_structure
I0827 15:11:53.109290 139638022334272 run_docker.py:193] prediction_result = model_runner.predict(processed_feature_dict)
I0827 15:11:53.109431 139638022334272 run_docker.py:193] File "/app/alphafold/alphafold/model/model.py", line 133, in predict
I0827 15:11:53.109569 139638022334272 run_docker.py:193] result = self.apply(self.params, jax.random.PRNGKey(0), feat)
I0827 15:11:53.109706 139638022334272 run_docker.py:193] File "/opt/conda/lib/python3.7/site-packages/jax/_src/random.py", line 75, in PRNGKey
I0827 15:11:53.109843 139638022334272 run_docker.py:193] k1 = convert(lax.shift_right_logical(seed_arr, lax._const(seed_arr, 32)))
I0827 15:11:53.109997 139638022334272 run_docker.py:193] File "/opt/conda/lib/python3.7/site-packages/jax/_src/lax/lax.py", line 386, in shift_right_logical
I0827 15:11:53.110138 139638022334272 run_docker.py:193] return shift_right_logical_p.bind(x, y)
I0827 15:11:53.110274 139638022334272 run_docker.py:193] File "/opt/conda/lib/python3.7/site-packages/jax/core.py", line 265, in bind
I0827 15:11:53.110411 139638022334272 run_docker.py:193] out = top_trace.process_primitive(self, tracers, params)
I0827 15:11:53.110548 139638022334272 run_docker.py:193] File "/opt/conda/lib/python3.7/site-packages/jax/core.py", line 610, in process_primitive
I0827 15:11:53.110686 139638022334272 run_docker.py:193] return primitive.impl(*tracers, **params)
I0827 15:11:53.110825 139638022334272 run_docker.py:193] File "/opt/conda/lib/python3.7/site-packages/jax/interpreters/xla.py", line 274, in apply_primitive
I0827 15:11:53.110984 139638022334272 run_docker.py:193] return compiled_fun(*args)
I0827 15:11:53.111125 139638022334272 run_docker.py:193] File "/opt/conda/lib/python3.7/site-packages/jax/interpreters/xla.py", line 390, in _execute_compiled_primitive
I0827 15:11:53.111263 139638022334272 run_docker.py:193] out_bufs = compiled.execute(input_bufs)
I0827 15:11:53.111400 139638022334272 run_docker.py:193] RuntimeError: Internal: Could not find the corresponding function


だめだ〜
ただ、なんか言っていることはさっきとは違うみたいなんで、そのへんを詳しく分解していくしかあるまい。
ちなみに今回、アミノ酸サイズが小さいタンパク質を投げてみたが、かかった時間はやはり6時間位で殆ど変わらない。
これはどうもタンパク質の長さが問題ではなくて比較対象となるデータベースの読み込みに時間がかかっているのだろうか。
だからこそのSSD推奨なんだろうな。3TBのSSDとか幾らするんだ?1.5Tをストライピングするにしても。

そこまでするならインチキサーバじゃなくて1台組み上げたほうが早いような・・・
マザボ(ある程度枯れたシステムにしたほうがたぶんいい)
CPU(AMDに浮気するか?)
メモリ(128Gくらい?)
SSD (3TB)
ケース(古いminiATXケース流用でもいいか)
があれば完璧。

あとは、エラーが出る前までのところをスキップしてできるようにスクリプトをどうにかするか。

AlphaFold2のその後2

何が問題なのか一つわかった。

WARNING: Ignoring invalid symbol '*' at pos. 492 in line 2 of /tmp/tmp2hwa2yuo/query.a3m

これだ。
なんとなく自分の持っているアミノ酸データでFASTAファイルを自分で作って投げていたわけだが
ストップコドンのところのアミノ酸を習慣的にアスタリスクにしてあった。
それがお気に召さなかったようで、アスタリスクを消したFASTAファイルを作ったら前回エラーが出たポイントをクリアした。

ERRORじゃなくてWARNINGだったのでスルーしてたわ。

ということで気を取り直して
ついでに一旦Docker上の環境をやめて直にインストールでやってみる。GPUも手に入ったのでそれも使って

www.af2anatomia.jp

/home/kuro/miniconda3/envs/alphafold/lib/python3.8/site-packages/absl/flags/_validators.py:203: UserWarning: Flag --preset has a non-None default value; therefore, mark_flag_as_required will pass even if flag is not specified in the command line!
  warnings.warn(
I0826 20:34:58.412197 140720169187136 templates.py:836] Using precomputed obsolete pdbs /mnt/HDD2/af_database//pdb_mmcif/obsolete.dat.
I0826 20:34:59.711968 140720169187136 xla_bridge.py:236] Unable to initialize backend 'tpu_driver': Not found: Unable to find driver in registry given worker: 
I0826 20:34:59.772896 140720169187136 xla_bridge.py:236] Unable to initialize backend 'tpu': Invalid argument: TpuPlatform is not available.
I0826 20:35:00.382656 140720169187136 run_alphafold.py:267] Have 1 models: ['model_1']
I0826 20:35:00.382773 140720169187136 run_alphafold.py:280] Using random seed 8088228927505236060 for the data pipeline
I0826 20:35:00.383199 140720169187136 jackhmmer.py:130] Launching subprocess "/home/kuro/miniconda3/envs/alphafold/bin/jackhmmer -o /dev/null -A /tmp/tmpwx4x1v4e/output.sto --noali --F1 0.0005 --F2 5e-05 --F3 5e-07 --incE 0.0001 -E 0.0001 --cpu 8 -N 1 /home/kuro/test5.fasta /mnt/HDD2/af_database//uniref90/uniref90.fasta"
I0826 20:35:00.406429 140720169187136 utils.py:36] Started Jackhmmer (uniref90.fasta) query
I0826 20:40:26.839800 140720169187136 utils.py:40] Finished Jackhmmer (uniref90.fasta) query in 326.433 seconds
I0826 20:40:26.901696 140720169187136 jackhmmer.py:130] Launching subprocess "/home/kuro/miniconda3/envs/alphafold/bin/jackhmmer -o /dev/null -A /tmp/tmp86y_pxlt/output.sto --noali --F1 0.0005 --F2 5e-05 --F3 5e-07 --incE 0.0001 -E 0.0001 --cpu 8 -N 1 /home/kuro/test5.fasta /mnt/HDD2/af_database//mgnify/mgy_clusters.fa"
I0826 20:40:26.917324 140720169187136 utils.py:36] Started Jackhmmer (mgy_clusters.fa) query
I0826 20:45:57.057168 140720169187136 utils.py:40] Finished Jackhmmer (mgy_clusters.fa) query in 330.140 seconds
I0826 20:45:58.580264 140720169187136 hhsearch.py:76] Launching subprocess "/home/kuro/miniconda3/envs/alphafold/bin/hhsearch -i /tmp/tmpkl7ayr4a/query.a3m -o /tmp/tmpkl7ayr4a/output.hhr -maxseq 1000000 -d /mnt/HDD2/af_database//pdb70/pdb70"
I0826 20:45:58.635203 140720169187136 utils.py:36] Started HHsearch query
I0826 20:50:30.194164 140720169187136 utils.py:40] Finished HHsearch query in 271.558 seconds
I0826 20:50:33.453487 140720169187136 hhblits.py:128] Launching subprocess "/home/kuro/miniconda3/envs/alphafold/bin/hhblits -i /home/kuro/test5.fasta -cpu 4 -oa3m /tmp/tmpkobbonvm/output.a3m -o /dev/null -n 3 -e 0.001 -maxseq 1000000 -realign_max 100000 -maxfilt 100000 -min_prefilter_hits 1000 -d /mnt/HDD2/af_database//bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt -d /mnt/HDD2/af_database//uniclust30/uniclust30_2018_08/uniclust30_2018_08"
I0826 20:50:33.492181 140720169187136 utils.py:36] Started HHblits query
I0827 02:29:46.357933 140720169187136 utils.py:40] Finished HHblits query in 20352.865 seconds

このへんまでは順調。
て、ここまでで6時間位かかってるけど。このへんはCPU勝負らしいのでもうちょっとCPUスペックをあげるべきなのかも。

んでもってこのあとテンプレートを探す作業が始まり

I0827 02:29:46.503336 140720169187136 templates.py:848] Searching for template for: None
W0827 02:29:46.504062 140720169187136 templates.py:131] Template structure not in release dates dict: 1g87
I0827 02:29:46.504361 140720169187136 templates.py:715] Reading PDB entry from /mnt/HDD2/af_database//pdb_mmcif/mmcif_files/1g87.cif. Query: MAFR・・・・
I0827 02:29:56.245360 140720169187136 templates.py:270] Found an exact template match 3rx5_A.
I0827 02:29:57.180096 140720169187136 pipeline.py:200] Uniref90 MSA size: 8133 sequences.
I0827 02:29:57.180236 140720169187136 pipeline.py:201] BFD MSA size: 2683 sequences.
I0827 02:29:57.180323 140720169187136 pipeline.py:202] MGnify MSA size: 501 sequences.
I0827 02:29:57.180396 140720169187136 pipeline.py:203] Final (deduplicated) MSA size: 11174 sequences.
I0827 02:29:57.180535 140720169187136 pipeline.py:205] Total number of templates (NB: this can include bad templates and is later filtered to top 4): 20.
I0827 02:29:58.202671 140720169187136 run_alphafold.py:142] Running model model_1
I0827 02:30:05.643637 140720169187136 model.py:131] Running predict with shape(feat) = {'aatype': (4, 492), 'residue_index': (4, 492), 'seq_length': (4,), 'template_aatype': (4, 4, 492), 'template_all_atom_masks': (4, 4, 492, 37), 'template_all_atom_positions': (4, 4, 492, 37, 3), 'template_sum_probs': (4, 4, 1), 'is_distillation': (4,), 'seq_mask': (4, 492), 'msa_mask': (4, 508, 492), 'msa_row_mask': (4, 508), 'random_crop_to_size_seed': (4, 2), 'template_mask': (4, 4), 'template_pseudo_beta': (4, 4, 492, 3), 'template_pseudo_beta_mask': (4, 4, 492), 'atom14_atom_exists': (4, 492, 14), 'residx_atom14_to_atom37': (4, 492, 14), 'residx_atom37_to_atom14': (4, 492, 37), 'atom37_atom_exists': (4, 492, 37), 'extra_msa': (4, 5120, 492), 'extra_msa_mask': (4, 5120, 492), 'extra_msa_row_mask': (4, 5120), 'bert_mask': (4, 508, 492), 'true_msa': (4, 508, 492), 'extra_has_deletion': (4, 5120, 492), 'extra_deletion_value': (4, 5120, 492), 'msa_feat': (4, 508, 492, 49), 'target_feat': (4, 492, 22)}
2021-08-27 02:30:06.870769: W external/org_tensorflow/tensorflow/stream_executor/gpu/asm_compiler.cc:81] Couldn't get ptxas version string: Internal: Running ptxas --version returned 32512
2021-08-27 02:30:06.893457: F external/org_tensorflow/tensorflow/compiler/xla/service/gpu/nvptx_compiler.cc:479] ptxas returned an error during compilation of ptx to sass: 'Internal: ptxas exited with non-zero error code 32512, output: '  If the error message indicates that a file could not be written, please verify that sufficient filesystem space is provided.
Fatal Python error: Aborted

Thread 0x00007ffbf7b27740 (most recent call first):
  File "/home/kuro/miniconda3/envs/alphafold/lib/python3.8/site-packages/jax/interpreters/xla.py", line 385 in backend_compile
  File "/home/kuro/miniconda3/envs/alphafold/lib/python3.8/site-packages/jax/interpreters/xla.py", line 322 in xla_primitive_callable
  File "/home/kuro/miniconda3/envs/alphafold/lib/python3.8/site-packages/jax/_src/util.py", line 179 in cached
  File "/home/kuro/miniconda3/envs/alphafold/lib/python3.8/site-packages/jax/_src/util.py", line 186 in wrapper
  File "/home/kuro/miniconda3/envs/alphafold/lib/python3.8/site-packages/jax/interpreters/xla.py", line 273 in apply_primitive
  File "/home/kuro/miniconda3/envs/alphafold/lib/python3.8/site-packages/jax/core.py", line 610 in process_primitive
  File "/home/kuro/miniconda3/envs/alphafold/lib/python3.8/site-packages/jax/core.py", line 265 in bind
  File "/home/kuro/miniconda3/envs/alphafold/lib/python3.8/site-packages/jax/_src/lax/lax.py", line 386 in shift_right_logical
  File "/home/kuro/miniconda3/envs/alphafold/lib/python3.8/site-packages/jax/_src/random.py", line 75 in PRNGKey
  File "/home/kuro/alphafold/alphafold/model/model.py", line 133 in predict
  File "/home/kuro/alphafold/run_alphafold.py", line 149 in predict_structure
  File "/home/kuro/alphafold/run_alphafold.py", line 284 in main
  File "/home/kuro/miniconda3/envs/alphafold/lib/python3.8/site-packages/absl/app.py", line 258 in _run_main
  File "/home/kuro/miniconda3/envs/alphafold/lib/python3.8/site-packages/absl/app.py", line 312 in run
  File "/home/kuro/alphafold/run_alphafold.py", line 310 in <module>

うわあ〜最後の最後でまたエラーが出て止まってやがる。なんかTensorflowのバージョン不整合っぽいな。
もうちょっとか。
しかし、6時間かけてエラーは辛すぎ。
もうちょっと小さい分子でテストすべきだな。