化合物名→SMILESの変換にはCIRpy

公開日:2019-03-03
最終更新:2019-03-03
※この記事は外部サイト(https://qiita.com/hrs1985/items/cd821f47eb...)からのクロス投稿です

急に化合物名をSMILES表記に一括変換したくなったのでTwitterで嘆いていたところ、フォロワーさんが CIRpy を勧めてくれたので使ってみることにしました。

CIRpy

pip でも入れられるとのことですが、
“ UnicodeDecodeError: ‘cp932’ codec can’t decode byte 0x94 in position 1066: illegal multibyte sequence”
が出てきて私の環境では導入できなかったので、

git clone https://github.com/mcs07/CIRpy.git

これで引っ張ってきたうえでsetup.pyの8行目の

    long_description = open('README.rst').read()

    long_description = open('README.rst', encoding='utf-8').read()

に変えて

python setup.py install

でいけました。

import cirpy  
cirpy.resolve("amorpha-4,11-diene", "smiles")  
-> 'C[[email protected]@H]1CC[[email protected]]([[email protected]]2C=C(C)CC[[email protected]@H]12)C(C)=C'

これで化合物名をSMILES表記に変換するのが捗りますね。

ちなみに結構色々な名前に対応しているっぽく、

cirpy.resolve("insulin", "smiles")  
-> 'CC[[email protected]](C)[[email protected]](NC(=O)CN)C(=O)N[[email protected]@H](C(C)C)C(=O)N[[email protected]@H](CCC(O)=O)C(=O)N[[email protected]@H](CCC(N)=O)C(=O)N[[email protected]]1CSSC[[email protected]@H]2NC(=O)[[email protected]@H](NC(=O)[[email protected]](CO)NC(=O)[[email protected]@H](NC(=O)[[email protected]](CSSC[[email protected]](NC(=O)[[email protected]](CC(C)C)NC(=O)[[email protected]](Cc3[nH]cnc3)NC(=O)[[email protected]](CCC(N)=O)NC(=O)[[email protected]](CC(N)=O)NC(=O)[[email protected]@H](NC(=O)[[email protected]@H](N)Cc4ccccc4)C(C)C)C(=O)NCC(=O)N[[email protected]@H](CO)C(=O)N[[email protected]@H](Cc5[nH]cnc5)C(=O)N[[email protected]@H](CC(C)C)C(=O)N[[email protected]@H](C(C)C)C(=O)N[[email protected]@H](CCC(O)=O)C(=O)N[[email protected]@H](C)C(=O)N[[email protected]@H](CC(C)C)C(=O)N[[email protected]@H](Cc6ccc(O)cc6)C(=O)N[[email protected]@H](CC(C)C)C(=O)N[[email protected]@H](C(C)C)C(=O)N[[email protected]@H](CSSC[[email protected]](NC(=O)[[email protected]](Cc7ccc(O)cc7)NC(=O)[[email protected]](CC(N)=O)NC(=O)[[email protected]](CCC(O)=O)NC(=O)[[email protected]](CC(C)C)NC(=O)[[email protected]](CCC(N)=O)NC(=O)[[email protected]](Cc8ccc(O)cc8)NC(=O)[[email protected]](CC(C)C)NC(=O)[[email protected]](CO)NC2=O)C(=O)N[[email protected]@H](CC(N)=O)C(O)=O)C(=O)NCC(=O)N[[email protected]@H](CCC(O)=O)C(=O)N[[email protected]@H](CCCNC(N)=N)C(=O)NCC(=O)N[[email protected]@H](Cc9ccccc9)C(=O)N[[email protected]@H](Cc%10ccccc%10)C(=O)N[[email protected]@H](Cc%11ccc(O)cc%11)C(=O)N[[email protected]@H]([[email protected]@H](C)O)C(=O)N%12CCC[[email protected]]%12C(=O)N[[email protected]@H](CCCCN)C(=O)N[[email protected]@H]([[email protected]@H](C)O)C(O)=O)NC1=O)[[email protected]@H](C)O)[[email protected]@H](C)CC'

こんな感じになったりします。

記事が少しでもいいなと思ったらクラップを送ってみよう!
18
+1
@kiyoの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする