2009年12月4日金曜日

OpenBabel : Frameworkerを作ろう

先日の投稿のフローチャートで致命的な欠点に気付いてしまいました。

先の構想では
  1. 化合物をSmilesで表記する
  2. Smartsを「aA」とする
  3. 化合物をこのSmartsにかけると、Aromatic any atom - Aliphatic any atomで切れる。つまり芳香環とLinkerまたは側鎖の間が切れる
という流れだったのですが、これだと













こんなことになってしまって、せっかくの環構造が切れてしまう。

ということで作戦を修正。








  1. 化合物をSmilesで表記する
  2. 化合物からSSSRを取得し、さらに縮合環をまとめてRing構造を抽出
  3. Ring構造から伸びるBondのうち、Ring外に伸びるBondをすべて切断する。このとき構造を完全に切ってしまうのではなく、「切れ目」の状態で化合物を保持しておく
  4. 切れ目を参考にして、化合物を「Fragment」に分ける
  5. 切れ目を参考にして、FragmentとFragmentを連続的につないでいく。このとき、Fragmentと隣り合うFragmentを管理しておくと、一つのFragmentから連続的につながった部分構造が取れる
  6. Aromatic Ringをスタートとして奇数セット(3Fragment、5Fragment・・・)とつないでいけばAromatic ~Aliphatic ~Aromatic の順で部分構造が取れる。すなわちこれがひとつの「Framework」になる
  7. 重原子の種類を無視する場合は、処理後にすべての原子をa,Aなどに置き換えれば、あとですぐSmartsに変更できる


ということで、来週から一部修正作業をしなきゃ。





0 件のコメント: