记录用过的RDKit对化学分子不同表示方式的批量转化

1、将化学分子的inchi表示批量转化为分子图表示。
可以使用rdkit.Chem.inchi module的rdkit.Chem.inchi.MolFromInchi函数。常见的关于inchi表示的一些操作函数都可以在rdkit.Chem.inchi module里,但没有从Inchi直接转化为smile的函数。

#从inchi转为分子图
from rdkit import Chem

with open('inchi数据.txt') as f:
    inchis = f.readlines()
    
mols = []
for inchi in inchis:
    #print(inchi)
    #print(type(inchi))
    mol = Chem.inchi.MolFromInchi(inchi.strip(),sanitize=None)#这个地方用strip删空格是因为读入的时候有加入空白,不删除会导致inchi.MolFromInch函数无法返回分子图。(报错形式:[16:28:12]  Error)
    #print(mol)
    mols.append(mol)

2、将分子图转化为inchi表示。
可以使用如下函数,但是我没有用过。
rdkit.Chem.inchi.MolToInchi(mol, options=’’, logLevel=None, treatWarningAsError=False)

3、将分子图表示批量转化为smiles表示。

#从分子图转为smile格式
from rdkit import Chem
smis=[]
for mol in mols:
    smi = Chem.MolToSmiles(mol)
    #print(smi)
    smis.append(smi)

4、将smiles表示批量转化为分子图表示。

from rdkit import Chem
smis=[]
for i in open ("with and without data augmentation intersection.txt"):
    smis.append(i)
mols = []
for smi in smis:
    print(smi)
    mol = Chem.MolFromSmiles(smi)
    mols.append(mol)

5、将分子图以图片的形式保存

from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import Draw
from rdkit.Chem.Draw.MolDrawing import MolDrawing, DrawingOptions
img = Draw.MolsToGridImage(mols, molsPerRow=5, subImgSize=(300, 300))
img.save("1.png")

记录RDKit的学习资源:
1、http://rdkit.chenzhaoqiang.com/basicManual.html#id28
2、http://www.rdkit.org/docs/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值