from rdkit import Chem from rdkit.Chem import Draw, rdDepictor from rdkit.Chem.Draw import SimilarityMaps from PIL import Image import numpy as np mol = Chem.MolFromSmiles('COc1cccc2cc(C(=O)NCCCCN3CCN(c4cccc5nccnc54)CC3)oc21') refmol = Chem.MolFromSmiles('CCCN(CCCCN1CCN(c2ccccc2OC)CC1)Cc1ccc2ccccc2c1') fp = SimilarityMaps.GetMorganFingerprint(mol, fpType='bv')#生成Morgan指纹 rdDepictor.Compute2DCoords(mol)# # 获取分子对象的2D坐标 fig, maxweight = SimilarityMaps.GetSimilarityMapForFingerprint(mol, refmol, SimilarityMaps.GetMorganFingerprint)# 绘制指纹到分子对象上 fig.canvas.draw() # 将图片缩放为高清 X = np.array(fig.canvas.renderer.buffer_rgba()) im = Image.fromarray(X) im = im.resize((800, 800),resample=Image.LANCZOS) im.save('E:/masdh/map.svg')# 更改这段代码为可以保存svg图片保存
时间: 2024-02-25 19:59:24 浏览: 20
你可以尝试将最后一行的代码修改为以下内容:
```python
im.save('E:/masdh/map.svg', format='svg')
```
这样可以显式地指定保存的文件格式为SVG,避免出现文件扩展名不被识别的问题。
相关问题
from rdkit import Chem from rdkit.Chem import Draw from rdkit.Chem import AllChem import pandas as pd
import pandas as pd
from rdkit import Chem
from rdkit.Chem import Draw
from rdkit.Chem import AllChem
# 读取数据文件
data = pd.read_csv('input.csv')
# 获取rxn_smiles列的数据
rxn_smiles = data['rxn_smiles']
# 遍历每个 rxn_smiles 字符串并保存图片
for i, smi in enumerate(rxn_smiles):
print(smi)
rxn = Chem.AllChem.ReactionFromSmarts(smi)
if rxn is not None:
# 绘制反应结构
img = Draw.ReactionToImage(rxn)
img.show()
img.save(f'reaction_{i}.png')
else:
print("Failed to parse rxn_smiles:", smi)
请用其他方法替代from rdkit.Chem import rdMolStandardize
你可以使用以下代码将rdkit.Chem模块中的rdMolStandardize函数进行替代:
import rdkit
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import rdFMCS
mol = Chem.MolFromSmiles('CC(=O)OCC1OC(O)C(O)C(O)C1O')
AllChem.EmbedMolecule(mol)
AllChem.UFFOptimizeMolecule(mol)
mcsp = rdFMCS.FindMCS([mol])
core = Chem.MolFromSmarts(mcsp.smartsString)
print(Chem.MolToSmiles(core))