magattacaのブログ

日付以外誤報

「分子の表現についてのレビューと実践ガイド」のメモ ~part 3 化学反応の表現~

レビューをDeepLに投げ込みながら読んでいるのでそのメモです。

jcheminf.biomedcentral.com

先の2回の記事では分子のグラフ表現と線形表現でした。単独の分子の表現方法を踏まえ、次のステップとして分子の変化、化学反応の表現方法へと話題がうつっています。知らない事が多かったので雑訳の羅列になってしまっていますがまあいつもの事ですね。

なお、順番は一部前後していますが、目次は論文そのままにしてます。また、 Creative Commons のもとで図表・内容を利用させていただいています。*1

Representations for chemical reactions

Harnessing reaction data for drug discovery

さて、化学反応は次のように理解できます。

  1. 一群の分子のセットを
  2. 関係するもう一つの分子のセットへと
  3. 特定の条件のセットの下で
  4. 相互変換すること

あらためて言葉で記述されると、なるほどそうなるのかーという感じです。

で、以下のような図式でよく書かれるわけですが、これが機械可読性が低い(machine-readableでない)のでどうにかしたい!、というわけです。

f:id:magattaca:20201009232057p:plain
こういう感じのやつ

機械で処理できよるようにするには、前回、前々回見てきた分子の表現を応用する事ができます。(但し、各表現のもつ限界もそのまま引き継いでしまいます!予め注意喚起!)

また、フォーマットについてはRXNRDファイルがよく使われます。グラフ表現のCTfileのところで出てきたやつですね。

以下、様々な化学反応の表現表現を見ていきます。下図のようなものが取り上げられています (Fig. 6より引用)。

f:id:magattaca:20201009232456p:plain
化学反応の表現

Reaction SMILES and SMIRKS

Reaction SMILESはSMILESで化学反応が扱えるように拡張されたものです。

記載の仕方は以下のような感じです。

f:id:magattaca:20201009235740p:plain
Reaction SMILES

尚、Atom mappingは反応剤には使えません。

また、Reaction SMILESそのものにはテキストによる情報(反応中心や反応条件 etc.)を追記することはできませんが、ファイルレベルで、RXNやRDファイルフォーマットが取り扱えるメタデータへの記載という形で情報を追加することができます。

次にとりあげるSMIRKSは「SMILESとSMARTSのハイブリッド」とも言えるものです。

SMIRKSは反応における分子の変化のパターンを一般化して記述します。

(※ SMARTSでは分子のパターンと部分構造が一般化されて記述されていました。)

記述の特徴はこんな感じ…

f:id:magattaca:20201010002017p:plain
SMIRKS

また、図のようにSMIRKSはグラフ(reaction graph)に変換することもできます。

RInChI

RInChIはInChIを反応の表現に拡張したものです。

反応の「単一で、かつ順序の影響を受けない識別子 (unique & order invariant)」として導入されました。
Reaction SMILESは分子の順序が任意でしたが、RInChIでは同一の反応の表現が同じになることを意図されているので、反応の重複を見分ける事ができるという利点があります。

一方、文法がより複雑という課題があります。

カノニカルな表現を意図して導入されたInChIがSMILESと比べて人間にわかりづらいものだったこととそのまま対応する感じですかね?

RIhChIの記述はこんな感じ…

f:id:magattaca:20201010002917p:plain
RInChI、RInChI key

「5. 反応の進行方向」については、例えば同一の反応がわずかな条件の差で異なる結果になった時に、それぞれの条件での進行方向が記載できることで、細かな条件間の比較を行うことが容易になる、という利点があります。

更に、RInChIの拡張としてProcAuxInfoというものが提案されており、メタデータ(収率、温度、濃度 etc.)を格納できるようになっています。

また、ハッシュ化されたRInChI keyを使うと反応データをインデックス化して効率的に検索する事ができます。

難点としては、文法の複雑さ以外には、SMARTSやSMIRKSに相当するものがなく、 部分構造検索や一般化した化学反応の変化の記述が難しいということがあげられています。

Condensed graph of reaction (CGR)

CGRはVernekらにより開発された表現です。こんな感じ…

f:id:magattaca:20201010004012p:plain
CGR

図では少し見づらいですが、エチル基はカルボキシ基の酸素原子と緑色の線で繋がれています。「エステル化の仮想的な遷移状態」っていうことでしょうか??

Bond electron matrices (BE-matrix)

Bond-electron matrixは反応を行列で表現しようとするものです。

f:id:magattaca:20201010004518p:plain
BE-matrix

原料のBE-matrixに反応のR-matrixを足す事で生成物のBE-matrixが得られます。

行列表現で表せる情報を増やそうとしている点が、他の表現とは異なるアプローチのようです。

