【发布时间】:2018-04-12 19:22:32
【问题描述】:
目的:我目前正在使用 rdkit 根据rdkit.Chem.Draw.SimilarityMaps 为我的分子结构上色。现在,我想使用 matplotlib imagesSimilarityMaps 函数将它们引入到 pandas 数据框中,并将此表以 html 文件的形式导出。
代码:我尝试使用以下代码来做到这一点
import pandas as pd
from rdkit import Chem
from rdkit.Chem import Draw
from rdkit.Chem.Draw import SimilarityMaps
from rdkit.Chem.Draw import IPythonConsole #Needed to show molecules
from rdkit.Chem.Draw.MolDrawing import MolDrawing, DrawingOptions
df = pd.DataFrame({'smiles':['Nc1nc(NC2CC2)c3ncn([C@@H]4C[C@H](CO)C=C4)c3n1','CCCC(=O)Nc1ccc(OCC(O)CNC(C)C)c(c1)C(C)=O','CCN(CC)CCNC(=O)C1=CC=C(C=C1)NC(=O)C','CC(=O)NC1=CC=C(C=C1)O','CC(=O)Nc1sc(nn1)[S](N)(=O)=O']})
def getSim(smi):
mol = Chem.MolFromSmiles(smi)
refmol = Chem.MolFromSmiles('c1ccccc1')
fp = SimilarityMaps.GetMorganFingerprint(mol, fpType='bv')
fig, maxweight = SimilarityMaps.GetSimilarityMapForFingerprint(refmol, mol, SimilarityMaps.GetMorganFingerprint)
return fig
df['map'] = df['smiles'].map(getSim)
df.to_html('/.../test.html')
当我打开文件test.html 时,地图列包含信息“图(200x200)”。我检查我的数据框地图列是否包含对象:在 python 中可以,但在 html 文件中没有。
问题:我不确定如何获取包含图像的数据框,我希望社区能帮助我澄清这个问题。
提前致谢
【问题讨论】:
标签: python pandas matplotlib rdkit