posts - 431,  comments - 344,  trackbacks - 0

          原文地址: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)CC1CCCCC1(N)CC1CCC(CC1)C(C)=OCC1CCC(CC1)C(C)=O

          苯環然后我們開看看苯環,你想寫成C1=CC=CC=C1,這個也太傻了,太煩了,創造SMILES的那幫牛人們不喜歡,于是他們這樣寫c1ccccc1。用小寫字母表示共軛結構,這樣更接近分子的真實結構。(雖然我們習慣上還是使用Kekule式)芳環的問題解決了,接下來我們看一下比較考驗你腦筋的。

          C1CCc2cnccc2(C1)考驗你腦筋的時候到了,它的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 周銳 閱讀(2440) 評論(0)  編輯  收藏 所屬分類: Chemistry
          主站蜘蛛池模板: 堆龙德庆县| 壤塘县| 昭平县| 额敏县| 大同县| 班戈县| 富阳市| 咸宁市| 科尔| 迁西县| 耒阳市| 鹤壁市| 手机| 佛坪县| 玛纳斯县| 灵丘县| 孟村| 紫阳县| 嵩明县| 安宁市| 宜章县| 金山区| 衡水市| 华宁县| 中山市| 招远市| 屯留县| 子洲县| 咸丰县| 黔西| 宽甸| 五常市| 威信县| 通辽市| 青海省| 栾川县| 安顺市| 华亭县| 和林格尔县| 娱乐| 合作市|