magattacaのブログ

日付以外誤報

「分子の表現についてのレビューと実践ガイド」のメモ ~part 2 線形表現~

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

jcheminf.biomedcentral.com

先の記事では分子のグラフ表現の箇所を取り上げました。続いて線形表記についてです。

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

Linear notations for small molecules

線形表記(linear notation)は Ctab (connection table) をエンコードした文字列で、体系的なルールで解釈することができる分子の表現です。

線形表記には、行列と比べて以下のような利点があります。

  1. サイズが小さい(ディスク容量的にも、サイズ的にも)
  2. 操作が簡単 (Excelでコピペとか余裕)

Table 1 にアラニンを例に線形表記の例がのっています。

f:id:magattaca:20201006233106p:plain
線形表記の例

The IUPAC quest for a universal notation

線形表記はルールで解釈できると書きましたが、そのルールをどう設定するか?については紆余曲折があったようです。(現在も進行中?)

IUPAC(International Union of Pure and Applied Chemistry)の戦いの歴史が書いてありました。ざっとこんな感じ・・・

f:id:magattaca:20201006233241p:plain
歴史

現在ではDyson、WLN両者ともに下火になっているそうです。次節、より現代使われている表記法へと話が続きます・・・

が、その前に、IUPACが望ましいとした特性や表記法の分類がなるほど感があったので載せときます。

f:id:magattaca:20201006233422p:plain
好ましい表記とは?

また、表記法の形式による分類の考え方はこんな感じ…

f:id:magattaca:20201006233508p:plain
形式

この辺りを意識しながら以降の表記法の紹介を読んでいくと面白いかもしれません。

The advent of contemporary notations

Simplified Molecular Input Line Entry System

WLNよりも直感的な表記としてSMILES(Simplified Molecular Input Line Entry System)が1988年Weingingerらにより開発されました。
Daylight社のソフトウェアに組み込まれたことをきっかけに、現在でも同社が維持運営しているそうです。

SMILESには表記を生成するルールの違いや表される構造情報により複数の流派(?)があります。

生成のルールは以下のような感じです。次に引用したFig. 4と比較するとわかりやすいかもしれません。

f:id:magattaca:20201006233855p:plain
SMILESの生成

色々とあるSMILESのうち、まずは生成ルールが異なる2種類(canonical smiles、randomized smiles)です。こんな感じ・・・

f:id:magattaca:20201006234301p:plain
canonical or random?

細かい変換ルール(Cとcの違いなど)は割愛します。

randomized SMILESは表記が毎回変わってしまい困ってしまいそうですが、逆にデータ拡張(data augmentation)に使えるという利点があるそうです。

他にも派生したSMILESが色々とあります。

f:id:magattaca:20201006234354p:plain
SMILESいろいろ

一口にSMILESっていってもいろいろあるんですね。

続いてもう少し別の特徴がある線形表記SMARTSInChIへと続きます。

SMILES Arbitrary Target Specification (SMARTS)

SMARTSは部分構造検索のために開発されたSMILESの拡張です。

  1. SMILESよりも利用できるシンボルが多く、より一般的な形で分子グラフを表現できる (→ コンピュータ科学における正規表現に類似)
  2. 原子が一つ異なる、あるいは、結合の位置が異なる分子の集合を表現できる
  3. 論理演算子 ("OR"、"NOT")も使える
  4. 同位体(isotope)や結合のタイプ(aromatic, aliphatic)を明示できる
  5. Recursive SMARTSでは原子の環境についての情報も含められる(ex. ortho, meta, para)

といった特徴があります。

SMILESは全てSMARTSとしても有効ですが、SMARTSがSMILESとして有効とは限りません。

International Chemistry Identifier

InChIは2006年 NISTにより標準的に自由に使える形式表現として導入されたものです(オープンソースのカノニカルな表記)。

様々な情報を含む多層構造で形成されており、下の図のような感じです。

f:id:magattaca:20201006235635p:plain
InChI

