24 10 2006 chemoinformatics perl Tweet
昔作ったコードが気に入らなかったので書き直したら、そこそこ動くようになったので、Chemicho-0.01.tar.gzとしてダウンロードできるようにしておいた。これはPerlMolを使って実装された化合物にランダムに変異を入れていくツールで、例えば、H2Lでヒット化合物に修飾を軽く加えてみたりとかしてくれる、ケミストチックな小人さんに育つことを期待してるわけだ。
- AddCarbon(メチル基付加)
- Aromatize(ジエンを芳香環化)
- DeAromatize(芳香環をジエン化)
- DecreaseBondOrder(結合次数を減らす)
- GenerateRing(環化)
- Halogenize(メチルをハロゲンに)
- IncreaseBondOrder(結合次数を増やす)
設定はYAMLで。
Generationは世代数で、cycleは世代で生成される化合物の数。ちなみに第0世代は親。例えばcycle3で第三世代まで発生させると3^3で27化合物で4世代目には3^4で81化合物できる。ランダムな置換の頻度はweightで変えられるようになってる。
reactionはSMARTS使ってこんな感じで反応させてる。
いまんとこ、変異用のモジュールが少ないのでバリエーションが少ないのだけど、これから増やす予定。あと、cycle間で重複を許しているのでこの部分は改善する。
TODO
- コンバーター作成
- c1ccccc1 をc1cscc1に変える
- 極性基の導入、削除
- エステル化
- 芳香環に極性基の導入
- その他
- 重複チェック
- オブジェクトをsmilesにしてsqliteで管理する
- QSAR的なツールと絡めて、変異の頻度を自由に変えられるように。(例えばclogpがでかくなったら極性導入の頻度を高くしたり、MWTが大きくなりすぎたら、大胆に削るとか)
- wikiかなんかにちゃんとしたドキュメントとか書く。