2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DiffDockを使ってみた

Last updated at Posted at 2023-06-07

はじめに

少し前に話題になった拡散モデルを使用したDiffDOCKというツールを使ってみました。
論文によるとPDBbindデータセットを使用したブラインドドッキングにおいてGNINA、SMINA、GLIDE、EQUIBINDといったツールと比較して精度が向上したらしいです。

github : https://github.com/gcorso/DiffDock

以下は使用しているマシンのスペックです。

項目 スペック
OS Ubuntu 22.04
CPU AMD Ryzen 7 5700X 8-Core Processor
メモリ DDR4-3200 ( 16GB × 2 )
GPU GeForce RTX 2080 Ti

インストール

git clone https://github.com/gcorso/DiffDock.git
cd DiffDock/

#conda環境の作成
conda create -n diffdock python=3.8
conda activate diffdock

#pytorchのインストール(https://pytorch.org/)
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia

#他に必要なパッケージのインストール
conda install pyg pytorch-scatter pytorch-sparse pytorch-cluster pytorch-spline-conv -c pyg
python -m pip install PyYAML scipy "networkx[default]" biopython rdkit-pypi e3nn spyrmsd pandas biopandas

#ESMのインストール
pip install "fair-esm[esmfold]"
pip install 'dllogger @ git+https://github.com/NVIDIA/dllogger.git'
pip install 'openfold @ git+https://github.com/aqlaboratory/openfold.git@4b41059694619831a7db195b7e0988fc4ff3a307'

使用例

以下のコマンドで/data/protein_ligand_example_csv.csvに記述されているタンパク質とリガンドについて計算が実行されます。

python -m inference --protein_ligand_csv data/protein_ligand_example_csv.csv --out_dir results/user_predictions_small --inference_steps 20 --samples_per_complex 40 --batch_size 10 --actual_steps 18 --no_final_step_noise
protein_ligand_example_csv.csv
complex_name,protein_path,ligand_description,protein_sequence
,data/1a0q/1a0q_protein_processed.pdb,data/1a0q/1a0q_ligand.sdf,
,data/1a0q/1a0q_protein_processed.pdb,COc(cc1)ccc1C#N,

--samples_per_complexで40を指定しているので、40個のリガンドポーズとそのconfidence scoreを出力します。confidence scoreが小さいほど良いポーズなので基本的にrank1_confidence~.sdfを使用することになりそうです。

他にもSMILESで直接リガンドを指定することもできるらしいのでgithubの方を見てみてください。

DUD-Eによる検証

DUD-E(https://dude.docking.org/)と呼ばれるドッキングシミュレーションのためのベンチマークを使用して精度を検証します。各タンパク質に対して活性化合物と不活性化合物が含まれています。

今回使用したタンパク質

AA2AR
image.png

今回は以下のような手順を行いました
・ダウンロードしたreceptor.pdbをmoeのstructure preparationによって処理
・actives_final.mol2、decoys_final.mol2をリガンド1つずつのmol2ファイルに分割
・protein_ligand.csvにタンパク質とリガンドのパスを記述
・計算実行
・AUCを計算

計算には800化合物で7時間くらいかかりました

計算後、以下のスクリプトを用いてリガンドのconfidence scoreを取得しました

extract_conf.sh
CURRENT=$(cd $(dirname $0);pwd)

dirs=`find $CURRENT -type d`
for dir in $dirs; do
  cd $dir
  sub_dir=`basename $dir`
  bestfile="rank1_*.sdf"
  score=""
  for file in $bestfile; do
    if [ -f "$file" ]; then
      score=$(echo "$file" | grep -o '[0-9]\.[0-9][0-9]')
      echo $sub_dir,$score
      break
    fi
  done
done

結果

scikit-learnのroc_auc_score関数を使用してAUCを計算したところ、AUCは0.448でした。
あまり良くなかったですね:frowning2:

今後

面白いツールではあるのでもう少し検証していきたいです

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?