Journal of Computer Chemistry, Japan
Online ISSN : 1347-3824
Print ISSN : 1347-1767
ISSN-L : 1347-1767
速報 (SCCJ Annual Meeting 2018 Autumn Poster Award Article)
正規表現拡張SMILESを用いた化学構造検索の提案
坂本 雅志藤芳 明生
著者情報
ジャーナル フリー HTML

2018 年 17 巻 5 号 p. 193-195

詳細
Abstract

This paper proposes the use of regular expressions for chemical structure search. As regular expressions dramatically improve the convenience of string search, a regular expression extension for SMILES can improve the convenience of chemical structure search.The regular expression extension for SMILES is obtained from the existing SMILES notation by adding the curly brackets “{” and “}” for range specifications, the vertical bar “|” for enumerations of choices, the asterisk “*” for repetitions of 0 or more times, and the plus“+” for repetitions of 1 or more times. Software for chemical structure search using the extended SMILES was implemented and released.

1 はじめに

正規表現の登場によって文字列検索の利便性が飛躍的に向上したように,化学構造検索の利便性を向上するため,既存の化学構造表記法SMILES [1]を拡張した正規表現拡張SMILESを提案する.例えば,文書の中からメールアドレスを検索したい場合には,正規表現[a-zA-Z0-9¥._-]+@[a-zA-Z0-9¥._-]+を使えばよいように,正規表現拡張SMILESを使えば,条件を満たす化学構造式を全て検索することができる.

特定の化学物質を検索する場合,部分構造検索が用いられることが多い.しかし,ありふれた部分構造で検索すると,あまりにも多くの物質が検索に引っかかってしまう.そこで,より限定的な部分構造で検索し直す必要があるが,漏れなく検索するためには,部分構造検索を何度も繰り返す必要がある.正規表現拡張SMILESを利用すれば,一つの文字列で,特定の化学構造の集合を表現することができ,一度で適切な化学構造検索を行うことが可能となる.

SMARTS等,SMILESの拡張記法は他にも存在するが,正規表現拡張SMILESは,無限集合や異なる化学構造をまとめて表現できる点において優位であるといえる.

2 方法

正規表現拡張SMILESは,既存の化学構造表記法SMILES [1]に対し,波括弧「{」と「}」によって拡張する部分を指定し,縦棒「|」による選択,アスタリスク「*」による0回以上の繰り返し,プラス「+」による1回以上の繰り返しを指定できるように拡張した文字列である.アスタリスクとプラスの記号は既存のSMILESでも使われているが,波括弧直後のそれらは正規表現の解釈を優先させ,表記の曖昧さを回避する.

正規表現拡張SMILESを用いてFigure 1に示す化学構造を表現してみる.(1) 酸素と二重結合で結合した炭素にR1 = C or N,R2 = O or Clが結合する物質は,既存のSMILESでは,「O=C (C) O,O=C (C) Cl,O=C (N) O,O=C (N) Cl」の4通りの組み合わせを全て列挙する必要があるが,正規表現拡張SMILESでは,「O=C ({C|N}){O|Cl}」と表現できる.(2) ベンゼンジオールの3つの位置異性体(オルト,メタ,パラ)は,「Oc1c{(O) cc|c (O) c|cc (O)}cc1」と表現できる.(3) シクロアルカンの集合は,「C1C{C}*C1」と表現できる.(4) ベンゼンとアセン類の集合は,「c1ccc{c (c1c1) c}*cc1」と表現できる.

Figure 1.

 Chemical structure formulas

化学構造検索を行うためには,正規表現拡張SMILESをグラフオートマトンに変換する必要がある.ベンゼンとアセン類の集合を表す文字列「c1ccc{c (c1c1) c}*cc1」をグラフオートマトンに変換する例を示す.

文字列を先頭から読み込んで,状態遷移を規定する.最初に,すべての原子に状態を割り当てる.芳香族炭素を表す各「c」に,それぞれ状態q1からq10を当てる.文字列中の数字「1」は,ここに環の始まりと終わりがあることを示している.数字「1」の表す環に状態p1を当てる.Figure 2に割り当てられた状態を示す.状態q1の炭素には,状態q2の炭素への接続と,環の始まりへの接続がある.よって,次の状態遷移を規定する.    q1(c(:,@)) -> c(q2(:),p1(@))   

Figure 2.

 State assignment

コロン「:」は芳香族結合を表し,「@」は環の始まりへの接続を表す.4番目の「c」の後に0回以上繰り返しを表す「{c (c1c1) c}*」が続く.よって,状態q4の炭素からは,繰り返し回数0のときの遷移(状態q9の炭素への接続)と,繰り返しがあるときの遷移(状態q5の炭素への接続)の2通りの遷移が存在する.この2通りの状態遷移は,以下のように規定される.    q4(c(:)) -> c(q5(:))       q4(c(:)) -> c(q9(:))   

状態q5の炭素からは,分岐が行われる.状態q6の炭素への分岐と,状態q8の炭素への分岐である.    q5(c(:,:)) -> c(q6(:),q8(:))   

6番目の「c」の後に数字「1」が続く.これは,状態q6の炭素には,状態q7の炭素への接続と,環の終わりへの接続があることを表している.    q6(c(:,:)) -> c(q7(:),p1(:))   

状態q7の炭素には,環の始まりへの接続がある.    q7(c(@)) -> c(p1(@))   

繰り返しが続く場合,状態q8の炭素は,状態q5の炭素に接続する.一方,繰り返しが終わる場合,状態q8の炭素は,状態q9の炭素に接続する.    q8(c(:)) -> c(q5(:))       q8(c(:)) -> c(q9(:))   

最後に,状態q10の炭素は,環の終わりへ接続する.    q10(c(:)) -> c(p1(:))   

得られたグラフオートマトンのすべての状態遷移をFigure 3に示す.

Figure 3.

 Graph automaton

3 結果

正規表現拡張SMILESをグラフオートマトンに変換するアルゴリズムの実装を行い,著者らが開発したグラフ構造検索ソフトCBGfinderと組み合わせ,化学構造検索ソフトを完成させた.この検索ソフトは,研究室のWebページhttp://apricot.cis.ibaraki.ac.jp/RegExSMILESで公開している.正規表現拡張SMILES「O=C ({C|N}){O|Cl}」,「Oc1c{(O) cc|c (O) c|cc (O)}cc1」,「C1C{C}*C1」,「c1ccc{c (c1c1) c}*cc1」を用いて部分構造検索を行い,Figure 4のように正しく検索できたことを確認した.

Figure 4.

 Search results

4 まとめ

既存の化学構造表記法SMILES [1]を拡張した正規表現拡張SMILESを提案し,化学構造検索ソフトを実装した.この検索手法が実用化されることで,きめ細かに条件を記述して化合物を正確に検索できるようになるだけでなく,情報秘匿のために本当に検索したい化学構造を曖昧にしたまま検索することが可能となる.

参考文献
 
© 2018 日本コンピュータ化学会
feedback
Top