タンパク質ドッキングソフトウェアRPXDockのインストール方法


- Github Repo: https://github.com/willsheffler/rpxdock.git
- Paper: https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1010680  

## 1. RPXDockとは
RPXDockは、任意のタンパク質構造について、ユーザーの指定した条件でドッキングを行うソフトウェアです。対称性や相互作用面の面積、ドッキング時の制約条件などを細かく指定することができ、ドッキング結果を任意の条件でフィルタリングすることもできます。タンパク質複合体をデザインする場合に、要素となるタンパク質ユニットを空間内にどのように配置し、お互いにどのように相互作用させれば目的となる複合体構造を実現できるかを検討する際に便利です。非常に高速でCPUでも問題なく動作します。

## 2. 動作環境
- RPXDockは内部でPyRosettaを使用するため、ワシントン大学の[サイト](https://els2.comotion.uw.edu/product/pyrosetta)から**PyRosettaのライセンスを取得**しておく必要があります。アカデミックライセンスは無料です。

- Ubuntu 22.04.3 LTSで動作確認済み。macOS Ventura (Version 13.5.1)でも検証しましたが、buildの段階のエラーが解決できず、macOSでの動作は未確認です。

## 3. conda環境構築
PyRosettaをconda環境にインストールするため、`.condarc`を編集しRosettaCommonsのchannelを使えるようにしておく必要があります。まず`conda config --show-sources`で.condarcの場所を確認します。

```
$ conda config --show-sources
==> /home/user/.condarc <==
channels:
  - conda-forge
  - defaults
```

次に`.condarc`を開き、RosettaCommonsのchannelを追加します。この際**USERNAMEとPASSWORDはPyRosettaのライセンスに記載のものに変更**しておきます。編集後の`.condarc`の例は以下の通りです。

```
channels: 
- https://USERNAME:PASSWORD@conda.graylab.jhu.edu
- defaults
```

GitHubの[リポジトリ](https://github.com/willsheffler/rpxdock)を任意のディレクトリにcloneします。

```
git clone https://github.com/willsheffler/rpxdock
```

cloneしたリポジトリに移動し、`environment.yml`を開きます。4行目のusernameとpasswordの部分を、自分のPyRosettaのライセンスに記載のものに変更。

```
# 変更する行
4    - https://username:password@conda.graylab.jhu.edu
```

`willutil`をpipでインストールする必要があるため、41行目でコメントアウトされている`- git+https://github.com/willsheffler/willutil.git`を有効にします。

```
# 変更する行
41    # - git+https://github.com/willsheffler/willutil.git
```

conda環境を作成。(20~30分程度かかると思います)
```
conda env create -f environment.yml
```

## 4. RPXDockのbuild

conda環境をactivateし、cloneしたリポジトリ内で`pytest`コマンドを実行することでbuildを行います。

```
$ conda activate rpxdock39
$ pytest
```

(なおこの際、以下のようなエラーが出たのですが、動作には問題ありませんでした。将来的に問題が発生した場合記事を更新しようと思います)

```
======================================================== short test summary info =========================================================
FAILED rpxdock/tests/rotamer/test_richardson.py::test_richardson_space - assert (153, 21) == (153, 19)
FAILED rpxdock/tests/search/test_cyclic.py::test_make_cyclic_grid - RuntimeError: bad strides, strides not supported
FAILED rpxdock/tests/search/test_multicomp.py::test_discrete_2comp - RuntimeError: bad strides, strides not supported

Results (218.68s (0:03:38)):
     255 passed
       3 failed
         - rpxdock/tests/rotamer/test_richardson.py:5 test_richardson_space
         - rpxdock/tests/search/test_cyclic.py:29 test_make_cyclic_grid
         - rpxdock/tests/search/test_multicomp.py:241 test_discrete_2comp
       9 skipped
```

## 5. 必要な追加パッケージのダウンロードと動作確認

Institute for Protein Designのリポジトリから、RPXDockの動作に必要な[hscoreファイル](https://files.ipd.uw.edu/pub/rpxdock/hscores.zip) (ドッキングを評価する際に使用する、構造モチーフや二次構造ごとのスコアを定義したファイル)をダウンロードします。ダウンロードしたファイルを解凍し、`/net/software/rpxdock/hscores`を任意のディレクトリ (cloneしたRPXDockのリポジトリ内が分かりやすい)に移動します。

次にRPXDockのリポジトリ内にある`/PATH/TO/RPXDock_repository/rpxdock/app/dock.py`を開き、3行目の`import sys`の下に以下の行を追加し保存することでパスを通しておきます。

```
4    sys.path.append("/PATH/TO/RPXDock_repository")
```

RPXDockの動作確認を行います。`conda activate rpxdock39`でconda環境をactivateし、以下のコマンドを実行します。(使用するPDBファイルは任意のもので構いません。以下では例としてC2対称性を指定しています)

```
/PATH/TO/RPXDock_repository/rpxdock/app/dock.py \
	--architecture C2 \
	--inputs1 "/PATH/TO/Input_pdbfile" \
	--hscore_data_dir /PATH/TO/hscores \
	> run.log
```

Resultファイルが生成されれば成功です。