InChIはSMILESと異なり元の分子グラフに戻すことができることは保証されていません。また、SMILESの方が人間には読みやすいという利点があります。

また、InChIのハッシュ化されたバージョンとしてInChIKeyがあります。

元のInChIの一義的な表現となるようになっていますが、InChIKeyが複数のInChIにマッピングされることがあります(InChIKey collision)。

Using chemical descriptors to represent molecules

ここまで見てきたのは原子に基づく(atom-based)ものです。

これに対して分子の特性をもとに表現するアプローチとして分子記述子(molecular descriptor)があります。

純化するとこんな感じ…

f:id:magattaca:20201006235837p:plain
アトムベース or 記述子

すごいたくさん種類があるらしい(Dragonソフトウェアでは4885種類!)ですが、以下では大きく2つの分類(Structural Kyes, Hashed fingerprints)が紹介されています。

Structural Keys

構造キー(structural key)は特定の化学構造が有る(1)か、無い(0)かにしたがってエンコードします。

2つの例が挙げられています。

f:id:magattaca:20201007000009p:plain
構造キーの例

MACCSキーの注意点として、フラグメント166(or 960)種のセットに基づくといっても、ソフトごとに実装が違う場合があるので、異なるソフトでは同じ構造が異なるビット列に割り当てられる可能性がある、という点が指摘されています。

Hashed fingerprints

Chemical fingerprintはベクトルで、

  1. 各要素は物理化学的特性あるいは構造の特徴エンコード
  2. それら要素がインデックス化(順序をつけられて)されて並べられて

います。

先の構造キーでは表す特徴のパターンがあらかじめ定義されていましたが、ハッシュ化されたフィンガープリントでは、各特徴が分子そのものから生成されるという点が異なります。

ビット列の長さを決めた上で生成し、分子の持つパターンをハッシュ関数によってビットに割り当てます。

2種類例が挙げられています。

f:id:magattaca:20201007000427p:plain
フィンガープリント

Chemoinfomaticsでフィンガープリントがよく用いられるのは、 「分子のグラフ構造を直接的に素早くベクトル表現へと変換できるので、数理モデル化の入力として使える」ということにあるようです。

また、柔軟性のある表現なので、物理化学的特性を整数(integer, ex. 水素結合の数)や浮動小数点(float, ex. 分子量)にエンコードできるというのも魅力のようです。

線形表現については以上でお終いです。

つづいて話は変わって化学反応をどう表現するか?という話題が取り上げれています。ちょうど良いのでここで区切ります。

途中に出てきたIUPACによる分類指針を参考にここまでの分子の表現をざっくりまとめると次のようになりますでしょうか?

f:id:magattaca:20201007000907p:plain
グラフ表現と線形表現の雰囲気

SMILESの派生系などを全て無視して単純化しすぎな分類ですが・・・

AI applications within drug discovery using molecular representations

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

Linear notations for small molecules

線形表現(SMILES、molecular fingerprint)は分子の特性予測QSARでよく利用されます。

SMARTSは部分構造を定義し、関連する化合物を選択したり取り除いたりする目的で使われます。

ディープラーニングと関係する内容としては、

  1. 自然言語処理(NLP)のツールを使ったde novo分子デザインの分野でSMILESが活躍
  2. randomized SMILESを使ったデータ拡張
  3. オートエンコーダーを使った潜在空間表現の学習による分子特性の予測

といったものが挙げられます。

ニューラルネットワークでは分子のベクトル表現を学習したうえで予測の利用しますが、 これは古典的な機械学習のアプローチでハッシュ化されたフィンガープリントを入力として使うことに類似しているので、 「学習されたフィンガープリント(lerned fingerprint)」とも呼ばれるそうです。

以上が線形表現の応用でした。

次回、化学反応の表現に続く!

途中浅い理解で雑な表にまとめたりしているので、色々と間違いがあると思います。ご指摘・ご教示いただければ幸いです