Chapter 25

【3回目】pubchempyでできること

poclabweb
poclabweb
2022.10.26に更新

これまでに非常に多くの化合物が単離または合成されており、その化学的性質に関する膨大な知見が蓄積されている。 これら化合物の情報を一カ所に集めたものが化学データベースです。 このデータベースにアクセスすることで、先人たちの知恵を借りることができる。

ここでは、pubchempyを使って名前などから化合物データに変換していくやり方を学びます。

講義動画

https://vimeo.com/showcase/8854108

今回のアウトライン

0. インストールと環境表示

インストール

!pip install pubchempy
import pubchempy as pcp
pcp. __version__

1. 化合物データの確認など

化合物名での検索

compounds = pcp.get_compounds('quercetine', 'name')

smilesでの検索

pcp.get_compounds('C1=CC2=C(C3=C(C=CC=N3)C=C2)N=C1', 'smiles')

得られるデータは、list形式になっている。

2. 発展的な検索方法(部分構造検索、CIDからの検索)

分子式で検索

pcp.get_compounds('C20H41Br', 'formula')

汎用的なものだと接続時間エラーになる可能性が高い

部分構造検索

pcp.get_compounds('CC', searchtype='superstructure', listkey_count=3)

CIDからの検索

pcp.Compound.from_cid(6819)

3. get_propertiesの使い方とpubchemとpandasの連携

propertiesとの連携

compound = "alanine"
properties = ['iupacname', 'molecularformula', 'molecularweight', 'canonicalsmiles']
pcp.get_properties(properties, compound, 'name', as_dataframe=True)

pubchemとpandasの連携 (分子式検索)

分子式検索との連携でいろんな化合物も検索できる。
df = pcp.get_compounds('C20H41Br', 'formula', as_dataframe=True)

ただし、呼び出す数が多すぎるとエラーになる。

4. Download

pcp.download('PNG', 'asp.png', 'Aspirin', 'name')
pcp.download('CSV', 's.csv', [1,2,3], operation='property/CanonicalSMILES,IsomericSMILES')