akiyamalab / restretto

REstretto (REuse of sub-STRuctures as an Effective Technique for protein-ligand docking TOol): An virtual screening-oriented protein-ligand docking tool with reuse of fragments
MIT License
7 stars 3 forks source link

Optimization should be done by (intra + inter) energy, not inter energy only #11

Closed keisuke-yanagisawa closed 1 year ago

keisuke-yanagisawa commented 1 year ago

これまでのコードは、局所最適化は分子間相互作用エネルギーのみに注目して行われていたが、AutoDock Vinaの論文を見る限り、分子間+分子内の合計の相互作用エネルギーに基づいておこなわれている模様。 そのようにコードも修正した。

smzmsys commented 1 year ago

conformer-dockingを実行したところ、期待通りの出力が確認できました。

$c$, $c{\mathrm{intra}}$, $c{\mathrm{inter}}$を意識して読んだ際、EnergyGridのget/add/setEnergyに区別がなかったため、

https://github.com/akiyamalab/restretto/blob/c08246a217af76c3c72649b0f60735b890b749ff/src/fraggrid_main.cc#L455

fg.getGrid().getEnergy(...)の部分をfg.getInterEnergy(...)FragmentEnergyGrid::getInterEnergy(x, y, z))とした方が、より読みやすいと感じましたが、いかがでしょうか。 (FragmentEnergyGrid.gridはinterEnergyしか入っていないはず?間違っていたら申し訳ございません。)

keisuke-yanagisawa commented 1 year ago

ありがとうございます。クラスそのものの名前すら変えるべきだと思いました。EnergyGridはIntraを考えるために作られていないので。 このpull requestの趣旨から外れてはいないと思うので、ちょっと大がかりな修正になりますが、EnergyGrid系のrenameを進めます。

keisuke-yanagisawa commented 1 year ago

EnergyGrid, AtomEnergyGrid, FragmentEnergyGridあたりのファイル名・クラス名・メソッド名、一部変数名を丸ごと修正しました。(かなり編集ファイル数が多くなってます)

keisuke-yanagisawa commented 1 year ago

ご確認いただきありがとうございます。 スコアの計算式については、ほぼ同一のコードが複数行にわたってコピーされていることを解消すれば、自然に見えるのではないかと踏んでいます。 次のrefactoringの機会があれば、その折に検討すべきと考えます。