化学

NIHのChemical identifer resolverでcas番号、SMILES、InChiKey、IUPAC名を取得しよう

chemical identifier resolver CIR

Chemical Identifer Resolverって何?

Chemical Identifer Resolverはアメリカ国立衛生研究所(NIH)が提供している化学情報検索サービスです。さまざまな化学構造を識別する番号を検索する機能があります。例えば「化合物名」から「IUPAC名」や「SMILES」、「Inchi Key」などを取得したり、その逆もできます。得られた構造式からmolファイルを得ることもできます。ケムドローをもっている人にとっては利用価値が薄いかもしれませんが、これらの各種識別子から構造式を確認することもできます。(キャプチャすればレポートに使用する構造式としても使用できるかも?)

Chemical Identifier Resolverの強み!

Chemical Identifier Resolverの強みは単に様々な識別子から別の識別子を得ることではないです。強みは、web URLがAPIのように利用できるところにあります。

https://cactus.nci.nih.gov/chemical/structure/structure identifier/representation

このようにstuructre identifierに当たる部分に識別子をいれて

representationに当たる部分にほしい識別子を入れることによって、その結果を得ることができます。

例えば、https://cactus.nci.nih.gov/chemical/structure/imidazole/smilesのように打つと、「[nH]1ccnc1」とイミダゾールのSMILESが出力されます。URLは文字列ですから他のプログラムでも利用なため、APIのように使えます。

EXCELのセルに打ち込まれている識別子を検索する

エクセルにはマクロという機能が組み込まれています。マクロはVBAというプログラミング言語を使用して、エクセル標準の関数を超えた機能を実装することができます。マクロを使用するとインターネットエクスプローラーと連携することができます。これをchemical identifier resolverと組み合わせるとエクセルのセルに打ち込まれている「化合物名」から「SMILES」を取得するといったことも可能になります。順を追うと

  1. エクセルのセルA2に記入されている「化合物名」を取得
  2. VBAでXに代入して、URL = “https://cactus.nci.nih.gov/chemical/structure/” + X + “/smiles“というようにURLを指定する。(smilesがほしい場合)
  3. インターネットエクスプローラーを呼び出してURLのページを開く
  4. URLページで開いたページに記載されたsmiles([nH]1ccnc1)を取得する(スクレイピング)
  5. セルB2に取得したsmilesを記入する
  6. 処理1にもどりA3を・・・

というように連続処理するとA列に記入された化合物名を元にB列にSMILESを打ち込むということを自動でできます。このようにエクセルとも連携できるのが凄いです。

マクロは開発タブの所にあります。

適当にマクロ名をつけて作成

左枠の標準モジュール→Module1を選択してコードを入力するとVBAが使えます。

このようにするにコードを書いていくと構造式名からSMILESを取得するようなマクロを作成することができます(上のコードは途中までです。後ほど機会があれば…)。

しかしエクセルのマクロはセキュリティの面からデフォルトでオフにされていて、さらにVBAは利用者が多いため、多くのリファレンスがあるので挑戦したいかたはぜひ。

 

ABOUT ME
こめやん
こめやん
こめやんは理学博士です!化学の面白さと学ぶメリットを少しでも伝えるために日々頑張ります! ツイッターにて疑問点や依頼などを募集しています! 論文の和訳やレポートのチェックなどでもお気軽にお待ちしております