Marvin Sketchの機能の内、以下を使って構造のエニュメレーションを行ってみます。
Marvin Sketchの右上から周期表を開くと、元素を選べるウィンドウが開きます。ここで、Atom Listを選択して複数の元素を選ぶと、「選択した元素のいずれか」という指定ができます。
単結合、二重結合を選択する左上のオプションを見ると、単結合 OR 二重結合といったクエリ形式での指定もできるようになっています。このクエリ形式により、「選択した結合様式のいずれか」という指定ができます。
Marvin Sketch上で原子を右クリックして、Link Nodeの属性を追加できます。これは繰り返しを指定する様式なので、L1-4のLink Nodeを選択すると、「選択した原子を1 - 4回のいずれか繰り返す」という指定となります。
Link Nodeでは原子の繰り返しを指定しますが、Repeating Unitを使うとグループの繰り返しを指定できます。Marvin Sketch上でグループを選択して右クリックし、Group -> Type: Repeating Unitを選択し、繰り返し範囲を設定します。これにより、「選択したグループを設定された範囲で繰り返す」という指定ができます。
ベンゼン環の場合などでは、オルト・メタ・パラ位のいずれかに置換基を付けたい場合が出てきます。Position Variable Bond(位置可変ボンド)機能を使えば実現できます。Marvin Sketch上でグループを選択して右クリックし、Add -> Position Vaiable Bondを選択することで「選択した位置のいずれかに置換基を付ける」という指定ができます。例の場合では、Atom Listを使って塩素原子か臭素原子がベンゼン環の3つの部位うち1つに置換する、という指定をしています。
R1, R2, R3 ...という形でそれぞれグループを作ると、「グループのうちいずれかに置換する」という指定ができます。Rグループの作成方法はいくつかありますが、キーボード上で「r1」と入力してR1原子を作成し、Rグループを作成して右クリックからR-group attachementの付与、続けて各グループを選択してRグループ化する、という一連の流れが楽かと思います。
アルキル基やアリール基といった一般的な官能基を表現するために、ホモロジーグループという備え付けのグループが用意されています。芳香族ヘテロ環、ハロゲンが付与されたアルキル基、などの多くの種類があり、Marvinのアップデートに伴い新たなグループが追加されています。自作のグループを登録することも可能です。
例ではHeteroarylを付けました。これは「単環・縮合環を問わず、一つ以上の炭素とヘテロ原子を含む芳香環」を指定しています。
テンプレートが用意できたので、Markush Enumerationにより構造を生成します。生成されるライブラリーサイズをまず計算したところ、ホモロジーグループを除く組み合わせが5,184通りとなりました。Heteroaryの種類を合わせると207,360通りになります。
では実際に生成します。Marvin SketchのStructureメニューより、Markush Enumerationを選択します。新しく開いたウィンドウ上で全ての組み合わせを生成する、数を指定してランダムに生成する、といったオプションを指定します。全ての構造を生成するとデータ量が膨大になるので、今回は約20万通りの組み合わせのうち、ランダムに100の構造をサンプリングするオプションとしました。
瞬時に構造が生成されました。生成された構造はSDFなどの形式で出力することができます。
“Exploring the GDB-13 chemical space using deep generative models":https://jcheminf.biomedcentral.com/articles/10.1186/s13321-019-0341-z↩