国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法

      文檔序號(hào):10655312閱讀:686來源:國知局
      一種確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法
      【專利摘要】本發(fā)明公開了一種確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法,包括:定義并存儲(chǔ)常見原子、化學(xué)鍵和支鏈關(guān)系;定義切片最小粒度:相鄰原子與之間的化學(xué)鍵關(guān)系與主支鏈關(guān)系作為最小粒度單位;定義起始原子和終止原子,其中起始原子為所述最小粒度對應(yīng)的第一個(gè)原子,終止原子為所述最小粒度對應(yīng)的第二個(gè)原子;基于常見原子、化學(xué)鍵和支鏈關(guān)系對獲取的smiles表達(dá)式進(jìn)行分析以將smiles表達(dá)式切割成一個(gè)個(gè)原子對,統(tǒng)計(jì)smiles表達(dá)式包含的環(huán)的個(gè)數(shù)及原子對的種類、種類個(gè)數(shù)并存儲(chǔ)到哈希表中;根據(jù)原子對的種類、種類個(gè)數(shù)、環(huán)的個(gè)數(shù)確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系。本發(fā)明方法可用于化學(xué)式部分結(jié)構(gòu)檢索,方法簡單,執(zhí)行效率高。
      【專利說明】
      一種確定smi Ies表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法
      技術(shù)領(lǐng)域
      [0001]本發(fā)明屬于化學(xué)技術(shù)領(lǐng)域,涉及一種確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法,具體涉及一種通過分析化學(xué)式的smiles結(jié)構(gòu),去判斷此化學(xué)式與其他化學(xué)式是否具有子結(jié)構(gòu)匹配關(guān)系的方法;應(yīng)用于化合物子結(jié)構(gòu)查詢?!颈尘凹夹g(shù)】
      [0002]化合物子結(jié)構(gòu)查詢在化學(xué)的許多領(lǐng)域中都有應(yīng)用,如QSAR中對意義片段(子結(jié)構(gòu)) 的抽取,分子設(shè)計(jì)中對單元片段(子結(jié)構(gòu))的建模,合成設(shè)計(jì)中對合成子(子結(jié)構(gòu))的分割,以及光譜解析中對發(fā)色團(tuán)(子結(jié)構(gòu))的組合等等都離不開結(jié)構(gòu)匹配,而結(jié)構(gòu)匹配又是進(jìn)行結(jié)構(gòu)性質(zhì)研究的前提,也就是子結(jié)構(gòu)查詢的前提。
      [0003]Smiles是一種線性碼,即是一種用ASCII字符串明確描述分子結(jié)構(gòu)的規(guī)范。線性碼的實(shí)質(zhì)是將分子中原子、鍵以及其它信息通過一定的命名規(guī)則進(jìn)行符號(hào)化,然后按一定順序進(jìn)行排列而成的線性符號(hào)(一般為英文字符和ASCH碼符號(hào))序列。線性碼具有命名的唯一性和單一性,且具有存儲(chǔ)空間要求低的特點(diǎn),能夠滿足子結(jié)構(gòu)查詢的基本要求。是一種比較理想的計(jì)算機(jī)內(nèi)表示化學(xué)結(jié)構(gòu)的方法。
      [0004]化學(xué)式結(jié)構(gòu)匹配中。如今常用的方法是采用對smiles編碼改進(jìn)后的smarts編碼進(jìn)行化學(xué)式結(jié)構(gòu)匹配。Smarts是一種擴(kuò)展形式,專門用于化學(xué)數(shù)據(jù)子結(jié)構(gòu)查詢的一種化學(xué)描述編碼。而如今很多軟件只是支持smiles來表達(dá)化學(xué)式信息,且smiles可很方便與分子式文件進(jìn)行轉(zhuǎn)換。而如何通過只分析smiles來判斷化學(xué)結(jié)構(gòu)子結(jié)構(gòu)關(guān)系至今還沒有較好的方式。
      【發(fā)明內(nèi)容】

      [0005]為了解決上述技術(shù)問題,本發(fā)明提供了一種通過分析化學(xué)式的smiles結(jié)構(gòu),去判斷此化學(xué)式與其他化學(xué)式是否具有子結(jié)構(gòu)匹配關(guān)系的方法。
      [0006]本發(fā)明所采用的技術(shù)方案是:1.一種確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法,其特征在于,包括以下步驟:
      [0007]步驟1:定義并存儲(chǔ)常見原子、常見化學(xué)鍵和常見支鏈關(guān)系;
      [0008]步驟2:定義切片最小粒度;相鄰原子與之間的化學(xué)鍵關(guān)系與主支鏈關(guān)系作為最小粒度單位;
      [0009]步驟3:定義起始原子和終止原子;其中起始原子為所述最小粒度對應(yīng)的第一個(gè)原子,終止原子為所述最小粒度對應(yīng)的第二個(gè)原子;
      [0010]步驟4:基于常見原子、化學(xué)鍵和支鏈關(guān)系對獲取的smiles表達(dá)式進(jìn)行分析以將 smiles表達(dá)式切割成一個(gè)個(gè)原子對,統(tǒng)計(jì)smiles表達(dá)式包含的環(huán)的個(gè)數(shù)及原子對的種類、 種類個(gè)數(shù)并存儲(chǔ)到哈希表中;其中所述原子對根據(jù)相鄰原子與之間的化學(xué)鍵關(guān)系與主支鏈關(guān)系確定;
      [0011]步驟5:對化學(xué)式切片結(jié)果,根據(jù)原子對的種類、種類個(gè)數(shù)、環(huán)的個(gè)數(shù)確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系。
      [0012]作為優(yōu)選,步驟1中所述常見原子包括:H、C、N、0、S、F、Cl、Br、[N+]、[N-]、[0+]、 [〇-];所述常見化學(xué)鍵包括:單鍵、雙鍵、三鍵、楔型向上鍵、楔形向下鍵、離域鍵、順反不確定鍵、空心鍵、不確定鍵;所述常見支鏈包括:一個(gè)原子上包含一個(gè)支鏈、一個(gè)原子上包含二個(gè)支鏈。
      [0013]作為優(yōu)選,步驟4中所述將smiles表達(dá)式切割成一個(gè)個(gè)原子對,具體實(shí)現(xiàn)包括以下子步驟:
      [0014]步驟4.1、首先對那些存儲(chǔ)異構(gòu)smiles的字符串剔除異構(gòu)字符;
      [0015]步驟4.2、統(tǒng)計(jì)環(huán)的個(gè)數(shù)與環(huán)邊拆分位置的原子對;[〇〇16] 步驟4.3、對經(jīng)過預(yù)處理與去環(huán)結(jié)構(gòu)后的smiles字符串進(jìn)行循環(huán)遍歷,判斷ch [Stop]的值情況,其中ch[st〇p]代表遍歷字符串時(shí),下標(biāo)所處位置對應(yīng)的字符值;
      [0017]若為“=”,則化學(xué)鍵=“=”;起始原子為緊靠該位置前的第一個(gè)原子,終止原子為該位置后的第一個(gè)原子;
      [0018]若為“#”,則化學(xué)鍵=“#”;起始原子為緊靠該位置前的第一個(gè)原子,終止原子為該位置后的第一個(gè)原子;
      [0019]若為“(”,該位置前的第一個(gè)原子也就是起始原子與左括號(hào)內(nèi)的內(nèi)容,組成新的字符串,設(shè)置為strl;起始原子與對應(yīng)右括號(hào)后的內(nèi)容,組成新的字符串,設(shè)置為str2;將 strl,str2作為新的smiles表達(dá)式進(jìn)行切片流程處理;
      [0020]若為“)”,位置指針向左尋找,找到與該括號(hào)匹配的左括號(hào)位置,并將左括號(hào)左邊的第一個(gè)原子作為起始原子,位置為起始位置;[0021 ]若為其他字符,則化學(xué)鍵=;起始原子為緊靠該位置前的第一個(gè)原子,終止原子為該位置后的第一個(gè)原子;
      [0022]步驟4.4、根據(jù)公式:原子對=起始原子+化學(xué)鍵+終止原子。得到原子對,并存儲(chǔ)到哈希表map中;[0〇23]步驟4.5、將此次切片結(jié)果存儲(chǔ)到哈希表map中,key值為片段名,value存儲(chǔ)為該片段的個(gè)數(shù);切片結(jié)果展示的是smiles結(jié)構(gòu)式切成片段的種類與個(gè)數(shù)。
      [0024]作為優(yōu)選,步驟4.2中所述統(tǒng)計(jì)環(huán)的個(gè)數(shù),其具體實(shí)現(xiàn)包括以下子步驟:[〇〇25] 步驟4.2.1A:遍歷smiles表達(dá)式每一個(gè)字符,觀察是否有數(shù)字字符;
      [0026]步驟4.2.2A:若包含數(shù)字,記住該數(shù)字的位置,從該位置后繼續(xù)遍歷直到找到包含同樣數(shù)字字符,環(huán)的個(gè)數(shù)加1;過濾掉這兩個(gè)位置的數(shù)字,組成新的字符串;
      [0027]步驟4.2.3A:對新組成的字符串進(jìn)行遍歷,尋找新的數(shù)字字符;
      [0028]步驟4.2.4A:當(dāng)新組成的字符串無數(shù)字符,存儲(chǔ)環(huán)的個(gè)數(shù),則環(huán)的個(gè)數(shù)統(tǒng)計(jì)結(jié)束。
      [0029]作為優(yōu)選,步驟4.2中所述統(tǒng)計(jì)環(huán)邊拆分位置的原子對,其具體實(shí)現(xiàn)包括以下子步驟:
      [0030]步驟4.2.1B:遍歷smiles表達(dá)式,統(tǒng)計(jì)環(huán)邊拆分位置的原子對及對應(yīng)原子對種類數(shù)量加1;[〇〇31] 步驟4.2.2B:對剔除數(shù)字后的smi les表達(dá)式遍歷,統(tǒng)計(jì)表達(dá)式存在原子對與對應(yīng)原子對數(shù)量。
      [0032]作為優(yōu)選,步驟4.3中獲取起始原子的具體實(shí)現(xiàn)包括以下子步驟:
      [0033]步驟4.3.1A:定義常見的雙原子列表,目前有常見的Br,Cl原子,將該列表存入配置文件中;
      [0034]步驟4.3.2A:判斷是否為雙原子;列表中存在的第一個(gè)字符,設(shè)置為chi,若是的話,繼續(xù)判斷第二個(gè)字符ch2,若第二個(gè)原子也是,則起始原子=chl+ch2+ ;若第二個(gè)原子不是,則起始原子= chl+‘°’ ;[〇〇35]步驟4.3.3A:判斷是否為括號(hào);若為括號(hào),起始位置加1,繼續(xù)對新的字符判斷;
      [0036]步驟4.3.4A:判斷是否存在離子;若存在“[”字符,則繼續(xù)尋找直到遇到“]”字符; 則“[”與“]”之間組成的字符串即為起始原子,起始原子=“[”+chl+ch2+……+chn+”]”。
      [0037]作為優(yōu)選,步驟4.3中獲取終止原子的具體實(shí)現(xiàn)包括以下子步驟:[〇〇38]步驟4.3.1B:定義常見的雙原子列表,目前有常見的Br,Cl原子,將該列表存入配置文件中;
      [0039]步驟4.3.2B:判斷是否為雙原子;列表中存在的第一個(gè)字符,設(shè)置為chi,若是的話,繼續(xù)判斷第二個(gè)字符ch2,若第二個(gè)原子也是,則終止原子=chl+ch2+ ;若第二個(gè)原子不是,則終止原子= chl+‘°’;
      [0040]步驟4.3.3B:判斷是否為括號(hào);若為括號(hào),起始位置加1,繼續(xù)對新的字符判斷;[0041 ]步驟4.3.4B:判斷是否存在離子;若存在“[”字符,則繼續(xù)尋找直到遇到“]”字符; 則“[”與“]”之間組成的字符串即為終止原子,終止原子=“[”+chl+ch2+……+chn+“]”。
      [0042]作為優(yōu)選,步驟5的具體實(shí)現(xiàn)包括以下子步驟:[〇〇43]步驟5.1:將兩個(gè)待匹配的smiles表達(dá)式進(jìn)行切片處理,待匹配的smiles表達(dá)式切片結(jié)果記為A,被匹配的smiles表達(dá)式結(jié)果切片結(jié)果記為B;[〇〇44]步驟5.2:判斷,A環(huán)的個(gè)數(shù)是否大于B環(huán)的個(gè)數(shù);
      [0045]若是,則不具有子結(jié)構(gòu)關(guān)系,本流程結(jié)束;
      [0046]若否,則繼續(xù)執(zhí)行下述步驟5.3;
      [0047]步驟5.3:判斷,A的種類是否大于B的種類;
      [0048]若是,則不具有子結(jié)構(gòu)關(guān)系,本流程結(jié)束;[〇〇49]若否,則繼續(xù)執(zhí)行下述步驟5.4;[〇〇5〇]步驟5.4:判斷,A每種種類的個(gè)數(shù)是否大于B對應(yīng)種類的個(gè)數(shù);[0051 ]若是,則不具有子結(jié)構(gòu)關(guān)系,本流程結(jié)束;
      [0052]若否,則具有子結(jié)構(gòu)關(guān)系,本流程結(jié)束。
      [0053]使用本方法可用于判斷兩個(gè)化學(xué)結(jié)構(gòu)式之間是否一個(gè)結(jié)構(gòu)式是另一個(gè)結(jié)構(gòu)式的部分結(jié)構(gòu),也可用于化學(xué)結(jié)構(gòu)式檢索;方法簡單,執(zhí)行效率高?!靖綀D說明】[〇〇54]圖1為本發(fā)明實(shí)施例的切片整體流程圖;
      [0055]圖2為本發(fā)明實(shí)施例的獲取起始原子流程圖;
      [0056]圖3為本發(fā)明實(shí)施例的獲取終止原子流程圖;[〇〇57]圖4為本發(fā)明實(shí)施例的匹配流程圖?!揪唧w實(shí)施方式】
      [0058]為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)描述,應(yīng)當(dāng)理解,此處所描述的實(shí)施示例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。[〇〇59]本發(fā)明提供的一種確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法,包括以下步驟:
      [0060]1.確定常見原子,化學(xué)鍵,支鏈關(guān)系。常見的原子(Atom):H,C,N,0,S,F(xiàn),Cl,Br,[N+ ],[N_],[0+],[0-]。常見的化學(xué)鍵(Bond):單鍵,雙鍵,三鍵,楔型向上鍵,楔形向下鍵,離域鍵,順反不確定鍵,空心鍵,不確定鍵。[0061 ]2.分析smiles表達(dá)式包含的信息。smiles存儲(chǔ)的信息主要包含,原子種類,化學(xué)鍵,支鏈關(guān)系。
      [0062]3.定義切片最小粒度:相鄰原子與之間的化學(xué)鍵關(guān)系與主支鏈關(guān)系作為最小粒度單位。決定化學(xué)式分子式結(jié)構(gòu)的主要因素有,原子的種類個(gè)數(shù),原子之間的化學(xué)鍵,支鏈。
      [0063]4.定義起始原子和終止原子,其中起始原子為所述最小粒度為應(yīng)的第一個(gè)原子; 終止原子為所述最小粒度對應(yīng)的第二個(gè)原子。[0〇64]5 ?將匹配的smiles表達(dá)式與待匹配的smiles通過切片算法處理,將smiles表達(dá)式切割成一個(gè)個(gè)原子對。統(tǒng)計(jì)原子對的種類,個(gè)數(shù),并存儲(chǔ)到哈希表中。
      [0065]6.對化學(xué)式切片結(jié)果通過匹配算法判斷是否具有部分結(jié)構(gòu)關(guān)系。
      [0066]接下來詳細(xì)講解切片算法與匹配算法。[〇〇67]本算法會(huì)設(shè)置常用五個(gè)變量,起始原子,終止原子,化學(xué)鍵值,起始原子位置,終止原子位置。附圖上分別以startAtom,stopAtom,bond,start,stop命名。
      [0068]—、切片流程圖參照附圖1,切片算法描述如下:[〇〇69] Stepl:預(yù)處理。此次匹配流程是不考慮異構(gòu)smiles情況,所以首先會(huì)對那些存儲(chǔ)異構(gòu)smiles的字符串剔除異構(gòu)字符。如7”,“\”。
      [0070] Step2:統(tǒng)計(jì)環(huán)的個(gè)數(shù)與環(huán)邊拆分位置的原子對。[0071 ] 其詳細(xì)過程如下:
      [0072] (1)遍歷smiles表達(dá)式每一個(gè)字符,觀察是否有數(shù)字字符;[〇〇73] (2)若包含數(shù)字,記住該數(shù)字的位置,從該位置后繼續(xù)遍歷直到找到包含同樣數(shù)字字符。環(huán)的個(gè)數(shù)加1。存儲(chǔ)環(huán)邊拆分位置的原子對。過濾掉這兩個(gè)位置的數(shù)字,組成新的字符串;
      [0074] (3)對新組成的字符串進(jìn)行遍歷,尋找新的數(shù)字字符;
      [0075] (4)當(dāng)新組成的字符串無數(shù)字符,存儲(chǔ)環(huán)的個(gè)數(shù)。則環(huán)的個(gè)數(shù)統(tǒng)計(jì)結(jié)束;[0〇76] Step3:對經(jīng)過預(yù)處理與去環(huán)結(jié)構(gòu)后的8111;[168字符串進(jìn)行循環(huán)遍歷,判斷〇11[81:〇口] 的值情況。[〇〇77] Step4:若為“=”,則化學(xué)鍵=“=”。起始原子為緊靠該位置前的第一個(gè)原子,終止原子為該位置后的第一個(gè)原子。[〇〇78] Step5:若為“#”,則化學(xué)鍵=“#”。起始原子為緊靠該位置前的第一個(gè)原子,終止原子為該位置后的第一個(gè)原子。[〇〇79] Step6:若為“(”,該位置前的第一個(gè)原子也就是起始原子與左括號(hào)內(nèi)的內(nèi)容,組成新的字符串,設(shè)置為strl;起始原子與對應(yīng)右括號(hào)后的內(nèi)容,組成str2;將Strl,Str2作為新的smi 1 es表達(dá)式進(jìn)行切片流程處理。此方式運(yùn)用的迭代算法。
      [0080]Step7:若為“)”,位置指針向左尋找,找到與該括號(hào)匹配的左括號(hào)位置,并將左括號(hào)左邊的第一個(gè)原子作為起始原子,位置為起始位置。[〇〇81]StepS:若為其他字符,則化學(xué)鍵=‘°’。起始原子為緊靠該位置前的第一個(gè)原子,終止原子為該位置后的第一個(gè)原子。[0〇82]Step9:根據(jù)原子對=起始原子+化學(xué)鍵+終止原子。得到原子對,并存儲(chǔ)到哈希表map 中。[0〇83]SteplO:此次切片結(jié)果存儲(chǔ)到哈希表map中,key值為片段名,value存儲(chǔ)為該片段的個(gè)數(shù)。切片結(jié)果展示的是smiles結(jié)構(gòu)式切成片段的種類與個(gè)數(shù)。[0〇84]二、其中起始原子的getStartAtom()方法為獲取起始原子,獲取流程圖參照附圖 2,獲取起始原子流程說明如下:
      [0085]Stepl:從起始位置對應(yīng)的字符進(jìn)行判斷,會(huì)將常用的雙原子列表存入配置文件中;[〇〇86]Step2:判斷是否為雙原子。列表中存在的第一個(gè)字符,設(shè)置為chi,若是的話,繼續(xù)判斷第二個(gè)字符ch2,若第二個(gè)原子也是,則起始原子=chl+ch2+ 。若第二個(gè)原子不是,則起始原子= chl+‘°’ ;[〇〇87]Step3:判斷是否為括號(hào)。若為括號(hào),起始位置加1,繼續(xù)對新的字符判斷;[〇〇88]Step4:判斷是否存在離子。若存在“[”字符,則繼續(xù)尋找直到遇到“]”字符。則“[”與“]”之間組成的字符串即為起始原子,起始原子=“[”+chl+ch2+……+chn+”]”;[〇〇89] 三、獲取getStopAtom()終止原子的流程圖參照附圖3,獲取終止原子流程說明如下:
      [0090]Stepl:從終止位置對應(yīng)的字符進(jìn)行判斷,會(huì)將常用的雙原子列表存入配置文件中;
      [0091]Step2:判斷是否為雙原子。列表中存在的第一個(gè)字符,設(shè)置為chi,若是的話,繼續(xù)判斷第二個(gè)字符ch2,若第二個(gè)原子也是,則終止原子=chl+ch2+ 。若第二個(gè)原子不是,則終止原子zchl+w’ ;[〇〇92]Step3:判斷是否為括號(hào)。若為括號(hào),起始位置加1,繼續(xù)對新的字符判斷;[〇〇93]Step4:判斷是否存在離子。若存在“[”字符,則繼續(xù)尋找直到遇到“]”字符。則“[”與“]”之間組成的字符串即為終止原子,終止原子=“[”+chl+ch2+……+chn+“]”;
      [0094]四、以上為切片算法描述。獲取切片結(jié)果集后,需要根據(jù)切片結(jié)果集進(jìn)行,匹配檢測。匹配流程圖參照附圖4。匹配算法描述如下:[〇〇95] 將兩個(gè)待匹配的smiles表達(dá)式進(jìn)行切片處理,待匹配的smiles表達(dá)式切片結(jié)果記為A,被匹配的smiles表達(dá)式結(jié)果記為B。對A跟B的結(jié)果進(jìn)行比較:[〇〇96]Stepl:若A的環(huán)的個(gè)數(shù)大于B的環(huán)的個(gè)數(shù),則匹配不成功,不具有子結(jié)構(gòu)關(guān)系[〇〇97]Step2:若A的種類大于B的種類,則匹配不成功,不具有子結(jié)構(gòu)關(guān)系;
      [0098]Step3:若A每種種類的個(gè)數(shù)大于B對應(yīng)種類的個(gè)數(shù),則匹配不成功,不具有子結(jié)構(gòu)關(guān)系;[〇〇99]Step4:在不滿足上述三個(gè)條件時(shí),匹配成功,具有子結(jié)構(gòu)關(guān)系。
      [0100]應(yīng)當(dāng)理解的是,本說明書未詳細(xì)闡述的部分均屬于現(xiàn)有技術(shù)。
      [0101]應(yīng)當(dāng)理解的是,上述針對較佳實(shí)施例的描述較為詳細(xì),并不能因此而認(rèn)為是對本發(fā)明專利保護(hù)范圍的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明權(quán)利要求所保護(hù)的范圍情況下,還可以做出替換或變形,均落入本發(fā)明的保護(hù)范圍之內(nèi),本發(fā)明的請求保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
      【主權(quán)項(xiàng)】
      1.一種確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法,其特征在于,包括以下步 驟:步驟1:定義并存儲(chǔ)常見原子、常見化學(xué)鍵和常見支鏈關(guān)系;步驟2:定義切片最小粒度;相鄰原子與之間的化學(xué)鍵關(guān)系與主支鏈關(guān)系作為最小粒度 單位;步驟3:定義起始原子和終止原子;其中起始原子為所述最小粒度對應(yīng)的第一個(gè)原子, 終止原子為所述最小粒度對應(yīng)的第二個(gè)原子;步驟4:基于常見原子、化學(xué)鍵和支鏈關(guān)系對獲取的smiles表達(dá)式進(jìn)行分析以將smiles 表達(dá)式切割成一個(gè)個(gè)原子對,統(tǒng)計(jì)smiles表達(dá)式包含的環(huán)的個(gè)數(shù)及原子對的種類、種類個(gè) 數(shù)并存儲(chǔ)到哈希表中;其中所述原子對根據(jù)相鄰原子與之間的化學(xué)鍵關(guān)系與主支鏈關(guān)系確 定;步驟5:對化學(xué)式切片結(jié)果,根據(jù)原子對的種類、種類個(gè)數(shù)、環(huán)的個(gè)數(shù)確定smiles表達(dá)式 之間是否具有子結(jié)構(gòu)關(guān)系。2.根據(jù)權(quán)利要求1所述的確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法,其特征 在于:步驟1中所述常見原子包括:H、C、N、0、S、F、C1、Br、[N+]、[N-]、[0+]、[0-];所述常見化 學(xué)鍵包括:單鍵、雙鍵、三鍵、楔型向上鍵、楔形向下鍵、離域鍵、順反不確定鍵、空心鍵、不確 定鍵;所述常見支鏈包括:一個(gè)原子上包含一個(gè)支鏈、一個(gè)原子上包含二個(gè)支鏈。3.根據(jù)權(quán)利要求1所述的確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法,其特征 在于:步驟4中所述將smi les表達(dá)式切割成一個(gè)個(gè)原子對,具體實(shí)現(xiàn)包括以下子步驟:步驟4.1、首先對那些存儲(chǔ)異構(gòu)smiles的字符串剔除異構(gòu)字符;步驟4.2、統(tǒng)計(jì)環(huán)的個(gè)數(shù)與環(huán)邊拆分位置的原子對;步驟4.3、對經(jīng)過預(yù)處理與去環(huán)結(jié)構(gòu)后的smi les字符串進(jìn)行循環(huán)遍歷,判斷ch[ stop]的 值情況,其中ch [ s top ]代表遍歷字符串時(shí),下標(biāo)所處位置對應(yīng)的字符值;若為“=”,則化學(xué)鍵=“=”;起始原子為緊靠該位置前的第一個(gè)原子,終止原子為該位 置后的第一個(gè)原子;若為“#”,則化學(xué)鍵=“#”;起始原子為緊靠該位置前的第一個(gè)原子,終止原子為該位置 后的第一個(gè)原子;若為“(”,該位置前的第一個(gè)原子也就是起始原子與左括號(hào)內(nèi)的內(nèi)容,組成新的字符 串,設(shè)置為strl;起始原子與對應(yīng)右括號(hào)后的內(nèi)容,組成新的字符串,設(shè)置為str2;將strl, str2作為新的smi les表達(dá)式進(jìn)行切片流程處理;若為“)”,位置指針向左尋找,找到與該括號(hào)匹配的左括號(hào)位置,并將左括號(hào)左邊的第 一個(gè)原子作為起始原子,位置為起始位置;若為其他字符,則化學(xué)鍵=;起始原子為緊靠該位置前的第一個(gè)原子,終止原子為該 位置后的第一個(gè)原子;步驟4.4、根據(jù)公式:原子對=起始原子+化學(xué)鍵+終止原子。得到原子對,并存儲(chǔ)到哈希 表map中;步驟4.5、將此次切片結(jié)果存儲(chǔ)到哈希表map中,key值為片段名,value存儲(chǔ)為該片段的 個(gè)數(shù);切片結(jié)果展示的是smiles結(jié)構(gòu)式切成片段的種類與個(gè)數(shù)。4.根據(jù)權(quán)利要求3所述的確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法,其特征在于,步驟4.2中所述統(tǒng)計(jì)環(huán)的個(gè)數(shù),其具體實(shí)現(xiàn)包括以下子步驟:步驟4.2.1A:遍歷smi les表達(dá)式每一個(gè)字符,觀察是否有數(shù)字字符;步驟4.2.2A:若包含數(shù)字,記住該數(shù)字的位置,從該位置后繼續(xù)遍歷直到找到包含同樣 數(shù)字字符,環(huán)的個(gè)數(shù)加1;過濾掉這兩個(gè)位置的數(shù)字,組成新的字符串;步驟4.2.3A:對新組成的字符串進(jìn)行遍歷,尋找新的數(shù)字字符;步驟4.2.4A:當(dāng)新組成的字符串無數(shù)字符,存儲(chǔ)環(huán)的個(gè)數(shù),則環(huán)的個(gè)數(shù)統(tǒng)計(jì)結(jié)束。5.根據(jù)權(quán)利要求3所述的確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法,其特征 在于:步驟4.2中所述統(tǒng)計(jì)環(huán)邊拆分位置的原子對,其具體實(shí)現(xiàn)包括以下子步驟:步驟4.2.1B:遍歷smi les表達(dá)式,統(tǒng)計(jì)環(huán)邊拆分位置的原子對及對應(yīng)原子對種類數(shù)量 加1;步驟4.2.2B:對剔除數(shù)字后的smi les表達(dá)式遍歷,統(tǒng)計(jì)表達(dá)式存在原子對與對應(yīng)原子對數(shù)量。6.根據(jù)權(quán)利要求3所述的確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法,其特征 在于,步驟4.3中獲取起始原子的具體實(shí)現(xiàn)包括以下子步驟:步驟4.3.1A:定義常見的雙原子列表,將該列表存入配置文件中;所述雙原子包括Br, Cl原子;步驟4.3.2A:判斷是否為雙原子;列表中存在的第一個(gè)字符,設(shè)置為chi,若是的話,繼 續(xù)判斷第二個(gè)字符ch2,若第二個(gè)原子也是,則起始原子=chl+ch2+ ;若第二個(gè)原子不是, 則起始原子= chl+‘°’ ;步驟4.3.3A:判斷是否為括號(hào);若為括號(hào),起始位置加1,繼續(xù)對新的字符判斷;步驟4.3.4A:判斷是否存在離子;若存在“[”字符,則繼續(xù)尋找直到遇到“]”字符;則“[” 與“]”之間組成的字符串即為起始原子,起始原子=“[”+chl+ch2+……+chn+”]”。7.根據(jù)權(quán)利要求3所述的確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方法,其特征 在于,步驟4.3中獲取終止原子的具體實(shí)現(xiàn)包括以下子步驟:步驟4.3.1B:定義常見的雙原子列表,將該列表存入配置文件中;所述雙原子包括Br, Cl原子;步驟4.3.2B:判斷是否為雙原子;列表中存在的第一個(gè)字符,設(shè)置為chi,若是的話,繼 續(xù)判斷第二個(gè)字符ch2,若第二個(gè)原子也是,則終止原子=chl+ch2+ ;若第二個(gè)原子不是, 則終止原子= (^1+^ ;步驟4.3.3B:判斷是否為括號(hào);若為括號(hào),起始位置加1,繼續(xù)對新的字符判斷;步驟4.3.4B:判斷是否存在離子;若存在“[”字符,則繼續(xù)尋找直到遇到“]”字符;則“[” 與“]”之間組成的字符串即為終止原子,終止原子=“[”+chl+ch2+……+chn+“]”。8.根據(jù)權(quán)利要求1-7任意一項(xiàng)所述的確定smiles表達(dá)式之間是否具有子結(jié)構(gòu)關(guān)系的方 法,其特征在于,步驟5的具體實(shí)現(xiàn)包括以下子步驟:步驟5.1:將兩個(gè)待匹配的smiles表達(dá)式進(jìn)行切片處理,待匹配的smiles表達(dá)式切片結(jié) 果記為A,被匹配的smi les表達(dá)式結(jié)果切片結(jié)果記為B;步驟5.2:判斷,A環(huán)的個(gè)數(shù)是否大于B環(huán)的個(gè)數(shù);若是,則不具有子結(jié)構(gòu)關(guān)系,本流程結(jié)束;若否,則繼續(xù)執(zhí)行下述步驟5.3;步驟5.3:判斷,A的種類是否大于B的種類;若是,則不具有子結(jié)構(gòu)關(guān)系,本流程結(jié)束;若否,則繼續(xù)執(zhí)行下述步驟5.4;步驟5.4:判斷,A每種種類的個(gè)數(shù)是否大于B對應(yīng)種類的個(gè)數(shù); 若是,則不具有子結(jié)構(gòu)關(guān)系,本流程結(jié)束;若否,則具有子結(jié)構(gòu)關(guān)系,本流程結(jié)束。
      【文檔編號(hào)】G06F17/30GK106021474SQ201610330605
      【公開日】2016年10月12日
      【申請日】2016年5月18日
      【發(fā)明人】顧進(jìn)廣, 彭彬, 黃智生, 范玉玲, 楊毅融
      【申請人】武漢科技大學(xué), 廈門中坤化學(xué)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1