2
3

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-03-02

急に化合物名を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[C@@H]1CC[C@H]([C@H]2C=C(C)CC[C@@H]12)C(C)=C'

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

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

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

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

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3