RDkit을 사용하여 분자 구조 그리기
미리 준비하다
설치 모듈
conda install -c conda-forge rdkit
conda install xlsxwriter
분자 구조 그리기
모듈 가져오기
import pandas as pd
from rdkit import Chem
from rdkit.Chem import Draw
from rdkit.Chem import Descriptors
from rdkit.ML.Descriptors import MoleculeDescriptors
from rdkit.Chem import PandasTools
MOL 객체 준비
# 適当な化学構造のsmilesリストを準備する
smiles_list = ['Oc(cccc1)c1O', 'OC(C(C1)C1(Br)Br)=O', 'Cc(cc1)ccc1O',
'Oc(cc1)ccc1Cl', 'OC(c1cocc1)=O', 'CC(C)c1nnn[nH]1',
'CN(C=C1)C=CC1=N', 'CCc1cccnn1', 'C[C@H]([C@H]1NC)[C@@H]1NC',
'CCCc1ncc[nH]1']
# 化合物のラベルを作成
label_list = ['sample_{}'.format(i) for i in range(len(smiles_list))]
# molオブジェクトのリストを作成
mols_list = [Chem.MolFromSmiles(smile) for smile in smiles_list]
분자 이미지 만들기, 저장 (png)
# とりあえず描画したい時
Draw.MolToImage(mols[0])
# pngファイルとして出力
Draw.MolToFile(mols_list[0],'test.png',size=(300, 300))
분자 세트에서 메쉬 레이아웃 이미지 작성
img = Draw.MolsToGridImage(mols_list,
molsPerRow=5, #一列に配置する分子の数
subImgSize=(200,200),
legends=label_list #化合物の下に表示するラベル
)
#ファイルに保存する
img.save('test_grid.png')
포함된 Excel 파일로 이미지 내보내기
각 분자 구조를 붙인 판다스 데이터 프레임을 제작하여 excel 파일로 출력합니다.
(예: RDkit의 분자 설명자를 사용하는 데이터 프레임)# RDkit記述子の作成
descriptor_names = [descriptor_name[0] for descriptor_name in Descriptors._descList[:5]]
descriptor_calculation = MoleculeDescriptors.MolecularDescriptorCalculator(descriptor_names)
RDkit = [descriptor_calculation.CalcDescriptors(mol_temp) for mol_temp in mols_list]
df = pd.DataFrame(RDkit, columns = descriptor_names,index=label_list)
df['smiles'] = smiles_list
# DataFrameへのImageの追加とエクセルファイルでの出力
PandasTools.AddMoleculeColumnToFrame(df, molCol='IMAGE', smilesCol='smiles')
PandasTools.SaveXlsxFromFrame(df, 'data_frame.xlsx',
molCol='IMAGE',
size=(150,150)
)
추기
2018년에는 1분자의'MolToImage'그리기와 Excel 파일로 출력한'SaveXlsxFromFrame'이 문제없이 실행됐지만, 지금은 다음 오류로 실행되지 않고 있다.'Image' object has no attribute 'tostring'
해결책을 아는 사람이 있다면 제게 메시지를 남겨주시면 좋겠네요.
참조 HP
conda install -c conda-forge rdkit
conda install xlsxwriter
모듈 가져오기
import pandas as pd
from rdkit import Chem
from rdkit.Chem import Draw
from rdkit.Chem import Descriptors
from rdkit.ML.Descriptors import MoleculeDescriptors
from rdkit.Chem import PandasTools
MOL 객체 준비
# 適当な化学構造のsmilesリストを準備する
smiles_list = ['Oc(cccc1)c1O', 'OC(C(C1)C1(Br)Br)=O', 'Cc(cc1)ccc1O',
'Oc(cc1)ccc1Cl', 'OC(c1cocc1)=O', 'CC(C)c1nnn[nH]1',
'CN(C=C1)C=CC1=N', 'CCc1cccnn1', 'C[C@H]([C@H]1NC)[C@@H]1NC',
'CCCc1ncc[nH]1']
# 化合物のラベルを作成
label_list = ['sample_{}'.format(i) for i in range(len(smiles_list))]
# molオブジェクトのリストを作成
mols_list = [Chem.MolFromSmiles(smile) for smile in smiles_list]
분자 이미지 만들기, 저장 (png)
# とりあえず描画したい時
Draw.MolToImage(mols[0])
# pngファイルとして出力
Draw.MolToFile(mols_list[0],'test.png',size=(300, 300))
분자 세트에서 메쉬 레이아웃 이미지 작성
img = Draw.MolsToGridImage(mols_list,
molsPerRow=5, #一列に配置する分子の数
subImgSize=(200,200),
legends=label_list #化合物の下に表示するラベル
)
#ファイルに保存する
img.save('test_grid.png')
포함된 Excel 파일로 이미지 내보내기
각 분자 구조를 붙인 판다스 데이터 프레임을 제작하여 excel 파일로 출력합니다.
(예: RDkit의 분자 설명자를 사용하는 데이터 프레임)
# RDkit記述子の作成
descriptor_names = [descriptor_name[0] for descriptor_name in Descriptors._descList[:5]]
descriptor_calculation = MoleculeDescriptors.MolecularDescriptorCalculator(descriptor_names)
RDkit = [descriptor_calculation.CalcDescriptors(mol_temp) for mol_temp in mols_list]
df = pd.DataFrame(RDkit, columns = descriptor_names,index=label_list)
df['smiles'] = smiles_list
# DataFrameへのImageの追加とエクセルファイルでの出力
PandasTools.AddMoleculeColumnToFrame(df, molCol='IMAGE', smilesCol='smiles')
PandasTools.SaveXlsxFromFrame(df, 'data_frame.xlsx',
molCol='IMAGE',
size=(150,150)
)
추기
2018년에는 1분자의'MolToImage'그리기와 Excel 파일로 출력한'SaveXlsxFromFrame'이 문제없이 실행됐지만, 지금은 다음 오류로 실행되지 않고 있다.
'Image' object has no attribute 'tostring'
해결책을 아는 사람이 있다면 제게 메시지를 남겨주시면 좋겠네요.참조 HP
Reference
이 문제에 관하여(RDkit을 사용하여 분자 구조 그리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ottantachinque/items/7233f5038d59461862ff텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)