IUPAC, CAS_Nameから構造を起こすツールは手元にあるのですが、
ケミストとの視点で考えると使いにくかったり、一般名から構造が起こせると言いな。というニーズはあると思います。
この辺りはOPSINを使うのがいいと思われます。
がとあるところからCIRpyというクールなツールを見つけました。
Chemical Identifier Resolver(CIR)のPython インターフェイスだぜ!ということです。
OPSIN, ChemSpider当たりも入っているぜぃ。
ということで何か惹かれます。
ソースがGitHubにあがっているのでこれをゲットします。
使い方は直感的に行ける感じです。
import cirpy res = cirpy.resolve("imatinib","smiles") print res C5=C(C1=CN=CC=C1)N=C(NC2=C(C=CC(=C2)NC(C3=CC=C(C=C3)CN4CCN(CC4)C)=O)C)N=C5 res = cirpy.resolve("gleevec","smiles") print res C5=C(C1=CN=CC=C1)N=C(NC2=C(C=CC(=C2)NC(C3=CC=C(C=C3)CN4CCN(CC4)C)=O)C)N=C5
という感じです。
CASナンバーもさっくりと。
res = cirpy.resolve("imatinib","cas") print res '220127-57-1'
その他に
stdinchi
stdinchikey
inchi
smiles
ficts
ficus
uuuuu
hashisy
sdf
names
iupac_name
cas
chemspider_id
mw # Molecular weight
formula
と色々なアウトプットが行けます。
それ以外に、記述子も行けます。
h_bond_donor_count
h_bond_acceptor_count
h_bond_center_count
rule_of_5_violation_count
rotor_count
effective_rotor_count
ring_count
ringsys_count
構造式を落とすこともできますね。
cirpy.download("gleevec", 'test.sdf', 'sdf') In [87]: cat test.sdf C30H35N7O4S APtclcactv01201307062D 0 0.00000 0.00000 77 80 0 0 0 0 0 0 0 0999 V2000 5.2698 9.4300 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 6.6728 7.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 8.0757 7.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 3.5377 12.4300 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 4.6116 4.8100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 3.2087 7.2400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 4.9407 13.2400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 3.2087 4.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 1.8057 6.4300 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 3.7456 9.3100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 2.3426 11.7400 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 1.2646 5.2026 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 0.8660 4.5123 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 8.7148 9.0831 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 8.9417 9.9300 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 8.0948 10.1569 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 0.9397 10.9300 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 0.3985 3.7026 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 0.0000 3.0123 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 2.9532 3.0123 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 2.5547 3.7026 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 0.9397 9.3100 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 0.0000 2.2277 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 0.3985 1.5374 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 2.5547 1.5374 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 2.9532 2.2277 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 0.8566 0.6200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 1.4766 0.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 2.0966 0.6200 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 11.4787 6.2055 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 11.8447 7.5715 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 12.8447 5.8394 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 13.2107 7.2055 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 13.7477 6.8955 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 5.8067 9.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 6.6728 7.6200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 7.5388 8.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.0747 12.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.0747 5.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.2087 6.6200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.9407 12.6200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.2087 4.6200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.3426 6.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.2087 9.6200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.3426 11.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.4766 10.6200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.4766 9.6200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.4766 4.6200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 8.4048 9.6200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.4766 0.6200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 6.6728 9.6200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 5.8067 8.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 5.8067 11.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 7.5388 9.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.0747 11.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.0747 6.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.2087 10.6200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.3426 5.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 7.2097 10.9300 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 4.4038 7.9300 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 12.3447 6.7055 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 0.6106 3.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.3426 3.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.6106 2.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.3426 2.1200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 5.8067 6.1200 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 4.9407 6.6200 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 6.6728 10.6200 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 4.9407 7.6200 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 1.4766 3.6200 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 1.4766 1.6200 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 4.9407 10.6200 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 5.8067 12.1200 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 2.3426 9.1200 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 11.1687 6.7424 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 10.9417 5.8955 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 11.7887 5.6685 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 31 61 2 0 0 0 0 32 61 2 0 0 0 0 33 61 1 0 0 0 0 30 61 1 0 0 0 0 66 67 2 0 0 0 0 51 68 1 0 0 0 0 53 68 1 0 0 0 0 53 72 1 0 0 0 0 55 72 2 0 0 0 0 52 69 1 0 0 0 0 67 69 1 0 0 0 0 53 73 2 0 0 0 0 41 73 1 0 0 0 0 48 70 1 0 0 0 0 62 70 1 0 0 0 0 63 70 1 0 0 0 0 44 74 1 0 0 0 0 47 74 2 0 0 0 0 64 71 1 0 0 0 0 65 71 1 0 0 0 0 50 71 1 0 0 0 0 51 54 1 0 0 0 0 35 51 2 0 0 0 0 35 52 1 0 0 0 0 36 52 2 0 0 0 0 37 54 2 0 0 0 0 49 54 1 0 0 0 0 55 57 1 0 0 0 0 38 55 1 0 0 0 0 56 67 1 0 0 0 0 39 56 2 0 0 0 0 40 56 1 0 0 0 0 44 57 2 0 0 0 0 45 57 1 0 0 0 0 36 37 1 0 0 0 0 38 41 2 0 0 0 0 42 58 2 0 0 0 0 43 58 1 0 0 0 0 48 58 1 0 0 0 0 39 42 1 0 0 0 0 40 43 2 0 0 0 0 45 46 2 0 0 0 0 46 47 1 0 0 0 0 62 64 1 0 0 0 0 63 65 1 0 0 0 0 33 34 1 0 0 0 0 59 68 1 0 0 0 0 60 69 1 0 0 0 0 1 35 1 0 0 0 0 2 36 1 0 0 0 0 3 37 1 0 0 0 0 4 38 1 0 0 0 0 5 39 1 0 0 0 0 6 40 1 0 0 0 0 7 41 1 0 0 0 0 8 42 1 0 0 0 0 9 43 1 0 0 0 0 10 44 1 0 0 0 0 11 45 1 0 0 0 0 12 48 1 0 0 0 0 13 48 1 0 0 0 0 14 49 1 0 0 0 0 15 49 1 0 0 0 0 16 49 1 0 0 0 0 17 46 1 0 0 0 0 18 62 1 0 0 0 0 19 62 1 0 0 0 0 20 63 1 0 0 0 0 21 63 1 0 0 0 0 22 47 1 0 0 0 0 23 64 1 0 0 0 0 24 64 1 0 0 0 0 25 65 1 0 0 0 0 26 65 1 0 0 0 0 27 50 1 0 0 0 0 28 50 1 0 0 0 0 29 50 1 0 0 0 0 30 75 1 0 0 0 0 30 76 1 0 0 0 0 30 77 1 0 0 0 0 M END $$$$
これでカレントディレクトリにsdfが落ちます。素敵ですね。