本代码适用于这种结构的文件,主要还是SDMolSupplier的参数要转化为str类型,并且只能一个一个的转化。
import sys
import torch
import os
from rdkit import Chem
from pathlib import Path
import glob
import csv
file = os.listdir('../gzfileall/')##总文件夹
names=[]
list=[]
n=0
f=open('./test_ligand.csv','w')
wr=csv.writer(f)
for name in file:##gzfileall下面有个gzfile1文件,取出这个文件下面的所有sdf文件保存到files列表中
names.append(name)
path=os.path.join("../gzfileall/",name)
files=glob.glob(os.path.join(path, "*.sdf"))
print('files:',files)
for x in files:
row_str = '\t'.join([str(x)])
print('row_str:',type(row_str))
mols = [ mol for mol in Chem.SDMolSupplier(row_str,sanitize=False) ]
for mol in mols:
smi = Chem.MolToSmiles(mol)
list.append(smi)
for i in range(len(list)):
wr.writerows([[list[i]]])
f.close()