Hierarchical organization of reaction of reactions through attribute and education (HORACE)

HORACEは機械学習アルゴリズムを利用して化学反応の分類を行うもので、化学反応の階層的な表現ができます。

f:id:magattaca:20201010010136p:plain
HORACE

階層化された表現となっていることで、SMILESのような構造だけを表す反応表現よりも豊かな表現が可能となっています。

InfoChem CLASSIFY

InfoChem CLASSIFYはルールベースの合成計画法で使われるアプローチに発想を得た反応の表現です。

f:id:magattaca:20201010010843p:plain
InfoChem CLASSIFY

各原子について生成されたハッシュコードは全ての出発物質と一つの生成物について合計され、反応中心のユニークな表現として使われます。

また、ハッシュコードは反応の分類や、様々な合成計画ツールで反応中心を抽出するアプローチとしても使われています。

文献中では反応中心を見つけ出すアプローチとしてよく用いられるものとして、「出発物質と生成物の間の最大共通部分構造(MCS)をみつける事」があげられています。
また、MCSの問題点として、NP完全で非決定的な多項式時間がかかるという事指摘されてます。
Inform CLASSIFYはMCSに代わるアプローチになるかも、という事が言いたいのでしょうか?ちょっとよくわからなかったです。

ちなみに取り出した反応中心は必要とする特異度(specificity)のレベルに応じて、隣接する原子にも範囲を拡張できるそうです。

範囲と特異度の関係は以下のようになっています。

f:id:magattaca:20201010011837p:plain

Reaction fingerprints

Reaction fingerprintは反応のベクトル表現です。反応中心で起こる構造の変化を表します。

f:id:magattaca:20201010012842p:plain

こうして作成したベクトル表現は例えば、機械学習でモデルの構築に用いることができます。

reaction fingerprintは反応中心を特定する別のアプローチとして期待されていますが、「反応グラフ(reaction graph)への変換が難しい」という問題点があります。

また、立体化学の取り扱いはまだできません(研究は盛んに行われているそうです)。

以上が化学反応の表現でした。つづいてマクロ分子の表現になりますが、ここで一旦区切ります。

AI applications within drug discovery using molecular representations

今回も途中をすっ飛ばして化学反応表現の応用について触れた箇所に飛んでおきます。

Representations for chemical reactions

化学反応表現の応用の主なものは逆合成反応予測です。

これらはAI駆動創薬において「ループを閉じる」ので重要となります。(Design-Make-Test-Analysisのループですかね?)

提案された構造が合成可能なものかを判定し、適切な逆合成により合成ルートを提案することが大事なんですって!

f:id:magattaca:20201010013143p:plain
D! M! T! A! P! D! C! A!

この辺りの話題についてより知りたい場合は以下の文献がオススメされていました。

ACIEの文献はarxivにもあるっぽいです。

arXiv:2003.13754v1

70ページある・・・長い・・・

まとめ

以上、化学反応の表現でした。私はreaction SMILESくらいしか聞いたことがなかったので、行列表現やベクトル表現に相当するものがあるというのはなるほど!という感じでした。

分子の表現と反応の表現の対応関係はこんな感じですかね?

f:id:magattaca:20201010014934p:plain

・・・HORACEとInfoChem CLASSIFYは対応するものがよくわからなかった。

また、「反応中心をどう見つけるか?」という点が議論に上がっていたのが興味深かったです。 確かに、複数の分子が記載されてる場合に、「どの分子を(目的物質に直接変化する)出発原料とするか?」は重要だし難しい問題だな、と思いました。

便利な試薬がたくさん開発されている分、複雑・高価な試薬が増えて、時と場合によっては原料よりも試薬の方が分子量が大きくて複雑な構造をしている、ということもあると思います。 そうすると、各々の分子だけからどれが原料かを判断するのは難しく、反応前後の差分、複数分子間の比較を取らないと分からない、というのも納得できます。

また、原料をどれに設定するかは、反応の収率の計算に直接影響するので、原料の設定次第で同じ反応に紐づいた数値データが変わってしまうことになります。 合成スキームとして書いてあったらすぐに気づくことができそうですが、機械可読な表現・数値に変換してしまうとこのあたりの微妙な差が埋もれて、 数字がひとり歩きしてしまいそうだな、と思ってしまいました。

(収率をb.r.s.m.で記載してたら良い反応に見えるけど、実際には・・・???みたいな問題とかもありますしねー・・・関係ないか。)

途中無意味な箇条書きを乱発しています。わかった気になるから!!わかんないけど・・・。

次回、最後!マクロ分子に続く!

色々と間違いがあると思います。ご指摘・ご教示いただければ幸いです。