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
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.
25 を対応しようとした際に気づいたこと。
背景
現在、fragdock::Bond.is_rotor は OpenBabel.OBBond.IsRotor() 関数の出力をそのまま利用している。この関数をデフォルトで使う限り、環に含まれる結合は全て false を返す。
従って、decompose の
max_ring_size
の引数を-1
以外にした所で、例えばシクロヘキサンは2つ以上のフラグメントに分割されず、1つのフラグメントであり続ける。修正案
以上の事から、現在の
is_rotor
フィールドは、実質 rotatable and not in ring となっている。これは非芳香環の処理(とくにmax_ring_size
)には不都合なので、Bondに記録させる情報を追加すべきであると考える。これを作業に起こすと以下のようになる。
struct Bond
にフィールドis_in_ring
を追加toFragmentMol
の中でBondを作成している部分、IsRotor()
をIsRotor(true)
に変更OBBond::IsInRing()
関数を使用してBond.is_in_ring
の値とする