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

環の中にあるかをfragdock::Bondに記録させるべき #26

Open keisuke-yanagisawa opened 2 months ago

keisuke-yanagisawa commented 2 months ago

25 を対応しようとした際に気づいたこと。

背景

現在、fragdock::Bond.is_rotor は OpenBabel.OBBond.IsRotor() 関数の出力をそのまま利用している。この関数をデフォルトで使う限り、環に含まれる結合は全て false を返す。

Is the bond a rotatable bond? Currently, this function classifies any bond with at least one heavy atom, no sp-hybrid atoms (e.g., a triple bond somewhere) not in a ring as a potential rotor if includeRingsBonds is false. If true, rotors in rings with more than 3 atoms may be included. No other bond typing is attempted.

https://openbabel.org/api/3.0/classOpenBabel_1_1OBBond.shtml#afcf274313e5c401b4d05ff05314c6e37

従って、decompose の max_ring_size の引数を -1 以外にした所で、例えばシクロヘキサンは2つ以上のフラグメントに分割されず、1つのフラグメントであり続ける。

修正案

以上の事から、現在の is_rotor フィールドは、実質 rotatable and not in ring となっている。これは非芳香環の処理(とくに max_ring_size )には不都合なので、Bondに記録させる情報を追加すべきであると考える。

これを作業に起こすと以下のようになる。

keisuke-yanagisawa commented 2 months ago

上記のAPI documentationは OpenBabel 3.0 のものであり、2.4.1のモノではないので再調査が必要です。