前編では分子の表示からメイン機能の一つである構造チェックまで見てきました。ここからは、もう一つのメイン機能である構造の標準化(Molecule structure standardization)について見ていきます。
【構造の標準化】
構造の標準化は、大きく「芳香族の標準化」(Aromaticity)と「スタンダダイザー」(Molecule standardizers)の2つに分かれています。それぞれ、入力されたオリジナルのデータに対して標準化の変換を行いますが、変換は可逆的で、変換されたものを出力することもできますし、変換されたものをオリジナルに戻すこともできるようになっています。
芳香族の標準化
メニューの[Structure > Aromaticity] から[Original form]/[Aromatic form]/[Kekule form]を選択できるようになっています。
この芳香族の標準化は、
1. 芳香族性のチェッカーでワーニングが出た結合を持つ構造を、Aromatic form(非局在化構造式)またはKekle form(ケクレ構造式)に一括標準化 [図16-1][図16-2]
2.
芳香族性のワーニングが出ていない構造をOriginal form(デフォルト)の表示からAromatic formの表示、またはKekule formの表示に切り替えて統一 [図17]
の2つの使い方をすることができます。また、変換結果は2次元構造の表示だけでなく、SMILES形式、SDF形式で出力することもできます。
尚、構造チェッカーにより芳香族性のワーニングが出ている状態で芳香族性を標準化すると、全てのチェッカーの結果がクリアされます。
まず、芳香族性のワーニング(”Bond cannot be aromatic”)が出た分子を一括でAromatic formに標準化する例を見ていきます。図16-1の画面に表示されている分子は、No.298を除き芳香族のワーニングが出ています。この状態で、AromaticityをOriginal formからAromatic formに変えた結果が図16-2となります。
芳香族性をAromatic formに変換した後、芳香族性ではないとされた結合が変換され、芳香族性のワーニングは消えましたが、他のワーニングは残っています。また、フッターを見ると[c: 12]が消えており、チェッカー情報がクリアされたことがわかります。
ここでNo.302の分子について、入力データ(Source)、Original form、Aromatic form、Kekule formそれぞれのSMILESを比較してみます。
Source: O=c1[n-]c2[nH]c(=O)[nH]c(=O)c2[nH]1
Original form: O=[c]1[nH]c2[n-][c]([nH]c2[c]([nH]1)=O)=O
Aromatic form: O=C1NC(=O)C2=C(N1)[N-]C(=O)N2
Kekule form: O=C1NC(=O)C2=C(N1)[N-]C(=O)N2
Sourceに対し、alvaMoleculeがOriginal formとしてcanonical SMILESで書き出したものは原子の順番が違っているものの、Aromatic/Kekule formに変換するとcとnがCとNに置換えられていることがわかります。
芳香族性のワーニングが出ていない分子については、Sourceが非局在化構造式若しくはケクレ構造式で正しく表記されていますので、AromaticityをAromatic formまたはKekule formへ変更するということは、一つのデータセットにAromaticとKekuleの表現が混在している場合、全体として統一する標準化という意味合いになります。
ちなみに、芳香族性のワーニングが出ている構造と出ていない構造を併せ持つNo.308の分子をオリジナル/アロマティック/ケクレに変換してみた結果を示します。[図17]
スタンダダイザー
スタンダダイザーは、誤っている表現の修正、特定の形質の除去、特定の構造的特徴の標準化などができます。alvaMolecule 2.0からは、16個のプリセットされたスタンダダイザーに加え、ユーザーが設定できるカスタムスタンダダイザーも装備されています。
スタンダダイザーは、メニューの[Structure > Standardize...] から表示されるMolecule
standardizersのウィンドウから使用します。[図18]
画面の左側に使用できるスタンダダイザーの一覧がありますので、データセットに適用したいスタンダダイザーを選び、[Add selected]ボタンを押すと選択されたスタンダダイザーが右側の欄に表示されます。
スタンダダイザーは複数選択することが出来ますが、右側の[Selected standardizers]に表示されている順番に適用されることになりますので、初めの方で適用されたスタンダダイザーによる標準化が下の方にあるスタンダダイザーにより書き換えられる可能性があります。そこで、意図した効果が出るように選択したスタンダダイザーの順番を変える必要が出てきます。そのために右側の欄の下に[Move up][Move down]のボタンがあります。その下に、選択したスタンダダイザーを外すためのボタンとして[Remove][Remove all]があります。
一度選択したスタンダダイザーを適用した後で、そのスタンダダイザーをRemoveすると、標準化された結果がリセットされ、標準化前の状態に戻ります。また、スタンダダイザーを適用すると分子の構造が変わるため、構造チェッカーの結果や、後で触れる記述子や物理化学特性の計算結果がクリアされることになります。
実際のデータにスタンダダイザーを適用してみる前に、それぞれのスタンダダイザーの機能を簡単に紹介します。
①
[Convert unusual covalent bonds
to ionic bonds]:窒素/酸素/硫黄とアルカリ金属/アルカリ土類金属との異常な共有結合を切り、イオン形態に変換
②
[Add charge to quaternary
nitrogens]:四価窒素に形式電荷+1を追加
③
[Remove exceeding hydrogens]:通常より大きな原子価を持ち、かつ、少なくとも1つ以上の水素と結合している原子から、できる限り過剰な水素を削除し通常の原子価に近づける
④
[Add missing hydrogens]:通常より小さな原子価の原子に不足水素を追加し、通常の原子価とする(対象原子はH, C, N, P, As, O, S, Se, B, F, Cl, Br, I, Atのみ)
⑤
[Remove monoatomic fragments]:孤立した単原子フラグメントを削除(単一原子対イオンを除去)
⑥
[Retain biggest fragment]:完全結合型の最大フラグメントのみを保持(最大フラグメントは水素以外の原子数が最も多いもの、同数の場合には最大の分子量を持つもの)
⑦
[Standardize nitro groups
(-N(=O)=O)]:全てのニトロ基を「-N(=O)=O」に標準化
⑧
[Standardize nitro groups
(-[N+][O-]=O)]:全てのニトロ基を「-[N+][O-]=O」に標準化★
⑨
[Standardize azide groups]:アジド基を「-[N-][N+]#N」から「-N=[N+]=[N-]」へ標準化
⑩
[Standardize diazo groups]:ジアゾ基を「>[C-][N+]#N」から「>C=[N+]=[N-]」へ標準化
⑪
[Clear isotopes]:全ての同位体情報を除去し、最も豊富にある同位体に置換え
⑫
[Clear chirality]:四面体キラリティー情報を除去
⑬
[Clear bond directions]:結合方向を除去(二重結合に関し立体化学情報を除去)
⑭
[Remove radicals]:ラジカル情報を除去し、通常の原子価となるように可能な限り水素を付加★
⑮
[Neutralize atoms]:結果として分子の総電荷が0にならない場合でも荷電原子を中性化★
⑯
[Neutralize molecule]:結果として分子の総電荷が0になる場合に荷電原子を中性化★
⑰
[Custom standardizer]:反応物質に対して適用する分子変換を、ユーザーがSMIRKS言語の反応記述を使用して定義し、構造を標準化(反応記述で指定した部分構造が元の分子の中にあるだけ標準化を繰り返す)★
(★がついているものがalvaMolecule 2.0から追加されたスタンダダイザーとなります。)
それでは、実際にいくつかのスタンダダイザーを適用した結果を見て行きます。それぞれ、左側にオリジナルの構造を、右側にスタンダダイザー適用後の構造をSMILESと共に表示します。
《① Convert unusual covalent bonds to ionic bonds》(異常な共有結合をイオン形態に変換)[図19]
左側のオリジナル構造では異常な共有結合のワーニングが出ています。右側の標準化後もワーニングが出ていますが、これはイオン化後の荷電原子を示すものと変わっています。尚、Na、K、Asはそれぞれ非標準原子としてのワーニングも出ています。
《⑤Remove
monoatomic fragments》(単原子フラグメントを削除)[図20]
ちなみに、これらの例では単一原子フラグメントを削除した後の構造が正しく表示されましたが、全てが単一原子フラグメントの [Cl-].[Cl-].[Cr++](Chromium(2+) dichloride)や[Cl-].[Cl-].[Cl-].[Fe+3](Ferric chloride)などに対してRemove monoatomic fragmentsを適用すると、molecule-errorの結果となってしまいました。
《⑥Retain
biggest fragment》(最大フラグメントのみを保持)[図21]
適用後は最大のフラグメント以外がなくなっています。
《⑦Standardize
nitro groups (-N(=O)=O)》(ニトロ基を「-N(=O)=O」に標準化)[図22]
《⑪Clear
isotopes》(同位体情報を除去)[図23]
適用後は同位体のワーニングが消えています。
《⑫Clear
chirality》(キラリティー情報を除去)[図24]
SMILESで見ると@が全て消えていることがわかります。
《⑬Clear
bond directions》(結合方向を除去)[図25]
SMILESではスラッシュとバックスラッシュが消えていることがわかります。
《⑮Neutralize
atoms》《⑯Neutralize molecule》(荷電原子を中性化)[図26]
上のNo.158の分子は、Neutralize atomsでもNeutralize moleculeでもN+とO-がNとOHに変換されるという同じ標準化結果が得られました。
一方、下のNo.198の分子では、Neutralize atomsでは右のように2つのO-がOHとなり酸素原子は中性化されました。しかし、Cu2+がそのまま残ってしまうため、『結果として分子の総電荷が0になる場合に荷電原子を中性化する』という定義のNeutralize moleculeでは原子の中性化が行われませんでした。
《⑰Custom
standardizer》(カスタム)
炭素原子と酸素原子若しくは窒素原子との二重結合を単結合に変換する反応をSMIRKS言語で記述し、カスタムのスタンダダイザーとして適用してみます。
この場合のSMIRKS式は、[C:1]=[O,N:2]>>[C:1][*:2] となりますが、これを[Add
custom...]から現れるCustom standardizer子画面に入力すると、設定した反応が図示されます。[図27]
設定したカスタムスタンダダイザーは、指定した構造を全ての分子について洗い出し、その構造がある限り何回でも変換を行います。[図28]
尚、SMIRKS言語はSMILESやSMARTSを開発したDaylight社による反応変換言語です。スタンダダイザー《⑦Standardize nitro groups (-N(=O)=O)》で例示したニトロ基の標準化を、ニトロ基を「-[N+][O-]=O」から「-N(=O)=O」に変換するとしてSMIRKS言語で記述すると、[*:1][N+:2](=[O:3])[O-:4]>>[*:1][N:2](=[O:3])=[O:4]
となります。[図29]
SMIRKS言語の詳細については、Daylight Theory Manualの”5. SMIRKS - A
Reaction Transform Language”に記載されておりますのでご参照ください。
https://www.daylight.com/dayhtml/doc/theory/theory.smirks.html
以上、いくつかのスタンダダイザーを適用してみましたが、数多い分子の中でどの分子が標準化されたのかを知りたい場合に役に立つ機能を紹介します。
スタンダダイザーを使用して誤っている表現を修正する際には、構造チェッカーの結果としてのワーニングでフィルターすることにより修正対象となる分子がわかります。一方、ワーニングが出ない特定の構造的特徴を標準化するようなケースでは、ワーニング情報が使えません。その場合、分子ワークシートの構造フィルター機能を使うことにより対象となる分子のみを表示させることができます。
分子ワークシートの”Molecule”欄を右クリックして出てくるメニューから”Filter if”を選択し、表示されるチョイスから”Match”をクリックすると”Molecule”ウィンドウが出てきます。その中にある”Match”の検索窓に部分構造をSMARTSで入力することにより、その部分構造を持つ分子だけがフィルターされて表示されます。
例として「-[N+][O-]=O」のニトロ基を持つ分子だけを表示させてみました。[図30]
⦅中編終わり⦆