GEMMI and Servalcat restrain REFMAC5

https://doi.org/10.1107/S2059798323002413 Servalcat論文第二弾出ました.去年のCCP4 study weekendのproceedingsの一部です.同じvirtual issueにCCP4の新しい論文も載ります. REFMAC5は20年以上前に書かれたプログラムで,特にその中のMAKECIFと呼ばれる機能がモデル(pdb/mmcif)を読んでrestraintを作るんですが,歴史的経緯からロジックが必要以上に複雑になっており,メンテナンスがしづらくなっていました. そこでいま開発が活発に進んでいるGEMMIのライブラリを利用して置き換えようというのが今回の内容です. これによって,例えば今までREFMAC5が扱えなかったmicroheterogeneityなどが扱えるようになりました. また,REFMAC5は最初にmonomer library (今や35298個ものmonomerが収録されています)の中身を全部読んでから処理する仕組みだったりして精密化がスタートするまで時間がかかっていたんですが,この部分が一瞬で終わるようになりました.精密化計算の方がずっと時間はかかるので,全体の中ではわずかな改善ですが. 詳細は論文にありますが,この機能はServalcatに実装された"refmacat"コマンドを通じて使えるようになっています. 先日出たCCP4 8.0.011にこっそりとServalcat 0.4.0が入ったので,CCP4をアップデートすれば使えるようになります. 今まで refmac5 xyzin ... のようにして使っていたのを, refmacat xyzin ...のようにコマンド名だけ置き換えればそのまま動くというわけです. モデルファイルの読み込みはGEMMIライブラリを通じて行われるので,GEMMIがサポートしている形式なら何でも読めることになります. Gzipのまま読めるのは地味に嬉しいポイントです. 出力モデルもGEMMIを使って再出力されるので,hybrid-36によりPDB形式でもほとんどの巨大分子が扱えます. 結局各種プログラムのmmCIFへの対応状況が悪く,hybrid-36 PDBの方が勝手が良いというのが現状かと思われます. 未対応の問題として,4文字以上の残基名はREFMAC5ではまだ使えません. そう遠くない未来に3文字IDが枯渇するので,各種プログラムは対応を迫られています. それまでにREFMAC5が直るか,あるいはServalcatがREFMAC5をすっかり置き換えるようになっているかもしれません(?) またこうなるとPDB形式は本当に使えなくなるので,ついにmmCIFへの移行も必要です. とはいえ手元で何らかの3文字IDで作り直してしまえば動かせるので,結局みんな何とかしてPDB形式を使い続けるかもしれませんが.

May 4, 2023

Servalcatのインストール

Servalcat 0.4.6からC++コードを含むようになり,少々配布方法が複雑になってしまった. C++側からもPython側からもGEMMIが必要なため,(Pythonライブラリとしての) GEMMIと同じコンパイラでビルドしなければGEMMIオブジェクトの互換性が失われる. PyPI上で配布している(pipでインストールされる)バイナリは本家GEMMIと同一方法でビルドしているので,パッケージ版は問題なく動くはず. ただし特殊なプラットフォームでは自力でのビルドが必要になる.またPython 3.6以前を使う場合も自力でのビルドが必要である. パッケージ版 上述のように, python -mpip install -U servalcat で入るはず.ただしここでビルドが始まった場合(= 環境に合う配布バイナリが無かった)は,一見うまくいってもGEMMIを配布バイナリからインストールしてる場合は動かない. 下記の「自分でビルドする場合」を参照. Github最新版 Github最新版 (パッケージ版に未収録)をインストールする場合,Github Actionsで自動ビルドされたバイナリを使うことができる. Githubにログインした状態でないとダウンロードできないので注意. https://github.com/keitaroyam/servalcat/actions/workflows/ci.yml のworkflow runsのうち,最新のrunをクリック Artifactsから"wheels2"をダウンロード zipを解凍し,以下のコマンドを実行. wheels2はzipの中身が展開された場所(ディレクトリ)の名前 python -mpip install -U --find-links=wheels2/ servalcat 自分でビルドする場合 まずパッケージ版のGEMMIを自分でビルドする. Github最新版のGEMMIは動かない可能性があるので注意(Servalcatはパッケージ版の最新のGEMMIで動くように作っている). どのようにしても良いが,pipに --no-binary オプションがあるのでそれが使えるかも(未検証) python -mpip install --force-reinstall --no-binary gemmi gemmi それからGithub最新版のServalcatをソースからビルド python -mpip install -U git+https://github.com/keitaroyam/servalcat.git これで動くはず(未検証)

May 1, 2023 · (updated March 28, 2024)