ゼロから書くSMILES記法

張 凡 張 凡

マテリアルズインフォマティクス(MI)や、DFT計算、分子動力学シミュレーションの普及に伴い、コンピュータ上で分子構造を入力する機会が急増しています。

その際によく用いられるのが、分子構造を文字列として扱うSMILES(Simplified Molecular Input Line Entry System)記法です。多くの化学ソフトで分子構造とSMILESの相互変換が可能ですが、あえて「自力で書く」スキルを身につけることで、データに対するエラーチェックや、計算用構造の素早い準備が可能になります。

本記事では、SMILESの書き方を紹介し、簡単な分子から少し複雑な環構造まで、自分の手で自由に表現できるようになることを目指します。

1. SMILES記法

SMILES(Simplified Molecular Input Line Entry System)は、分子構造を「文字列」で表現するための記法です。SMILESの基本ルールは、水素原子を省略し、原子同士のつながりを一筆書きの要領で記述します。ここでは、具体的な構造を描画しながら少しずつルールを解説していきます。

1-1. 直鎖分子のSMILES

まずは、直鎖分子のSMILESを紹介します。結合が単結合のみの直鎖分子は端から順番に元素記号を書くだけです。有機化学で頻出するB, C, N, O, P, S, F, Cl, Br, Iはそのまま記載できますが、その他の元素は[ ]で囲む必要があります。具体例をFigure 1に示します。

Figure 1. 直鎖分子の構造とSMILES
Figure 1. 直鎖分子の構造とSMILES

【注意】SMILESは一意には定まりません

同じ分子構造であっても、書き出しの原子によってSMILESは変わります。例えば、プロパノールであれば、CCCO でもOCCCでも正解です。一意に定める「Canonical SMILES」という表現法もありますが、まずは気にせず書いてみましょう。

ここまでは単結合のみからなる分子を描画してきました。単結合以外の結合がある場合は、原子と原子の間に以下の結合記号を挟みます。

単結合:-(通常は省略します)

二重結合:=

三重結合:#

これらを用いて、多重結合を有する直鎖分子の構造とSMILESの具体例をFigure 2に示します。

Figure 2. 多重結合を有する直鎖分子の構造とSMILE
Figure 2. 多重結合を有する直鎖分子の構造とSMILE

1-2. 分岐構造を有する分子のSMILES

ここから少しずつ複雑になります。分岐している分子構造を書く際は、まず一筆書きできる「幹」を決めます。幹はどこに設定しても構わないのですが、長い構造を幹とした方が都合がいい場合が多いです。その後、枝分かれしている原子の後ろに分岐構造を( )で括り、記載します。

実際に例を見てみましょう。まず、3-メチルヘキサンの分子構造を描画します。各原子にはインデックスが振ってあります。まずは、幹を決めます。原子index:0,1,2,4,5,6で繋がった構造が直鎖で長い構造なので、ここを幹とします。まずは、幹の構造のSMILESを記載します。今回であれば、CCCCCCとなります。そして、前から3番目の炭素(原子index:2)からメチル基が分岐しているので、SMILESの前から3番目の炭素の後ろに(C)と記載して、CCC(C)CCCとして完成です。

Figure 3. 3-メチルヘキサンの構造(赤い部分は幹)
Figure 3. 3-メチルヘキサンの構造(赤い部分は幹)

分岐が複数ある場合は、それぞれ、分岐している原子の後ろに分岐構造を( )で括り、記載します。以下に示す3,4-ジメチルヘキサンを例にSMILESを書いてみます。

3-メチルヘキサンのときと同様に幹を決めます。今回は原子index:0,1,2,4,6,7で繋がった構造を幹とすると、幹のSMILESはCCCCCCとなります。そして、前から3番目と4番目の炭素からメチル基が分岐しているので、SMILESの前から3番目と4番目の炭素の後ろに(C)と記載して、CCC(C)C(C)CCとして完成です。

