でも私の環境でこの「Linker」を認識するのはISIS Baseしかなく、他のシステムへの実装がちょっと難しい。
で、OpenBabel+VisualStudio2008(C#)でこの「FrameWorker」を作っています。
考え方としてはこんな感じ。
- 化合物をSmilesで表記する
- Smartsを「aA」とする
- 化合物をこのSmartsにかけると、Aromatic any atom - Aliphatic any atomで切れる。つまり芳香環とLinkerまたは側鎖の間が切れる
- 構造を完全に切ってしまうのではなく、「切れ目」の状態で化合物を保持しておく
- 切れ目を参考にして、化合物を「Fragment」に分ける
- 切れ目を参考にして、FragmentとFragmentを連続的につないでいく。このとき、Fragmentと隣り合うFragmentを管理しておくと、一つのFragmentから連続的につながった部分構造が取れる
- Aromatic Ringをスタートとして奇数セット(3Fragment、5Fragment・・・)とつないでいけばAromatic ~Aliphatic ~Aromatic の順で部分構造が取れる。すなわちこれがひとつの「Framework」になる
- 重原子の種類を無視する場合は、処理後にすべての原子をa,Aなどに置き換えれば、あとですぐSmartsに変更できる
でも、ちょっと問題が・・・。化合物の構造を舐めまくるのでforeachの嵐になってます。実運用したときに処理時間が結構長くなりそうで怖い。
0 件のコメント:
コメントを投稿