読者です 読者をやめる 読者になる 読者になる

Acetaminophen’s diary

化学に関すること,TeXに関すること,ゆきだるまに関すること。

Wikipedia に関連したニュース

今日発見した、Wikipedia 関連の話題を紹介。

1. Wikipedia 日本語版も PDF ダウンロードが可能に

2. Wikipedia から化合物を構造式で検索できるサイト

特に 2 つめは注目! 最近流行りの JavaScript を使用して制作され、substructure や similarity からの検索も可能にしたという論文が素晴らしい。

f:id:acetaminophen:20150328102704p:plain

 

1. Wikipedia 日本語版も PDF ダウンロードが可能に

以前の PDF を扱うツールいろいろ(1) という記事で、Wikipedia は PDF 形式でダウンロード可能であること、またそのレンダリングに XeLaTeX が使われていることを紹介した。しかし、僕が確認した当時(関連ツイートはこのあたり)は日本語版や中国語版の PDF ダウンロードは不可能だった。

しかし、今日見てみると日本語版にも「PDF 形式でダウンロード」というメニューが追加されているではないか!

f:id:acetaminophen:20150327185220p:plain

いつの間に…情報求む!*1

 

2. Wikipedia から化合物を構造式で検索できるサイト

あの Wikipedia に登録されている膨大な化合物を、構造式から直接検索できるサイトを発見した。

f:id:acetaminophen:20150327191252p:plain

この成果は Journal of Cheminformatics 誌に発表されている (Open Access) 。

Wikipedia Chemical Structure Explorer: substructure and similarity searching of molecules from Wikipedia
P. Ertl, L. Patiny, T. Sander, C. Rufener and M. Zasso, Journal of Cheminformatics 2015, 7:10 doi:10.1186/s13321-015-0061-y

内部では SMILES 表記法が重要な役割を果たしていて、substructure や similarity からの検索も可能になっている。

f:id:acetaminophen:20150327191309p:plain

昨今の JavaScript の台頭は顕著で、このブログでも既に紹介したとおり Open Babel や RasMol がブラウザ上で動くようになっている。

今回の Wikipedia 構造式検索も JavaScript で実現されていて、興味深いのでもう少し詳しく論文を読み解いてみることにする。本記事では不特定多数のユーザが編集に参加している Wikipedia からどのようにして構造式を抽出したかという点に注目した。

この検索サイトを制作するにあたり、Wikipedia で化合物の情報をまとめて表示するマークアップ部分である Chembox が利用されている。

f:id:acetaminophen:20150328093836p:plain

この Chembox の存在が Wikipedia 内でその項目が化学物質であることを示していて、著者らは該当する 15,474 項目の“生データ”、すなわち Wiki マークアップを取得している。その中から SMILES 表記法だけをパースして重複する構造を排除している。

こうして得られた SMILES 表記法の中には問題を含むものもあり…

Over 600 of these codes could not be processed by the SMILES parser. A clear majority of the problems (over 350 cases) was caused by not respecting the SMILES syntax rules for unsubstituted pyrrole-type nitrogen. This nitrogen was encoded as n and not as [nH] as required by the SMILES grammar (so for example benzimidazole was incorrectly encoded as n2c1ccccc1nc2).

この benzimidazole の例について、以前紹介してすっかり本ブログでおなじみの Open Babel を使って SMILES 表記法から構造式の画像を生成してみる(ついでなのでインストール不要でブラウザ上で動く上記の JavaScript 版 Open Babel を利用)。

f:id:acetaminophen:20150328095628p:plain

左は ChemSpider から取得したc1ccc2c(c1)[nH]cn2 という記法で、著者らが推奨する無置換ピロールの N に対して [nH] という記法を用いている。右は著者らが非推奨とする Wikipedia の n2c1ccccc1nc2 という記法*2。どちらも結果としては正しい構造式を表示できているが、右のほうは確かに H の存在を略している分、あいまいさが増大しているということだろうか…

というわけで、以前問題提起した Firefly luciferin の Open Babel での構造式生成の失敗を思い出してみよう。ChemSpider から取得できる C1[C@@H](N/C(=c\2/nc3c(=CC(=O)C=C3)s2)/S1)C(=O)O という SMILES 表記法から Open Babel で変換すると下図左のようになり、本来の構造と比べると二重結合が一つ不足している。下図右は、いったんこの SMILES 表記法から ChemSketch を用いて構造式を生成 (Generate Structure from SMILES) し、それを再度 SMILES 表記法に戻し (Generagte SMILES Notation) たうえで改めて Open Babel で変換したもの。

f:id:acetaminophen:20150328105759p:plain

f:id:acetaminophen:20150328110126p:plain

ChemSketch は元と異なる OC(=O)[C@@H]1N\C(SC1)=C2/SC3=CC(=O)C=CC3=N2 という表記を生成し、これなら Open Babel でも変換に成功した。問題になっているのは N を含むヘテロ環 thiazole 部分の水素の有無であり、芳香族を表す小文字の n による表記があいまいさを含んでいるという例ではないだろうか*3

著者らは Wikipedia に登録されている SMILES 表記法の誤りを 100 以上個別に直接修正し、それでも不都合のある構造については Browse errors リンクにリストアップしている。Wikipedia 本体の品質向上にも貢献しようというわけだ。構造式の抽出は随時自動で行われているので最新の Wikipedia に常に対応し、抽出された SMILES データは Download SMILES から一覧でダウンロード可能である。

本プロジェクトは他の多くのオープンソースプロジェクトをベースに構築されていて、今回の Wikipedia Chemical Structure Explorer のソースも GitHub で公開されている。今後も JavaScript の動向から目が離せない。

追記 2015-03-30:少しだけ続報→こちら

*1:どうやら 3 月 4 日時点では追加されていたらしいが、この他にそれらしき情報が見当たらない。Wikipedia の変更履歴を覗いてみたが、特に記述がなかった…

*2:2015 年 3 月 28 日現在、benzimidazole の SMILES 表記法は 2 通り登録されていて、一つ目が n2c1ccccc1nc2 で二つ目が c1ccc2c(c1)[nH]cn2 になっている。

*3:それ以上細かいところには立ち入っていないので、正確ではないかもしれないので注意されたい。ちなみに Wikipedia ではケトン型ではなくフェノール型を掲載していた。