Figure 4. 3,4-ジメチルヘキサンの構造(赤い部分は幹)
Figure 4. 3,4-ジメチルヘキサンの構造(赤い部分は幹)

同じ原子から複数の分岐構造が出ている場合でも、分岐している原子の後ろに分岐構造を連続で記載すれば問題ありません。3,3-ジメチルヘキサンであれば、CCC(C)(C)CCCとなります。

分岐部分が単結合以外で結合している場合は、結合情報も含めて( )で括ります。例えば、ヘキサン酸を例に書いてみます。これまで同様に幹を決めます。今回は原子index:0,1,2,3,4,5,7の部分構造を幹とし、幹のSMILESはCCCCCOとなります。最後の炭素から二重結合の酸素が分岐しているため、(=O)を最後の炭素の後に入れ、CCCCC(=O)Oとなり、完成です。

Figure 5. ヘキサン酸の構造(赤い部分は幹)
Figure 5. ヘキサン酸の構造(赤い部分は幹)

1-3. 環状構造を有する分子のSMILES

次に、シクロヘキサンやベンゼンのように環構造を有する分子はどのように書けばいいかを紹介します。環構造は「離れている原子同士が結合して環化している」と捉え、結合する原子同士の後ろに同じ数字を付けることで結合を表現します。

まず、簡単な環状構造を有するシクロヘキサンを例に考えてみましょう。シクロヘキサンの幹を原子index:0,1,2,3,4,5が繋がった構造(SMILES:CCCCCC)と見ると、シクロヘキサンは幹の末端(index:0,5)が結合したものであるため、結合する最初と最後の炭素に1をつければ、シクロヘキサンのSMILES:C1CCCCC1の完成です。

Figure 6. シクロヘキサンの構造(赤い部分は幹)
Figure 6. シクロヘキサンの構造(赤い部分は幹)

ベンゼンの場合、二重結合を記載してC1=CC=CC=C1のように書くことができますが、芳香族性を示す原子は結合を省略して小文字で書くこともできるので、c1ccccc1とも書けます。複素環でも同様で、ピリジンであればc1ccncc1、ピロールであればc1ccsc1と書くことができます。

Figure 7. 芳香族化合物の構造とSMILES
Figure 7. 芳香族化合物の構造とSMILES

環にいくつか置換基が付加している構造のSMILESは、これまでの知識を応用することで書くことができます。例として、以下のp-クレゾールを考えてみます。これまでと同様に幹を決めます。今回は原子index:0,1,2,3,4,6,7の部分構造を幹とし、index:1,2,3,4,6,7の炭素原子は芳香族炭素なので小文字で書くと、幹のSMILESはOccccccとなります。そして、index:1, 7の原子が結合して環構造を形成しているので、最初の炭素と最後の炭素の後ろに1を追記します。さらに4番目の炭素(index:4)からメチル基が分岐しているので、後ろに(C)を追記することで、Oc1ccc(C)cc1となり完成です。

Figure 8. p-クレゾールの構造(赤い部分は幹)
Figure 8. p-クレゾールの構造(赤い部分は幹)

ここまでで、置換基が付加した環状構造の分子のSMILESまで描画できるようになったと思います。次は、環構造の中でも、環構造同士が縮合したような「縮合環構造」を持つ分子のSMILESの書き方について、ナフタレンを例に解説します。まずはこれまで同様に、幹を決めて、そのSMILESを記載します。今回は原子index:0~9の部分構造を幹とすると、全ての原子が芳香族炭素であるためSMILESはccccccccccとなります。次に最初と最後の炭素(index:0, 9)が結合して環を形成しているので、それらに数字を添えます。そうするとc1ccccccccc1となります。さらに、4番目と9番目の炭素(index:3, 8)にも結合があるため、これらには先程とは異なる数字を添えます。先程は1を添えたので2を添えることにします。そうするとc1ccc2ccccc2c1となります。アントラセンのような、より複雑な構造も同様にして記載できます。

