パトコアの技術ブログは移転しました。

化学情報管理・創薬支援のためのケモインフォマティクス製品を扱うパトコアです。本ブログは技術チームにより運営されており、各種ツールを使うとどんなことができるの?という観点から、技術情報をお届けします。

「パトコア技術ブログ」は移転しました。

約3秒後に自動的にリダイレクトします。

新しいURLは https://patcore.com/blog です。

誘導体の構造を生成する

f:id:patcore:20210309150143p:plain

投稿者 Patcore, Inc.

構造活性相関(QSAR・QSPR)の分析を行う上で、主骨格が決まっているが、側鎖の結合位置や種類を変えた多数の構造が欲しい、と思うことがあるかもしれません。また、単に化学的に妥当であるランダムなケミカルスペースがモデルとして必要となる場合もあることでしょう。PubChemのデータや、GDB-131のような利用可能なデータベースを使っても良いですが、Marvin Sketchを使うと簡単に構造を生成(enumeration)できるので、紹介したいと思います。

  • 今回作ったテンプレート(約20万通りの構造が生成される) f:id:patcore:20210309150139p:plain:w500


目次


今回使うもの

Marvin Sketchの機能の内、以下を使って構造のエニュメレーションを行ってみます。

  1. Atom List
  2. Bond Type
  3. Link Node
  4. Repeating Unit
  5. Position Variable Bond
  6. R-group
  7. Homology Group


Atom List

Marvin Sketchの右上から周期表を開くと、元素を選べるウィンドウが開きます。ここで、Atom Listを選択して複数の元素を選ぶと、「選択した元素のいずれか」という指定ができます。

f:id:patcore:20210309150120p:plain

Bond Type

単結合、二重結合を選択する左上のオプションを見ると、単結合 OR 二重結合といったクエリ形式での指定もできるようになっています。このクエリ形式により、「選択した結合様式のいずれか」という指定ができます。

f:id:patcore:20210309150125p:plain:w500

Marvin Sketch上で原子を右クリックして、Link Nodeの属性を追加できます。これは繰り返しを指定する様式なので、L1-4のLink Nodeを選択すると、「選択した原子を1 - 4回のいずれか繰り返す」という指定となります。

f:id:patcore:20210309150134p:plain:w700

Repeating Unit

Link Nodeでは原子の繰り返しを指定しますが、Repeating Unitを使うとグループの繰り返しを指定できます。Marvin Sketch上でグループを選択して右クリックし、Group -> Type: Repeating Unitを選択し、繰り返し範囲を設定します。これにより、「選択したグループを設定された範囲で繰り返す」という指定ができます。

f:id:patcore:20210309150156p:plain:w500

Position Variable Bond

ベンゼン環の場合などでは、オルト・メタ・パラ位のいずれかに置換基を付けたい場合が出てきます。Position Variable Bond(位置可変ボンド)機能を使えば実現できます。Marvin Sketch上でグループを選択して右クリックし、Add -> Position Vaiable Bondを選択することで「選択した位置のいずれかに置換基を付ける」という指定ができます。例の場合では、Atom Listを使って塩素原子か臭素原子がベンゼン環の3つの部位うち1つに置換する、という指定をしています。

f:id:patcore:20210309150147p:plain:w500

R-group

R1, R2, R3 ...という形でそれぞれグループを作ると、「グループのうちいずれかに置換する」という指定ができます。Rグループの作成方法はいくつかありますが、キーボード上で「r1」と入力してR1原子を作成し、Rグループを作成して右クリックからR-group attachementの付与、続けて各グループを選択してRグループ化する、という一連の流れが楽かと思います。

f:id:patcore:20210309150159p:plain:w500

Homology Group

アルキル基やアリール基といった一般的な官能基を表現するために、ホモロジーグループという備え付けのグループが用意されています。芳香族ヘテロ環、ハロゲンが付与されたアルキル基、などの多くの種類があり、Marvinのアップデートに伴い新たなグループが追加されています。自作のグループを登録することも可能です。

例ではHeteroarylを付けました。これは「単環・縮合環を問わず、一つ以上の炭素とヘテロ原子を含む芳香環」を指定しています。

f:id:patcore:20210309150129p:plain


Markush Enumerationを行う

テンプレートが用意できたので、Markush Enumerationにより構造を生成します。生成されるライブラリーサイズをまず計算したところ、ホモロジーグループを除く組み合わせが5,184通りとなりました。Heteroaryの種類を合わせると207,360通りになります。

では実際に生成します。Marvin SketchのStructureメニューより、Markush Enumerationを選択します。新しく開いたウィンドウ上で全ての組み合わせを生成する、数を指定してランダムに生成する、といったオプションを指定します。全ての構造を生成するとデータ量が膨大になるので、今回は約20万通りの組み合わせのうち、ランダムに100の構造をサンプリングするオプションとしました。

瞬時に構造が生成されました。生成された構造はSDFなどの形式で出力することができます。

f:id:patcore:20210309150151p:plain


公式チュートリアル



  1. “Exploring the GDB-13 chemical space using deep generative models":https://jcheminf.biomedcentral.com/articles/10.1186/s13321-019-0341-z

パトコア技術ブログはhttps://patcore.com/blogへ移転しました。