Rosettaはタンパク質モデリング等を行うソフトウェアパッケージですが、インストール段階で躓くこともしばしば。
コケた所をどうやって解決したか毎度忘れてググる、の繰り返しだったので、備忘録として残しておきます。
2023年8月31日時点での情報なので、今後変わってくる箇所もあるかもしれません。
環境
Ubuntu 22.04 LTS
Rosetta 3.13
Rosettaのライセンスの取得とダウンロード
まずは公式サイトからライセンスを取得し、必要ファイルをダウンロード
https://www.rosettacommons.org/software/license-and-download
Numbered ReleaseとWeekly Releaseの二択がありますが、今回はNumbered Releaseの3.13をダウンロードします。
Rosetta 3.13 sourceをダウンロード(5.5G、解凍すると13.1G)
PyRosettaのダウンロード
ついでにPyRosettaもダウンロードしておきましょう。
Rosettaと同様にライセンスを取得、License and Downloadのページからダウンロードします。
Latest PyRosetta Versions, Python and Python-wheel Packages:
[US East coast mirror] [US West coast mirror]
からダウンロード、EastでもWestでもどちらでもよいです。
Ubuntu 22.04.2でのpythonのバージョンを確認するとpython3.10.6だったので、
/PyRosetta4.Release.python310.ubuntu/PyRosetta4.Release.python310.ubuntu.release-355.tar.bz2
をダウンロード(1.4G)
ダウンロードしてきたものを解凍
ダウンロードしてきたRosettaを解凍すると、rosetta_src_2021.16.61629_bundleが生成されるので、
名前を適当に変更(今回はroseta3.13とする)に変更してHome直下に置く。
(/home/rosetta3.13となっている)
PyRosettaも併せて解凍すると、
PyRosetta4.Release.python310.ubuntu.release-350が生成されます。
名前が長いので変更&任意の場所に置く。
今回は/home/rosetta3.13/PyRosetta4という感じでrosetta内に置きました。
コンパイルの準備
sconsを使ってコンパイルするため、Sconsを入れる。
sudo apt-get install -y scons
Ubuntu22.04ではpythonコマンドがpython3となっているので、それに関するエラーを解消する。
python3から/usr/bin/pythonへのシンボリックリンクを貼るか、
rosettaのファイルを書き換える。
scons.py --> 1行目pythonをpython3
update_options.sh --> 8行目pythonをpython3
update_ResidueType_enum_files.sh --> 8行目pythonをpython3
にそれぞれ書き換えると、走るようになります。
ターミナル上でrosetta3.13/main/sourceに移動して、scons.pyを実行。
./scons.py -j <number_of_cores_to_use> mode=release bin
は使用するコアの数に置き換えるため、nprocなどでコア数確認し、例えば4コア使用なら
./scons.py -j 4 mode=release bin
など。
詳しくは公式サイトを参照。
https://new.rosettacommons.org/demos/latest/tutorials/install_build/install_build
g++、gccがないと言われたら、
sudo apt install build-essential
を実行。
コンパイラ次第で、
scons: building terminated because of errors.
というエラーが出る。
これはRosetta 3.13 がリリースされたときに存在していたものよりも新しいコンパイラを使用しているためとのこと。(古いコンパイラで動作していたものが動作しなくなった)
https://rosettacommons.org/node/11709
最近のweekly releasesでは修正されているようなのでこのエラーが出ることはないが、今回は3.13を使用しているため、
#include <cstdint>
を
src/protocols/features/FeatureReporter.fwd.hh
の先頭へ追加することで、コンパイルが進むようになる。
コンパイル中
g++: warning: switch '-ffor-scope' is no longer supported
とか出てきますが、さしあたっては問題なし。
以下のようなzlibがないというエラーが出たので、
/usr/bin/ld: cannot find -lz: No such file or directory
インストールします。
sudo apt-get install zlib1g-dev
rosetta完了
終了したら
scons: done building targets.
というメッセージが出てきます。
これでrosettaはOKです。
PATHを通しておいた方が良いかも。
rosetta/main/source/bin
にPATHを通しておくと、のちのち便利かと思います。
PyRosetta
続いてPyRosettaをインストールする。
rosetta3.13/PyRosetta4/setup
に移動。
sudo python3 setup.py install
と入力してインストールができる。
setuptoolsに関するエラーが出たら、
pip3 install setuptools
pip3が入っていない場合は、
sudo apt update
sudo apt install python3-pip
pip3 -V
PyRosetta完了の合図
以下のようなメッセージと共に完了します。
Finished processing dependencies for pyrosetta==2023.24+release.9fbc647ae70
pytonにて
import pyrosetta; pyrosetta.init()
と打ってエラーが出なければ成功してます。