简化分子线性输入规范(SMILES)是一种用ASCII字符串明确描述分子结构的规范,由David Weininger和Arthur Weininger于20世纪80年代晚期开发,并由其他人,尤其是日光化学信息系统有限公司修改和扩展。
SMILES字符串可以被大多数分子编辑软件导入并转换成二维图形或分子的三维模型。转换成二维图形可以使用Helson的“结构图生成算法”(Structure Diagram Generation algorithms)。
#!usr/bin/python3
# python sdftosmiles.py molecules.sdf
import sys
from rdkit import Chem
def converter(file_name):
mols = [ mol for mol in Chem.SDMolSupplier( file_name ) ]
outname = file_name.split(".sdf")[0] + ".smi"
out_file = open( outname, "w" )
for mol in mols:
smi = Chem.MolToSmiles(mol)
name = mol.GetProp("_Name")
out_file.write( "{}\t{}\n".format(smi, name ))
out_file.close()
if __name__=="__main__":
converter( sys.argv[1] )