Figure 9. ナフタレンの構造(赤い部分は幹)
Figure 9. ナフタレンの構造(赤い部分は幹)

1-4. ポリマーのSMILES

SMILES記法にはポリマーそのものを書くための厳密なルールは存在しません。しかし、MIや分子動力学シミュレーションを行っていると、オリゴマーなどのポリマーlikeな構造を入力データとして扱いたい場面があります。ここでは、疑似的なポリマー構造をSMILESで表現する方法を紹介します。

まずは、側鎖がないポリマーのSMILESを考えていきます。ここでは、ポリエチレンオキシド(PEO)のSMILESについて考えていきます。まずはPEOの繰り返し構造のSMILES:CCOを書きます。そして、これをn回繰り返すとPEOのn量体のSMILESになります。具体的には、2量体であればCCOCCO、3量体であればCCOCCOCCO、となります。

Figure 10. PEOの構造とSMILES
Figure 10. PEOの構造とSMILES

ここまではそこまで難しくないでしょう。問題は、側鎖を持つポリマーのSMILESです。側鎖を持つポリマーの繰り返し構造のSMILESを適当に書いてしまうと、上記のPEOのように繰り返すだけではポリマーのSMILESにならないため、どこを幹とするかを工夫する必要があります。

ここでは、側鎖を持つポリマーとして、ポリスチレンを例に考えていきます。ポリスチレンの繰り返し構造は全原子を幹と考えてSMILESを書くこともできますが、そうした場合、上記のようにn回繰り返すだけではn量体のSMILESになりません。繰り返し構造の中で「ポリマーの主鎖となる部分」を幹とすると側鎖を持つポリマーでも簡単にSMILESを作成できます。ポリマー化した際の主鎖になるのはFigure 11に示す構造のindex:0,1の炭素なので、その2つの原子のみを幹とします。そして、ベンゼン環が分岐していると考えてSMILESを書くとCC(c1cccc1)となります。このSMILESであれば、n回繰り返すことで、n量体の構造になります。

Figure 11. ポリスチレンの繰り返し構造(赤い部分は幹)
Figure 11. ポリスチレンの繰り返し構造(赤い部分は幹)

2. 発展的なSMILES記法

ここまで紹介した内容で多くの分子のSMILESは書けると思います。しかし、幾何異性体や光学異性体、電荷やラジカルを有する化合物などを書き分けたいということもあるでしょう。ここでは、それらに関して紹介します。

2-1. 幾何異性体を有する分子構造のSMILES

二重結合におけるcis/trans、あるいはE/Z異性体を区別するためには、結合の向きを表す記号として/と\を使用します。これらの記号の使い分けは結合が「左下から右上」に伸びていたら/、「左上から右下」に伸びているなら\と視覚的にイメージします。ここでは、2-ブロモ-3-クロロ-2-ブテンを例にして考えてみます。この化合物にはFigure 12に示すE体とZ体の幾何異性体があります。E体はindexが0と1の原子の結合が左上から右下に伸びているので結合を表す部分に\を用い、indexが3と4の原子が左下から右上に伸びているので/を結合を表す部分に用います。そうすると、SMILESはC\C(Br)=C(/Cl)Cとなります。逆にZ体は、indexが3と4の原子が左上から右下に伸びているので/を結合を表す部分に用い、SMILESはC\C(Br)=C(\Cl)Cとなります。もしくは優先度の高い置換基に着目し、同じ側にあれば、/ /(同じ記号)、逆側であれば/ \(違う記号)になると覚えて、E:CC(/Br)=C(\Cl)C、Z:CC(/Br)=C(/Cl)C、となると覚えてもよいです。

Figure 12. 2-ブロモ-3-クロロ-2-ブテンの幾何異性体
Figure 12. 2-ブロモ-3-クロロ-2-ブテンの幾何異性体

