以前に、Structure Generator based on R-Group (SGRG) という化学構造を生成する Python プログラムを公開しました。
こちらは、メインの骨格を一つに設定して、その自由結合手に結合する側鎖を、フラグメントの候補の全ての組み合わせとして、化学構造を生成するプログラムでした。メインの骨格における自由結合手が多く、フラグメントの候補が少ない場合は、すべての組み合わせを生成してくれるので網羅的に化学構造が生成してよいのです。ただ、メインの骨格における自由結合手の数が多く、フラグメントの候補の数が多くなると、フラグメントの候補のすべての組み合わせが多くなりすぎてしまいます。さらに、メインの骨格をいろいろと変えたい場合は、そのつど計算をしなければなりません。
そこで今回は、メインの骨格がいくつかあり、フラグメントの候補もあるときに、それらをランダムに選びながら化学構造を生成する Python プログラムを作成しました。ランダムにメインの骨格が選ばれると、自由結合手の数が決まり、その数だけランダムにフラグメントを選び構造を作ります。これを繰り返すわけです。Python プログラムはこちらの Github にありますので、とりあえず実行してどんな構造が生成されるか、確認するとよいと思います。
メインの骨格の候補も、側鎖のフラグメントの候補も、SMILES で読み込む必要があります。SMILES についてはこちらをご覧ください。
サンプルのメインの骨格の候補として sample_main_fragments.smi、サンプルの側鎖のフラグメントの候補として sample_sub_fragments.smi がプログラムと一緒にありますので、ぜひご利用ください。
sample_main_fragments.smi と sample_sub_fragments.smi を、プログラム structure_generator_based_on_r_group_random.py と同じフォルダ (ディレクトリ) におき、プログラムを実行してください。
プログラム structure_generator_based_on_r_group_random.py では、number_of_structures で生成する化学構造の数を指定できます。また、メインの骨格の候補や側鎖のフラグメントの候補をご自身で準備して、ファイルの名前をそれぞれ sample_main_fragments.smi, sample_sub_fragments.smi とすれば、それらのメインの骨格や側鎖のフラグメントで、化学構造を生成できます。
ぜひご活用ください。
以上です。
質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。