SDFって何?~化合物の表記法~
本記事はWEBに混在する化学情報をまとめ、それを整理、提供する化学ポータルサイト「Chem-Station」の協力のもと、ご提供しています。
概要
みなさま、SDFってご存じですか?例えば、海外試薬メーカーのカタログを貰おうとすると「SDFで送ります」とか、ComputerChemistとの構造式のやり取りで「化合物一覧をSDFで送ってほしい」などと言われたりします。「構造式の表記の1つ」という認識の方が多いと思いますが、SDFなどの構造表記法の裏側には「ヒト」と「コンピューター」の認識差が潜んでいます。それらの化合物表記法を幾つか紹介します。
化合物の表記法
化学者であれば、炭素鎖のジグザグ線を基本とした構造式表記法は問題なく読めます。例えば、下記で表記される物質は、ニコチン酸と認識できます。というよりも、ニコチン酸は下記のように表記するものだと思っているはずです。
ところが、コンピューターにとっては、上記式は単に「絵」に過ぎません。コンピューターに認識させるには、この「絵」をデータとして「文字列・数値列」の形に変換する必要があります。構造式をデータに変換する表記法として、主に①線形表記法 (文字列表記) ②行列表記法の2つがあります。
線形表記法①:SMILES (すまいるず)
線形表記法とは、構造式を「文字や数字の連続した線」として構造を表記する方法です。種々の線形表記法が開発されましたが、我々が使う機会があるのはSMILES及びその変法です (IUPAC命名法も線形表記の一種と捉えられ、InChIという表記法もあります)。SMILESの主な表記ルールを以下に示します。
- 原子記号で表示、水素は記載せず自動飽和
- 隣接原子は隣に書く
- 2重結合は"="で、3重結合は"#"、分岐は"()"で示す
- 環形成している原子同士にナンバリングする
SMILES法で、先のニコチン酸を表記すると、こうなります。
OC(C1=CC=CN=C1)=O
この意味は、以下のようになります。
- OCの炭素に (環) と =O が結合している
- OCの結合した炭素 (最初のC1) から数えて、(C1=C-C=C-N=C-C1) 環を形成している
ヒトにも認識しやすい表記法ですが、「連続した文字列」であるので、コンピューターの扱うデータとして優れています。SMILES式はその優れた表現方法ゆえ、SMARTS、SMIRKS、SLN等の発展法が開発され、使用されています。
実際の使用時は (上記の表記ルールなど気にせず) ソフトウェア上で作成します。ケミストに親しみ深いChemDrawから「Edit => Copy As => SMILES」で、構造式のSMILES表現が書けます。
線形表記法②:Finger Print (ふぃんがーぷりんと)
ちょっと特殊な表記法として、ビット表記があります。その原理は「規定の部分構造を持てば"1″、持たなければ"0″にそれぞれ値が定まる」というもので、構造式は "0" と "1" の並んだbit stringとして表現されます。コンピューターの扱うデータとして非常に有利なので、大規模な構造検索 (部分構造検索、類似性検索) で使われます。ビット生成の仕方には2つの方法があり、現在は主に2.が使われます。
- 部分構造に予め規定されたビット (静的ビット) を用いる物; x番目の数字が構造Xを示すと予め決められている
- クエリ構造に対してハッシュ関数により動的にビット生成をする物; ビットは可変長
代表的なFinger Print法として、MDL Maccs key、Daylight FP、ECFP6があります。 ここで言う「部分構造」とは単純な「置換基」ではありません。通常、6結合先までの構造や各分岐も考慮されて数十万種 (以上?) の部分構造が規定されて、数百~数十万個並んだ0と1によって構造式が表現されます。ケミストがFinger Printを書く事はありませんが、プログラムの裏側で動いています。
行列表記法①:MOL (もる)
まず、構造式を「原子というノード (点)」と「結合というエッジ (線)」で書かれたグラフと考えます。グラフは行列式で表現しますが、結合が増えると行列が複雑化するので、「結合表 (Connection Table)」という考えを導入して簡単に表現します。結合表は各ノード位置 (座標)、エッジ (どのノード同士が結合しているか) で表現されます。結合表をファイル形式で実現したものが「MOL」ファイルです。ニコチン酸はこう表されます。
ノードは座標表現なので、ニコチン酸の下記黒、赤、青構造のMOLファイルは「別物」となりますが、通常はここに標準化作業が行われて同一物質と認識されます。3Dの場合は立体位置の違いとしてそのまま別物として使われる事が多いです。
MOLファイルの作成は、Chem Drawで書いてMDL MOLで保存。MOLファイルはテキストファイルなので読取・編集はワードパッド等で可能です。
行列表記法②:SDF (えすでぃーえふ、えすでぃーふぁいる)
本題のSDFです。SDFはMOLの変法であり、表記法としてはMOLと同じです。ただし、「多数の構造式を一纏め」にしたファイルです。更に「各構造式に付加情報を追加」できます。しかもテキストファイルで軽いので、試薬カタログや計算化学のデータ受渡しに有用で、かなり頻繁に用いられています。
試薬会社のカタログの場合、この付加情報の部分にカタログ番号や容量、価格などが記載されています。会社によって項目が違ったりするのですが、項目を揃えれば、会社縦断的なカタログへと編集する事も可能です。タンパク質構造などを表現するのにPDB, MOL2といったファイル形式も使われますが、基本的にはsdfと同じ形式をとっています。
最後に
「ヒトとコンピューターの構造式認識の仕方は異なる」という事が認識いただけたと思います。もっと言えば「構造式は人間寄りの表現方法である」ということです。
コンピューターの進歩と通信インフラの発展は素晴らしく、我々は膨大な構造・反応情報に容易にアクセス出来ます。しかし、大量の情報処理に優れているはずのコンピューターに逆合成解析をやらせても、必ずしも優れた合成ルートは提示しません。また、類縁体をデザインさせても「当たり前」の構造しか出力できない場合があります。化学構造式は「絵」、「画像」であって、精度高く画像認識する事はコンピューターにとって難儀な事なのでしょう。一方、ヒトの画像処理能力は優れているので、我々は学会会場などで初めて目にする構造式について、一瞬で判断する事ができます。
現在も「コンピューターにヒトと同じ認識をさせるにはどうしたら良いか?」「如何にケミストを模倣させるか」というテーマで、Chem-Informaticianが日々研究されています。