11
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

#目的
化合物の基本的な情報(化合物名やCASなど)から、その化合物の情報(カノニカルSMILESや、分子量などの基本的な記述子)を取得する。
(SMILES情報があれば記述子を計算→化合物の物性予測の変数として使用できるが、SMILESを収集するのが面倒なので自動で一気に取得したい)
#前準備
pubchemのモジュールをインストールしておく

pip install pubchempy

#単一化合物情報の取得
とりあえず一つの化合物の情報を取得する方法

import pubchempy as pcp

#取得したい情報のリストを定義
properties = ['MolecularFormula', 'MolecularWeight', 'CanonicalSMILES', 'IUPACName']

#CAS番号から情報を取得する
result = pcp.get_properties(properties, '64-17-5', 'name')

#化合物ごとにレコードを記録した辞書のリストが返される。
print(result)
"""
output
[{'CID': 702,
  'MolecularFormula': 'C2H6O',
  'MolecularWeight': 46.07,
  'CanonicalSMILES': 'CCO',
  'IUPACName': 'ethanol'}]
"""

#複数化合物情報の取得
リストに格納された複数のCAS番から化合物情報を取得してpandasのデータフレームに格納する。

import pubchempy as pcp
import pandas as pd

#情報を取得したい化合物のCAS番号のリストと取得したい情報のリストを定義
properties = ['MolecularFormula','CanonicalSMILES', 'IUPACName']
cas_list = ['100-21-0','1002-62-6','10028-15-6','1002-84-2','1002-89-7', '999-9-9']

#pubchem に情報のない化合物はエラーとなるので、エラーが発生しても途中で終了させずに処理を継続できるようにtry文を使用
df = pd.DataFrame()
for cas in cas_list:
    try:
        temp = pcp.get_properties(properties, cas, 'name',as_dataframe=True)
        #as_dataframe=True とすることでpandas dataframe として情報を取得可能
        temp['CAS'] = cas
        df = pd.concat([df,temp],axis=0,join='outer',sort=True)
    except:
        pass

上記コードから取得できたデータフレーム
(CAS:999-9-9 はpubchemにデータがないので省かれている)

CID CAS CanonicalSMILES IUPACName MolecularFormula
7489 100-21-0 C1=CC(=CC=C1C(=O)O)C(=O)O terephthalic acid C8H6O4
4457968 1002-62-6 CCCCCCCCCC(=O)[O-].[Na+] sodium;decanoate C10H19NaO2
24823 10028-15-6 [O-][O+]=O ozone O3
13849 1002-84-2 CCCCCCCCCCCCCCC(=O)O pentadecanoic acid C15H30O2
9861187 1002-89-7 CCCCCCCCCCCCCCCCCC(=O)[O-].[NH4+] azanium;octadecanoate C18H39NO2

付録)検索に使用する情報まとめ

  • name:化合物名, CAS番
  • formula:分子式
  • smiles:SMILES
  • inchi:InChI(世界共通で使える化合物の標準名)
  • sdf:sdf(化合物の表記法)
  • cid:CID(pubchemのデータベース内で化合物に割り当てられているID)

付録)取得できる情報まとめ

(*随時、情報を追加していく)
RDKitやmordredで分子記述子や構造記述子を計算しなくても、これらの変数である程度の予測はできそう。

  • MolecularFormula:分子式
  • MolecularWeight:分子量
  • CanonicalSMILES:カノニカルSMILES
  • IsomericSMILES :同位体や不斉中心についての記述を含むSMILES
  • InChI:InChI(世界共通で使える化合物の標準名)
  • InChIKey:化合物のデジタル表現
  • IUPACName:IUPAC名
  • XLogP:水オクタノール分配係数
  • ExactMass:分子量
  • MonoisotopicMass
  • TPSA:Topological Polar Surface Area(トポロジカル極性表面積)
  • Complexity
  • Charge
  • HBondDonorCount
  • HBondAcceptorCount
  • RotatableBondCount
  • HeavyAtomCount
  • IsotopeAtomCount
  • AtomStereoCount
  • DefinedAtomStereoCount
  • UndefinedAtomStereoCount
  • BondStereoCount
  • DefinedBondStereoCount
  • UndefinedBondStereoCount
  • CovalentUnitCount
  • Volume3D
  • XStericQuadrupole3D
  • YStericQuadrupole3D
  • ZStericQuadrupole3D
  • FeatureCount3D
  • FeatureAcceptorCount3D
  • FeatureDonorCount3D
  • FeatureAnionCount3D
  • FeatureCationCount3D
  • FeatureRingCount3D
  • FeatureHydrophobeCount3D
  • ConformerModelRMSD3D
  • EffectiveRotorCount3D
  • ConformerCount3D

#参考HP

11
17
1

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
11
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?