kuroの覚え書き

96の個人的覚え書き

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に発表、そしてプログラムソースがオープンされたというわけだ。