原文地址:http://chemhack.com/cn/2009/04/%e3%80%8a%e6%93%8d%e8%9b%8b%e7%9a%84%e5%8c%96%e5%ad%a6%e4%bf%a1%e6%81%af%e5%ad%a6%e3%80%8b-%e8%ae%a1%e7%ae%97%e6%9c%ba%e9%87%8c%e7%9a%84%e5%88%86%e5%ad%90-1a/
今天我们聊一下SMILES,下面是Wikipeida里的解释,但是请不要看它,因为这个解释实在太复杂了。
SMILES(Simplified molecular input line entry specification),简化分子线性输入规范,是一种用ASCII字符串明确描述分子结构的规范。SMILES由Arthur Weininger和David Weininger于20世纪80年代晚期开发,并由其他人,尤其是日光化学信息系统有限公司(Daylight Chemical Information Systems Inc.),修改和扩展。
由于SMILES用一串字符来描述一个三维化学结构,它必然要将化学结构转化成一个生成树,此系统采用纵向优先遍历树算法。转化时,先要去掉氢,还要把环打开。表示时,被拆掉的键端的原子要用数字标记,支链写在小括号里。
SMILES字符串可以被大多数分子编辑软件导入并转换成二维图形或分子的三维模型。转换成二维图形可以使用Helson的“结构图生成算法”(Structure Diagram Generation algorithms)。
这个SMILES是怎么回事呢?一堆牛人在很久很久以前就开发了一套牛X的化学信息系统,但是怎么输入分子结构还是个比较大的问题。就是要用画的,也不是人人都有鼠标啊(我们把时间设置在SMILES还没发明的80年代初)。但是每个有计算机的人都有键盘吧,于是大家就要想想怎么用键盘输入分子结构。
拿这玩意来说吧,,乙醇分子,大家都认识。我要在纸上画我可以画出来这么一个玩意。高中化学,大家都上过,有时候老师就给留那么一个空,你画图还不好画,你会怎么写呢?对了,就是CH3CH2OH了。这个结构用SMILES标示就是CCO,你发现了什么?这帮牛人太懒了,H都懒得写。反正有机分子都是要配成符合价键规则的,该有几个H大家都清楚,省了就省了。
然后是这个玩意,,现在我告诉你它的SMILES表示是C=CCO。
现在你可以告诉我,你学会了SMILES了。我给你讲个笑话,说的是从前有个地主,他有个儿子,地主给他儿子请了个先生叫他认字,先生教了“一”字,然后先生又教了“二”字,然后地主儿子就说我学会写字了,结果呢地主让他儿子去写请帖,碰巧人家姓“万”,好冷啊 -.-!
地主儿子还好,他可以画一万横,不过你就是把键盘上的按键都拔下来也找不到那个键上有三个横,于是这个其实是C#CCO。
现在你会用SMILES表示所有的长链分子了,那么这个怎么办?
这个我们这样表示,C=C(C)CO,分支的地方加个括号就好了。我想你肯定看懂了,接下来我们来点有难度的,环。
这个就是环己烷了,用SMILES表示是C1CCCCC1。简单来说,就是把环给砍断成链了,砍的地方做个标记(这里是1)。然后我只要记住C1和C1是连起来的就是把这个SMILES还原成环了。挺Easy不是?然后我们来看看取代基。
这个是个间甲基苯酚,环上一个羟基取代一个甲基取代。用SMILES表示就是CC1CCCC(O)C1。同样的道理,C1和C1相连,然后跟在某个环内的C后面有个(O),表示这里有个分支。脑子里想象一下,这串SMILES是可以动的,然后C1跟C1接一下,是不是就是上面的图?这里有点复杂了,多给两个例子,自己看看吧。
CC1CCCCC1(N)CC1CCC(CC1)C(C)=O
然后我们开看看苯环,你想写成C1=CC=CC=C1,这个也太傻了,太烦了,创造SMILES的那帮牛人们不喜欢,于是他们这样写c1ccccc1。用小写字母表示共轭结构,这样更接近分子的真实结构。(虽然我们习惯上还是使用Kekule式)芳环的问题解决了,接下来我们看一下比较考验你脑筋的。
考验你脑筋的时候到了,它的SMILES表示是C1CCc2cnccc2(C1),看明白了吗?看明白就看明白了,没看明白就算了,因为你手里有一个鼠标,还去理这种80年的输入方法干啥?下面就谈到了SMILES的意义了。虽然SMILES设计的时候是用作输入的,因为它便于人类理解,但是现在SMILES常常用于在计算机中储存分子结构,因为它简单,它基于字符。至于输入的活,既然我们已经有了鼠标,那就点点画画吧,直观、方便。但是了解SMILES是很有意义的哦,当然它的意义不仅仅和(你看你就会用Windows,我还会点DOS命令)一样。
另外要说的是,除了SMILES之外,线性编码还有WLN、InChi等,但是现在就不做介绍了,因为它们现在远远没有SMILES应用广泛,WLN已经快老死了,InChi还没有长大。
计算机里的分子 – 1a篇到此完结,下面进行节目预告:
计算机里的分子 – 1b将介绍如何用JChemPaint画分子结构、生成SMILES,以及一点Java,用CDK来读取SMILES的一点Java代码。
posted on 2009-10-19 17:15
周锐 阅读(2415)
评论(0) 编辑 收藏 所属分类:
Chemistry