化学構造データ変換-Tips その3になります。
今回はsmiles形式で読み込んだデータからの化学組成式、分子量データの取り出しです。
利用データですが今回もその1の事例で使用したMolecular_Netでて提供されている水和の自由エネルギーデータ(SAMPL_MOL)のデータを利用させていただきました。
(記事の最後にコードを示しています。)
Rdkitには分子情報から機械学習等に用いる各種記述子を生成するモジュール(rdMolDescriptors)が用意されており、このモジュールを用いることで組成式や分子量の情報を取り出すことができます。
その1での事例と同様にまずは既存のcsvファイル(Mol_Net_SAMPL_Mol.csv:元ファイルからファイル名変更)読み込んだ後にsmilesが表記されている列データをリストデータ(smiles)として取り出しています。
続いて、取り出したsmilesのリストからmol形式のリスト(mols)に変換した後に、それぞれ「rdMolDescriptors.CalcMolFormula」、「rdMolDescriptors._CalcMolWt」のモジュールを用いることで組成式、分子量に変換しています。
以下はデータ追加後のデータフレームの一部ですが、組成式(chemforms)、分子量(mws)が追加されているのがわかるかと思います。
以上、smilesデータからの化学組成式、分子量データの取り出しについて紹介させていただきました。
import pandas as pd from rdkit import Chem from rdkit.Chem import AllChem, Draw from rdkit.Chem import rdMolDescriptors df=pd.read_csv('Mol_Net_SAMPL_Mol.csv', encoding='shift-jis') smiles=df['smiles'] mols=[Chem.MolFromSmiles(smi) for smi in smiles] chemforms=[rdMolDescriptors.CalcMolFormula(mol) for mol in mols] df['chemforms']=chemforms mws=[rdMolDescriptors._CalcMolWt(mol) for mol in mols] df['mws']=mws df.to_csv('SAMPL_plus_MWetc.csv')