2-2. 光学異性体を有する分子構造のSMILES

不斉炭素を持つ分子におけるR体/S体の区別には、@を使用します。不斉中心となる原子を[ ]で囲み、その直後に@または@@を記述します。これはSMILES文字列の中で、不斉中心の1つ前に書かれている原子から見て、不斉中心に結合している残りの3つの置換基が、SMILES文字列に書かれている順序で、どちら周りに配置されているかを意味しています。@であれば反時計回り、@@であれば時計回りを意味します。原子を[ ]で囲まないときは、適切な価数になるように水素が自動で付加されていましたが、光学異性体を表現するときは[ ]で囲むため、水素を明示的に記載する必要がある点にも注意してください。

アラニンを具体例として見ていきます。アラニンのSMILESはNC(C)C(=O)Oと表記することができます。この中で不斉炭素はSMILESの2文字目の炭素です。不斉炭素Cの1つ前に書かれているのはNであるので、Nから見て、H, C, C(=O)Oが時計回りか反時計回りかを判断します。下図の左の構造は反時計回りなので[C@H]となり、右の構造は時計回りなので[C@@H]となります。

Figure 13. アラニンの光学異性体のSMILES
Figure 13. アラニンの光学異性体のSMILES

2-3. 電荷やラジカルを有する分子構造のSMILES

通常、有機化学で頻出の原子は[ ]で囲まずに書くことができ、この場合、適切な価数になるように水素が自動で付加されます。しかし、電荷やラジカルを有する場合、価数が変わるため、[ ]で原子を囲います。こうすることで、自動で水素が付加されなくなります。その後、原子記号の後ろにカチオンであれば+、アニオンであれば-を記述し、ラジカルであれば何も記述しません。具体的に電荷やラジカルを有する化合物のSMILESをいくつか例示してみます。

Figure 14. 電荷やラジカルを有する構造とSMILES
Figure 14. 電荷やラジカルを有する構造とSMILES

3. まとめ

本記事では、ゼロからSMILESを書くためのエッセンスを紹介しました。SMILESを自力で読み書きできれば、データのエラーに気づけたり、手早く修正できたりと、実務でのメリットは大きいです。もちろん、複雑な構造は既存のツールに任せるなど、柔軟な使い分けも大切です。本記事が、皆さんのSMILESに対するハードルを下げ、日々の研究活動を加速させるきっかけになれば幸いです。

4. 参考文献

[1] SMILES Tutorial,

新着記事

NEW

材料開発の技術者は、計算化学・MIをどう見ているか――82名への独自調査からわかる二分された現場のギャップ

マーケティングチーム マーケティングチーム

マテリアルズインフォマティクス 計算化学

材料開発の技術者は、計算化学・MIをどう見ているか――82名への独自調査からわかる二分された現場のギャップ

NEW

The Lab Is (Not) All You Need―― 自律型ラボはなぜ、原子レベルシミュレーションの価値を下げるのではなく、高めるのか

Joshua Young Joshua Young

ラボオートメーション 機械学習ポテンシャル

The Lab Is (Not) All You Need―― 自律型ラボはなぜ、原子レベルシミュレーションの価値を下げるのではなく、高めるのか

AI for Scienceの最前線 ―「Matlantis User Conference 2026」開催レポート

マーケティングチーム マーケティングチーム

学会レポート

AI for Scienceの最前線 ―「Matlantis User Conference 2026」開催レポート

「物理を再現するAI」で、材料開発の常識を変える――「Matlantis PFP」はいかにして生まれたか

中薗 昴 中薗 昴

インタビュー

「物理を再現するAI」で、材料開発の常識を変える――「Matlantis PFP」はいかにして生まれたか

PFP v9のMLIP Arenaベンチマーク評価(詳細版)

PFP v9のMLIP Arenaベンチマーク評価(詳細版)