Wikipedia に関連したニュース
今日発見した、Wikipedia 関連の話題を紹介。
1. Wikipedia 日本語版も PDF ダウンロードが可能に
2. Wikipedia から化合物を構造式で検索できるサイト
特に 2 つめは注目! 最近流行りの JavaScript を使用して制作され、substructure や similarity からの検索も可能にしたという論文が素晴らしい。
1. Wikipedia 日本語版も PDF ダウンロードが可能に
以前の PDF を扱うツールいろいろ(1) という記事で、Wikipedia は PDF 形式でダウンロード可能であること、またそのレンダリングに XeLaTeX が使われていることを紹介した。しかし、僕が確認した当時(関連ツイートはこのあたり)は日本語版や中国語版の PDF ダウンロードは不可能だった。
しかし、今日見てみると日本語版にも「PDF 形式でダウンロード」というメニューが追加されているではないか!
いつのまにかWikipediaの日本語版がPDFでダウンロードできるようになっていた。もちろんXeLaTeXでレンダリング。
— Acetaminophen (@aminophen) 2015, 3月 27
いつの間に…情報求む!*1
2. Wikipedia から化合物を構造式で検索できるサイト
あの Wikipedia に登録されている膨大な化合物を、構造式から直接検索できるサイトを発見した。
Wikipedia上の化合物を構造式から検索できるWikipedia chemical structure explorer http://t.co/QCSlmIbNHL ←作者のGoogle+ https://t.co/MlPTRjgvJC より。JavaScriptスゴい!
— Acetaminophen (@aminophen) 2015, 3月 27
この成果は 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 からの検索も可能になっている。
昨今の JavaScript の台頭は顕著で、このブログでも既に紹介したとおり Open Babel や RasMol がブラウザ上で動くようになっている。
今回の Wikipedia 構造式検索も JavaScript で実現されていて、興味深いのでもう少し詳しく論文を読み解いてみることにする。本記事では不特定多数のユーザが編集に参加している Wikipedia からどのようにして構造式を抽出したかという点に注目した。
この検索サイトを制作するにあたり、Wikipedia で化合物の情報をまとめて表示するマークアップ部分である Chembox が利用されている。
この 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 を利用)。
左は 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 で変換したもの。
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:少しだけ続報→こちら。