• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于動(dòng)態(tài)規(guī)劃的雙序列比對(duì)算法構(gòu)件設(shè)計(jì)與實(shí)現(xiàn)

    2019-09-16 02:32:16石海鶴周衛(wèi)星
    關(guān)鍵詞:構(gòu)件建模領(lǐng)域

    石海鶴 周衛(wèi)星

    (江西師范大學(xué)計(jì)算機(jī)信息工程學(xué)院 南昌 330022)

    序列比對(duì)是一種通過(guò)排列基因組序列來(lái)識(shí)別序列相似性區(qū)域,從而獲得待比對(duì)序列之間的功能、結(jié)構(gòu)或進(jìn)化關(guān)系的技術(shù).隨著人類基因組計(jì)劃的實(shí)施,測(cè)序技術(shù)的發(fā)展產(chǎn)生了大量的有關(guān)生物分子的原始序列數(shù)據(jù),例如,Illumina HiSeqX Ten在3天之內(nèi)可以產(chǎn)生大約30億個(gè)2×150 bp的雙端測(cè)序數(shù)據(jù)[1].面對(duì)如此豐富的基因組序列數(shù)據(jù),如何高效處理和分析這些豐富的基因組序列數(shù)據(jù),如比較兩序列之間的相似區(qū)域和保守性位點(diǎn),尋求序列同源結(jié)構(gòu),揭示生物遺傳、變異和進(jìn)化關(guān)系等,成為了序列比對(duì)算法研究的主要?jiǎng)恿χ?

    研究表明,計(jì)算機(jī)的微處理性能和存儲(chǔ)設(shè)備容量平均每18~24個(gè)月增長(zhǎng)1倍,而基因組測(cè)序數(shù)據(jù)則平均4~5月就增長(zhǎng)1倍,這成為了高性能計(jì)算發(fā)展史中一個(gè)前所未有的挑戰(zhàn),因此序列比對(duì)算法的時(shí)空開(kāi)銷和精準(zhǔn)度成為生物序列比對(duì)過(guò)程中的關(guān)鍵因素之一.由于序列比對(duì)屬于NP-hard問(wèn)題,而運(yùn)籌學(xué)中動(dòng)態(tài)規(guī)劃策略多用于解決多階段決策過(guò)程最優(yōu)化問(wèn)題,因此,動(dòng)態(tài)規(guī)劃策略被廣泛應(yīng)用于序列比對(duì)算法之中.這里我們主要針對(duì)基于動(dòng)態(tài)規(guī)劃的雙序列比對(duì)算法(dynamic programming-based pairwise sequence alignment algorithm, DPPSAA)領(lǐng)域開(kāi)展研究.

    在雙序列比對(duì)算法中最為經(jīng)典的確定性雙序列比對(duì)算法有基于全局比對(duì)的NW算法[2](Needleman-Wunsch algorithm)、基于局部比對(duì)的SW算法[3](Smith-Waterman algorithm)和準(zhǔn)全局比對(duì)算法.在后續(xù)的研究中,發(fā)展出了基于以上算法進(jìn)行優(yōu)化[4-6]或作為主要比對(duì)策略[7-9]的系列算法.

    目前,比對(duì)算法的研究大部分集中于序列相似性分析領(lǐng)域中的特定問(wèn)題[10-13]或者特定算法優(yōu)化[14-16],而較少面向于整個(gè)問(wèn)題域,難以得到一個(gè)具有更高抽象層次且適用于整個(gè)序列相似性分析領(lǐng)域的算法構(gòu)件庫(kù),在一定程度上導(dǎo)致了序列比對(duì)算法的冗余以及人為選擇算法可能造成的誤差等問(wèn)題,也使得人們難以有效地了解算法結(jié)構(gòu),無(wú)法保證算法的正確使用,在一定程度上降低了序列相似性分析結(jié)果的準(zhǔn)確性.由于現(xiàn)有算法的專用性和低抽象性,不僅導(dǎo)致研究人員需要花費(fèi)大量時(shí)間去學(xué)習(xí)和使用該類算法,降低了算法的可維護(hù)性和復(fù)用性,而且難以定位和解決算法產(chǎn)生的錯(cuò)誤,加重了序列相似性分析的負(fù)擔(dān).

    通過(guò)深入分析DPPSAA領(lǐng)域,本文設(shè)計(jì)和實(shí)現(xiàn)了該領(lǐng)域抽象泛型算法構(gòu)件庫(kù),提高了序列相似性分析領(lǐng)域算法可靠性和開(kāi)發(fā)效率.首先對(duì)DPPSAA領(lǐng)域進(jìn)行特征分析,提取出其中的通用和可變特征以及它們之間的約束與依賴關(guān)系,建立了一致的領(lǐng)域構(gòu)件模型,基于此設(shè)計(jì)了算法構(gòu)件交互模型,進(jìn)一步利用新型高可靠軟件開(kāi)發(fā)平臺(tái)PAR[17-19]中高抽象程序設(shè)計(jì)語(yǔ)言Apla(abstract programming language)進(jìn)行形式化實(shí)現(xiàn),形成了一個(gè)高抽象DPPSAA構(gòu)件庫(kù),以期自動(dòng)或半自動(dòng)裝配構(gòu)件產(chǎn)生特定領(lǐng)域序列比對(duì)算法,甚至于裝配出更為高效的新型序列比對(duì)算法.

    1 比對(duì)算法的建模過(guò)程

    1.1 領(lǐng)域分析

    面向特征的領(lǐng)域分析[20](feature oriented domain analysis, FODA)是由軟件工程研究所(Software Engineering Institute, SEI)于1990年首次提出的一種領(lǐng)域分析方法,主要包含上下文分析以及特征建模2個(gè)階段[21].其中上下文分析主要由界定待研究領(lǐng)域需求范圍以及領(lǐng)域的輸出與輸入構(gòu)成,該階段的成功實(shí)施能夠保證特征建模過(guò)程中被選取特征的有效性和可靠性.特征建模階段則包含了特征選取與建立、特征關(guān)系描述以及特征模型建立等過(guò)程,在該階段需要對(duì)被研究領(lǐng)域進(jìn)行分析,充分了解其功能性特征和非功能性特征,并找出特征之間的約束和依賴關(guān)系以及優(yōu)先級(jí)等附加信息,進(jìn)而獲得該領(lǐng)域的主次要特征,建立一種具有更高抽象層次的特征模型或者構(gòu)件框架.

    特征建模階段主要包含以下4種特征:強(qiáng)制特征(mandatory)、可變特征(optional)、OR特征、XOR特征.強(qiáng)制特征表示領(lǐng)域內(nèi)的所有實(shí)例都必須包含的特征,可變特征表示領(lǐng)域中實(shí)例的一個(gè)可選特征,XOR特征表示領(lǐng)域中實(shí)例有且只能選擇一組XOR特征中的一個(gè)特征,OR特征表示領(lǐng)域中實(shí)例至少包含了一組OR特征中的一個(gè)特征,特征表示如圖1所示.特征建模清晰地刻畫了特征模型構(gòu)建過(guò)程中所需的各類特征,是識(shí)別和捕捉差異性和可變性的關(guān)鍵技術(shù).

    Fig. 1 Feature graph圖1 特征圖

    圖1中強(qiáng)制特征被末端為實(shí)心圓的邊所指向,可變特征被末端為空心圓的邊所指向,XOR特征被一組用弧連接的邊所指向,OR特征被一組用實(shí)心弧連接的邊所指向.這4種特征是特征建模中的主要屬性,也是特征模型的重要組成部分,代表了領(lǐng)域中的通用和可變屬性,同時(shí)它們之間的約束以及依賴關(guān)系則需通過(guò)特征內(nèi)在的層次結(jié)構(gòu)關(guān)系、領(lǐng)域業(yè)務(wù)邏輯設(shè)計(jì)的約束關(guān)系以及運(yùn)行時(shí)依賴關(guān)系來(lái)表示.

    1.2 特征建模流程

    以FODA為基礎(chǔ),我們?cè)谄浜笤鎏砹祟I(lǐng)域?qū)崿F(xiàn)階段,即將建立的特征作為構(gòu)件進(jìn)行構(gòu)件交互模式設(shè)計(jì)和形式化實(shí)現(xiàn),建立抽象構(gòu)件庫(kù).需要注意的是,由于建立的構(gòu)件之間的交互性,程序人員使用C,C++或Java等低抽象層次高級(jí)編程語(yǔ)言進(jìn)行代碼編程時(shí),不僅增加了特征之間的關(guān)聯(lián)性與復(fù)雜性,而且難以讓使用者對(duì)整個(gè)構(gòu)件庫(kù)有具體和全面的了解.因此需要使用一種具有高抽象性的編程語(yǔ)言來(lái)實(shí)現(xiàn)這些構(gòu)件,以至不用在意算法構(gòu)件的具體實(shí)現(xiàn)細(xì)節(jié),而能夠清晰地了解這些算法構(gòu)件的功能以及它們之間的交互關(guān)系.例如在本文中主要利用Apla語(yǔ)言來(lái)實(shí)現(xiàn)DPPSAA領(lǐng)域構(gòu)件.

    基于以上介紹,對(duì)具體領(lǐng)域進(jìn)行分析時(shí),領(lǐng)域構(gòu)件庫(kù)建立流程圖如圖2所示:

    Fig. 2 Flow chart of domain analysis圖2 領(lǐng)域分析流程圖

    1.3 DPPSAA領(lǐng)域特征建模

    特征模型描述了領(lǐng)域內(nèi)實(shí)例的通用和可變特征以及它們之間的約束與依賴關(guān)系,是在特征建模過(guò)程中構(gòu)建的,一般由描述特征層次關(guān)系的特征圖和相關(guān)的文本描述組成.其中特征圖通常使用具有不同層次的樹(shù)狀結(jié)構(gòu)來(lái)表示,在該結(jié)構(gòu)中包含了1組節(jié)點(diǎn)、1組節(jié)點(diǎn)之間的定向邊以及兩邊之間的關(guān)系描述.其中1個(gè)節(jié)點(diǎn)代表一個(gè)特征,具有唯一的標(biāo)識(shí)符;節(jié)點(diǎn)之間的定向邊將特征連結(jié)成樹(shù)結(jié)構(gòu);兩邊之間的關(guān)系描述則代表特征之間的關(guān)系,是對(duì)特征節(jié)點(diǎn)的劃分.同時(shí)特征模型中的文本描述則表示了特征的語(yǔ)義描述、原理以及約束和默認(rèn)依賴規(guī)則等信息.

    因此,針對(duì)基于動(dòng)態(tài)規(guī)劃的雙序列比對(duì)算法領(lǐng)域,建模過(guò)程有3方面:

    1) 上下文分析.該算法領(lǐng)域的范圍被限制為一種在生物序列相似性分析領(lǐng)域中以動(dòng)態(tài)規(guī)劃為主要罰分策略、雙序列比對(duì)為主要比對(duì)方式的算法形式.

    2) 特征建模.我們利用特征建模方法[22]對(duì)該領(lǐng)域進(jìn)行特征建模,即從分析領(lǐng)域中的服務(wù)(service)、功能(function)以及行為(behavior)特點(diǎn)入手構(gòu)建特征模型.比對(duì)操作服務(wù)是該領(lǐng)域中的核心服務(wù),通過(guò)控制序列比對(duì)過(guò)程中的比對(duì)方式和各算法特征之間的執(zhí)行優(yōu)先級(jí)以及組合方式來(lái)實(shí)現(xiàn)使用者定義的序列比對(duì)算法.通過(guò)分析雙序列比對(duì)算法中的一些主要執(zhí)行步驟,可以將該比對(duì)操作服務(wù)進(jìn)一步劃分為檢查序列合法性、得分矩陣操作、動(dòng)態(tài)規(guī)劃算法方式選擇、記住得分來(lái)源、回溯和比對(duì)結(jié)果輸出等功能,同時(shí)得分矩陣初始化、動(dòng)態(tài)規(guī)劃方式選擇以及檢查序列合法性作為3個(gè)必選的功能.在上述分析的基礎(chǔ)上,輸出方式是比對(duì)結(jié)果輸出的顯著行為特點(diǎn),包括比對(duì)序列輸出和比對(duì)得分輸出兩種主要行為特點(diǎn),且二者屬于OR特征.動(dòng)態(tài)規(guī)劃方式可以分為全局動(dòng)態(tài)規(guī)劃方式、準(zhǔn)全局動(dòng)態(tài)規(guī)劃方式、局部動(dòng)態(tài)規(guī)劃方式3種,三者為XOR特征.我們根據(jù)上述分析對(duì)該領(lǐng)域建立了特征模型,如圖3所示:

    Fig. 3 DPPSAA feature model圖3 DPPSAA特征模型

    3) 領(lǐng)域?qū)崿F(xiàn).該過(guò)程針對(duì)已建立的特征模型進(jìn)行DPPSAA領(lǐng)域算法構(gòu)件交互設(shè)計(jì)并使用Apla語(yǔ)言形式化實(shí)現(xiàn).

    2 比對(duì)算法構(gòu)件的設(shè)計(jì)與實(shí)現(xiàn)

    2.1 DPPSAA領(lǐng)域算法構(gòu)件交互設(shè)計(jì)

    不同構(gòu)件通過(guò)交互實(shí)現(xiàn)完整的算法構(gòu)件庫(kù),而算法構(gòu)件的交互則需要由其包含的特征之間的約束以及依賴關(guān)系來(lái)體現(xiàn).因此針對(duì)1.3節(jié)建立的特征模型,我們對(duì)DPPSAA領(lǐng)域的算法構(gòu)件交互模型進(jìn)行了設(shè)計(jì).

    通過(guò)分析整個(gè)DPPSAA領(lǐng)域得知,算法主要包括3個(gè)主要變化過(guò)程特征:得分矩陣操作、動(dòng)態(tài)規(guī)劃算法方式以及比對(duì)結(jié)果輸出.因此,我們將特征模型中的這些特征以及檢查序列合法性作為主要構(gòu)件,其他特征以及相關(guān)數(shù)據(jù)結(jié)構(gòu)作為輔助構(gòu)件,并根據(jù)其優(yōu)先級(jí)建立了構(gòu)件間的交互模型,如圖4所示:

    Fig. 4 Algorithm components interaction model圖4 算法構(gòu)件交互模型

    圖4中實(shí)線所連接的節(jié)點(diǎn)表示為DPPSAA領(lǐng)域中所必須含有的基本構(gòu)件,即對(duì)應(yīng)于特征模型中的4個(gè)強(qiáng)制特征,實(shí)線箭頭所代表的方向表示4個(gè)構(gòu)件的執(zhí)行優(yōu)先級(jí)為由高到低;點(diǎn)連線箭頭表明在算法執(zhí)行過(guò)程中2個(gè)構(gòu)件之間的交互,如在圖4中,當(dāng)比對(duì)結(jié)果輸出構(gòu)件選擇得分輸出時(shí),則需要使用得分矩陣操作構(gòu)件中的獲取元素得分操作;虛線箭頭則代表在算法組裝過(guò)程中所需的數(shù)據(jù)、結(jié)構(gòu)以及關(guān)聯(lián)操作等,如在得分矩陣操作構(gòu)件中需要使用2個(gè)抽象數(shù)據(jù)類型(abstract data type, ADT):罰分模型ADT和得分矩陣元素ADT,且罰分模型ADT同時(shí)作用于動(dòng)態(tài)規(guī)劃算法方式構(gòu)件等.

    2.2 Apla形式化實(shí)現(xiàn)

    Apla語(yǔ)言可以直接使用抽象數(shù)據(jù)類型和抽象過(guò)程編寫程序,因此能夠更抽象地描述算法問(wèn)題,并易于對(duì)其進(jìn)行正確性驗(yàn)證,保證了程序正確性和可靠性.

    PAR方法和PAR平臺(tái)包含循環(huán)不變式的新定義和新的開(kāi)發(fā)策略、統(tǒng)一的算法程序設(shè)計(jì)方法、新的算法表示方法、自定義算法設(shè)計(jì)語(yǔ)言和抽象程序設(shè)計(jì)語(yǔ)言等關(guān)鍵技術(shù).它集成涵蓋了泛型、生成式、模型驅(qū)動(dòng)和構(gòu)件組裝等新型軟件開(kāi)發(fā)技術(shù),其系列程序自動(dòng)生成系統(tǒng)可將一個(gè)正確的Apla程序自動(dòng)轉(zhuǎn)換成C++,Java,Delphi等高級(jí)語(yǔ)言程序.因此,本文利用該語(yǔ)言形式化實(shí)現(xiàn)并建立了DPPSAA領(lǐng)域算法構(gòu)件庫(kù),不僅可高抽象表示算法程序的功能特性與非功能特性,而且能夠直觀地展示各算法構(gòu)件之間的約束以及依賴關(guān)系.這樣既減少了各構(gòu)件之間的干擾,降低了算法程序的復(fù)雜性,提高了算法構(gòu)件安全性,又消除了傳統(tǒng)算法設(shè)計(jì)方式中算法與數(shù)據(jù)難以分離的問(wèn)題,提高了構(gòu)件裝配產(chǎn)生算法的可復(fù)用性和可維護(hù)性,同時(shí)使用該算法構(gòu)件庫(kù)時(shí),我們只需關(guān)注算法功能即可,而不用在意具體構(gòu)件實(shí)現(xiàn)細(xì)節(jié),從而提高了算法設(shè)計(jì)效率.

    下面展示了對(duì)DPPSAA領(lǐng)域構(gòu)件的Apla程序?qū)崿F(xiàn).

    1) 罰分模型以及得分矩陣元素結(jié)構(gòu)設(shè)計(jì)

    首先我們將罰分模型設(shè)置為一個(gè)ADT,這里我們?yōu)榻忉尫奖?,只使用固定空位罰分策略,與擴(kuò)展罰分時(shí)操作類似.其中罰分模型的ADT定義為

    define ADTpenaltyMatrix(sometypeelem);

    match:integer;

    mismatch:integer;

    space:integer;

    enddef.

    其中sometype為Apla語(yǔ)言中的關(guān)鍵字,用來(lái)定義類型變量.其中的match,mismatch,space分別表示罰分模型中的匹配罰分值、錯(cuò)配罰分值以及空位罰分值.

    在得分矩陣中,由于序列比對(duì)結(jié)果輸出時(shí)需要進(jìn)行回溯操作,因此我們將得分矩陣中的元素定義為一個(gè)ADT,命名為H_Struct,該ADT中包含了整型變量value和boolean型的數(shù)組dp_direct,前者表示2個(gè)字符比對(duì)得分值,后者表示該得分值的來(lái)源(其中true代表對(duì)應(yīng)得分來(lái)源為真,false代表為假).并且數(shù)組內(nèi)的元素含義如圖5所示,4個(gè)方框分別代表得分矩陣中的4個(gè)元素,3個(gè)箭頭分別表示(i,j)中的得分來(lái)源為上、左和對(duì)角元素,分別用數(shù)組dp_direct下標(biāo)0,1,2對(duì)應(yīng)的數(shù)組元素來(lái)表示.

    Fig. 5 Score source of score matrix element圖5 得分矩陣元素的得分來(lái)源

    該ADT定義為

    define ADTH_Struct(sometypeelem);

    value:integer;

    dp_direct:array[0:3,boolean];

    enddef.

    2) 得分矩陣操作

    該構(gòu)件被定義為一個(gè)ADT類型,因?yàn)樵诓煌腄PPSAA中得分矩陣初始化方式不同,因此在該ADT內(nèi)部包含了一個(gè)泛型子程序Memory_Score_of_Matrix,并將Init_score_matrix方法作為它的泛型參數(shù),使得泛型子程序可以支持實(shí)例化具有不同得分矩陣初始化方式的比對(duì)算法,即當(dāng)使用不同的方法參數(shù)實(shí)例化Init_score_matrix時(shí),將返回不同的得分矩陣.同時(shí)在該ADT中還包含了一些常用的得分矩陣操作,如求矩陣最大得分、矩陣元素取值操作和賦值操作等.

    define ADTscore_matrix_mani(sometypeelem);

    procedureapply_memory(length_s:integer,length_t:integer);

    procedureMemory_Score_of_Matrix(procInit_score_matrix());

    functionMax_score_of_Matrix:integer;

    functionthe_Last_element_score:integer;

    functionget_value(i:integer;j:integer):integer;

    procedureset_value(i:integer;j:integer;score:integer);

    enddef.

    其中該ADT類型名為score_matrix_mani,且?guī)в幸粋€(gè)類型參數(shù)elem;apply_memory泛型子程序的作用是根據(jù)整型變量length_s和length_t值為score_matrix_mani動(dòng)態(tài)分配內(nèi)存空間;函數(shù)Max_score_of_Matrix和the_Last_element_score分別表示獲取score_matrix_mani中得分最大值以及最后一個(gè)元素的得分值;get_value以及set_value分別為獲取和設(shè)置score_matrix_mani中元素得分值,(i,j)(0≤i≤length_s,0≤j≤length_t表示對(duì)應(yīng)元素的下標(biāo),length_s和length_t分別表示兩比對(duì)序列的長(zhǎng)度.

    3) 動(dòng)態(tài)規(guī)劃算法方式選擇

    該構(gòu)件也被定義為泛型ADT,可以支持不同的序列比對(duì)算法所使用的動(dòng)態(tài)規(guī)劃得分模式,得分模式的變化主要依靠泛型子程序dp_align_score來(lái)實(shí)現(xiàn),同時(shí)該ADT類型中還包括求2字符的最大比對(duì)得分操作max_score_of_char,函數(shù)中的3個(gè)參數(shù)分別表示不同來(lái)源的罰分值.

    define ADTdp_mode(sometypeelemMatrix);

    functionmax_score_of_char(up_score:integer;left_score:integer;diag_score:integer):integer;

    proceduredp_align_scores(s:String;t:String;sM:penaltyMatrix;procset_and_remember(sometypeelemMatrix;length_s:integer;length_t:integer));

    enddef.

    這里elemMatrix是一個(gè)類型參數(shù);函數(shù)set_and_remember是泛型子程序dp_align_score的泛型參數(shù),該函數(shù)的功能為記錄得分矩陣中各元素的得分值以及得分來(lái)源,可以被用于各種動(dòng)態(tài)規(guī)劃罰分模型的實(shí)例化.

    4) 檢查序列合法性

    檢查序列是否屬于字符集{A,T,C,G}(默認(rèn)為DNA序列,如果為其他序列,加入對(duì)應(yīng)表示字符即可,如果為RNA序列,則將G換為U即可).

    procedurecheck(s,t:String).

    其中s和t都為字符串類型.

    5) 記住得分來(lái)源

    該構(gòu)件表示記住(i,j)處得分的來(lái)源,即將(i,j)處中對(duì)應(yīng)的方向標(biāo)志賦值為true.其為回溯階段輸出序列比對(duì)結(jié)果提供支持.

    procedurermb_source(i:integer;j:integer).

    6) 回溯

    該構(gòu)件的Apla語(yǔ)言定義為

    proceduretraceback(procprint_align();procprint_extrude()=NULL).

    在回溯過(guò)程中,一般由短序列比對(duì)區(qū)間回溯和兩端突出回溯組成,其中短序列比對(duì)區(qū)間回溯表示從2序列匹配的第1個(gè)序列字符開(kāi)始,到最后匹配的字符結(jié)束位置之間的字符區(qū)間序列輸出,兩端突出回溯則表示從頭開(kāi)始到第1個(gè)匹配字符的前一個(gè)字符區(qū)間序列輸出或者最后一個(gè)匹配字符的下一個(gè)字符到最后所有字符序列對(duì)應(yīng)輸出.在trackback泛型子程序中分別由print_align和print_extrude表示,并且在默認(rèn)配置下print_extrude為空,即為全局比對(duì).

    7) 比對(duì)結(jié)果輸出

    這里將該構(gòu)件定義成一個(gè)泛型子程序.

    procedureop_mode(funcfinally_score():integer;proctraceback(procprint_align();procprint_extrude()=NULL)).

    在此泛型子程序定義中,函數(shù)finally_score功能為輸出最終比對(duì)得分.

    8) 比對(duì)操作

    為了能夠?qū)崿F(xiàn)現(xiàn)有的序列比對(duì)算法,需要對(duì)上述算法構(gòu)件進(jìn)行人工裝配,因此將比對(duì)操作服務(wù)定義為一個(gè)泛型子程序,并將各功能作為其參數(shù),使之能夠支持裝配產(chǎn)生DPPSAA.

    procedurealign_manipulation(op_mode(funcfinally_score():integer;proctraceback(procprint_align();procprint_extrude()=NULL));ADTdp_mode(eM:elemMatrix);sometypeelemMatrix;result:boolean;eM:elemMatrix;s:String;t:String)).

    該算法構(gòu)件align_manipulation主要包含4個(gè)參數(shù):比對(duì)輸出構(gòu)件op_mode、回溯構(gòu)件traceback、自定義泛型ADTdp_mode以及待比對(duì)序列s和t.其中elemMatrix表示為一個(gè)類型參數(shù),并且后面4個(gè)變量參數(shù)為在主程序中實(shí)例化參數(shù)所需代入的.這樣我們就可以通過(guò)手工裝配該子程序,以達(dá)到實(shí)現(xiàn)相應(yīng)比對(duì)算法的目的.

    3 NW算法的裝配實(shí)現(xiàn)

    通過(guò)第2節(jié)的介紹,可以較清晰地了解到整個(gè)DPPSAA領(lǐng)域構(gòu)件庫(kù)的建立過(guò)程,下面我們利用上述構(gòu)件庫(kù)來(lái)裝配實(shí)現(xiàn)基于全局的雙序列比對(duì)算法NW,程序?yàn)?/p>

    program para;

    const

    procedureInit_score_matrixNW(sometype

    elemMatrix);

    var

    i,j:integer;H:elemMatrix;

    begin

    foreach(i,j:0≤i,j

    length_t:…;);

    end;

    procedureset_and_remember(length_s:

    integer;length_t:integer;sometype

    elemMatrix);

    var

    i,j:integer;

    begin

    foreach(i,j:0≤i,j

    length_t:…;);

    end;

    ADTpM:newpenaltyMatrix();

    ADTstruct:newH_struct();

    ADTmatrix:newscore_matrix_mani(struct);

    ADTdp_NW:newdp_mode(matrix);

    var

    dp_g:dp_NW;

    begin

    dp_g.dp_align_score(matrix,set_and_

    remember(sometypeelemMatrix;

    length_s:integer;length_t:integer));

    end;

    procedurealign_manipulation(sometype

    elemMatrix;ADTdp_mode(eM:elemMatrix);

    op_mode(funcfinally_score():integer;

    proctraceback(procprint_align();

    procprint_extrude()=NULL);

    result:boolean;eM:elemMatrix;

    s:String;t:String);

    begin

    if(result)

    write(“The alignment score is:”,

    finally_score());

    else

    traceback(print_align,print_extrude);

    end;

    procedureNW:newalign_manipulation(score_matrix_mani,dp_g,op_mode(print_align));

    begin

    check(s,t);

    matrix.apply_memory(s.length(),

    t.length());

    matrix.Memory_Score_of_Matrix(Init_

    score_matrixNW(matrix));

    NW(false,matrix,s,t);

    end.

    在上面程序中,過(guò)程①為得分矩陣初始化的不同實(shí)例化方式;代碼塊②和④由于得分矩陣初始化過(guò)程占用篇幅過(guò)大,因此用…表示;過(guò)程③則為記錄比對(duì)得分值以及得分來(lái)源的實(shí)例化;⑤則表示NW算法的動(dòng)態(tài)規(guī)劃算法的實(shí)例化;泛型子程序⑥則表示在步驟⑦實(shí)例化NW算法對(duì)象時(shí)內(nèi)部所要執(zhí)行的算法構(gòu)件間的關(guān)聯(lián)操作;⑧以下的代碼塊為主程序.

    4 實(shí)驗(yàn)及其結(jié)果分析

    目前,由于Apla語(yǔ)言無(wú)法在PAR平臺(tái)上直接運(yùn)行,本節(jié)利用PAR平臺(tái)C++程序生成系統(tǒng),將組裝NW算法過(guò)程中所需的Apla算法構(gòu)件代碼轉(zhuǎn)換為相對(duì)應(yīng)的C++代碼.

    Apla代碼中只包含數(shù)據(jù)成員的ADT算法構(gòu)件被轉(zhuǎn)換為C++中的結(jié)構(gòu)體,如penaltyMatrix以及H_Struct等,其結(jié)果為

    structpenaltyMatrix

    {

    intmatch;

    intmismatch;

    intspace;

    };

    structH_Struct

    {

    intvalue;

    booldp_direct[3];

    }.

    含有數(shù)據(jù)成員和成員函數(shù)的ADT則被轉(zhuǎn)換為C++函數(shù)中的類,如score_matrix_mani,dp_mode等,其中大括號(hào)內(nèi)的省略號(hào)表示函數(shù)體,且Sequence類將2個(gè)待比對(duì)序列作為其數(shù)據(jù)成員.其轉(zhuǎn)換的部分結(jié)果如圖6所示.

    同時(shí),Apla代碼中的泛型子程序和泛型函數(shù)等被轉(zhuǎn)換為C++中獨(dú)立的類成員函數(shù),降低構(gòu)件間的耦合性.其中,主調(diào)函數(shù)與主調(diào)函數(shù)泛型參數(shù)之間的關(guān)系被轉(zhuǎn)換為C++中的函數(shù)指針,即將泛型參數(shù)轉(zhuǎn)換為主調(diào)函數(shù)的指針函數(shù)參數(shù),從而具有與Apla程序同樣的多態(tài)性特征,如traceback泛型子程序的C++轉(zhuǎn)換結(jié)果如圖7所示.

    可將Apla算法構(gòu)件代碼轉(zhuǎn)換成可執(zhí)行的C++代碼,最后利用轉(zhuǎn)換后的算法構(gòu)件進(jìn)行手工裝配NW算法(即將服務(wù)align_manipulation轉(zhuǎn)換為主函數(shù))如圖8所示,并輸出代碼結(jié)果如圖9所示.

    Fig. 6 Result of ADT transformation圖6 ADT轉(zhuǎn)換結(jié)果

    Fig. 7 Result of generic program transformation圖7 泛型子程序轉(zhuǎn)換結(jié)果

    Fig. 8 C++ assembly process of NW圖8 NW的C++裝配過(guò)程

    Fig. 9 NW alignment result圖9 NW比對(duì)結(jié)果

    在PAR平臺(tái)的支撐下,我們以半自動(dòng)的方式將上述Apla語(yǔ)言編寫的DPPSAA算法構(gòu)件程序轉(zhuǎn)換成C++代碼,并裝配形成NW算法.經(jīng)實(shí)際運(yùn)行NW算法檢測(cè),算法的運(yùn)行結(jié)果與原本NW算法結(jié)果一致.使用DPPSAA領(lǐng)域構(gòu)件裝配形成的具體雙序列比對(duì)算法,不但提高了裝配算法程序的可靠性、執(zhí)行效率以及可維護(hù)性,而且可以根據(jù)客戶需求進(jìn)行手工裝配形成指定算法,增強(qiáng)了DPPSAA算法構(gòu)件的通用性.

    在下一步研究工作中,為實(shí)現(xiàn)自動(dòng)化裝配DPPSAA領(lǐng)域算法,我們將使用產(chǎn)生式編程的相關(guān)方法學(xué)來(lái)開(kāi)展工作,為進(jìn)一步裝配生成奠定了基礎(chǔ),可望裝配形成一種相較于現(xiàn)有算法具有更高執(zhí)行效率和更低內(nèi)存消耗的新型雙序列比對(duì)算法.

    5 相關(guān)研究比較

    針對(duì)序列比對(duì)算法研究的不同方面,國(guó)內(nèi)外學(xué)者通過(guò)使用并融合相關(guān)方法學(xué)技術(shù)開(kāi)展了較多研究工作,可分為3個(gè)方面:

    1) 基于代數(shù)方法的研究.比勒費(fèi)爾德大學(xué)的Giegerich等人[23-25]提出了一種面向系統(tǒng)族的基于代數(shù)結(jié)構(gòu)的新型動(dòng)態(tài)規(guī)劃構(gòu)造算法,通過(guò)利用代數(shù)數(shù)據(jù)類型概念將動(dòng)態(tài)規(guī)劃算法過(guò)程形式化定義為2個(gè)階段:識(shí)別階段和評(píng)價(jià)階段.在具體應(yīng)用過(guò)程中,算法通過(guò)迭代進(jìn)行這2個(gè)階段,可為序列比對(duì)算法領(lǐng)域內(nèi)待生成算法提供一種更具一般性的生成范式,簡(jiǎn)化了算法開(kāi)發(fā)過(guò)程,提高了生成算法的正確性和可靠性.

    2) 基于有限狀態(tài)機(jī)的研究.賓夕法尼亞大學(xué)的Searls等人[26]提出了一種基于有限狀態(tài)機(jī)和具有自適應(yīng)加權(quán)的序列比對(duì)算法生成方法.該算法利用有限狀態(tài)機(jī)模型形式化表示序列比對(duì)過(guò)程中的罰分、比對(duì)以及動(dòng)態(tài)規(guī)劃過(guò)程,并對(duì)比對(duì)過(guò)程中的不同堿基字符比對(duì)結(jié)果(匹配、錯(cuò)配以及空位)進(jìn)行自適應(yīng)加權(quán),能夠快速地生成新型序列比對(duì)算法.算法能夠支持可視化編程.

    3) 基于算法優(yōu)化的研究.算法優(yōu)化是指為了提高已有算法處理問(wèn)題能力而進(jìn)行研究的過(guò)程.文獻(xiàn)[27]采用經(jīng)典的脈動(dòng)陣列結(jié)構(gòu)的并行加速器體系結(jié)構(gòu)來(lái)提高序列加載、比對(duì)和結(jié)果收集效率的數(shù)據(jù)通路,并且利用Hash索引優(yōu)化技術(shù)過(guò)濾比對(duì)過(guò)程中的非相似行序列,增強(qiáng)了序列比對(duì)算法的性能.為了提高序列比對(duì)算法的準(zhǔn)確度,文獻(xiàn)[28-29]等利用改進(jìn)的隱馬爾可夫模型對(duì)序列比對(duì)算法進(jìn)行優(yōu)化.

    6 結(jié)束語(yǔ)

    序列比對(duì)作為生物序列分析中的關(guān)鍵問(wèn)題,其算法及應(yīng)用研究受到廣泛關(guān)注,然而,尚未有工作將其視為一個(gè)專門領(lǐng)域從高抽象層次開(kāi)展研究,從而提高算法可靠性和開(kāi)發(fā)效率、降低算法次優(yōu)解及誤差等問(wèn)題出現(xiàn)的概率.我們采用特征建模,分析和提取出基于動(dòng)態(tài)規(guī)劃雙序列比對(duì)算法領(lǐng)域的通用以及可變特征,并利用高抽象語(yǔ)言進(jìn)行形式化實(shí)現(xiàn),以期能夠以自動(dòng)或者半自動(dòng)方式進(jìn)行形式化組裝生成特定問(wèn)題的求解算法,從而降低人工選擇算法進(jìn)行序列相似性分析的錯(cuò)誤發(fā)生率以及時(shí)間開(kāi)銷,提高算法執(zhí)行效率,甚至于裝配出一種更為高效的基于動(dòng)態(tài)規(guī)劃的新型序列比對(duì)算法.

    本文首先提出了一種領(lǐng)域建模過(guò)程,包括上下文分析、特征建模以及領(lǐng)域?qū)崿F(xiàn)3個(gè)主要階段;其次通過(guò)分析DPPSAA領(lǐng)域的一般執(zhí)行過(guò)程,抽取出算法的通用以及可變特征,并建立領(lǐng)域特征模型;然后對(duì)建立的構(gòu)件特征模型進(jìn)行構(gòu)件交互設(shè)計(jì),同時(shí)利用Apla語(yǔ)言形式化實(shí)現(xiàn)這些算法構(gòu)件,并通過(guò)手工裝配生成了NW算法實(shí)例;最后利用PAR平臺(tái)C++程序生成系統(tǒng)將Apla程序轉(zhuǎn)換為C++可運(yùn)行程序,轉(zhuǎn)換結(jié)果以及算法運(yùn)行結(jié)果展示了其具有一定的實(shí)用性.由于Apla的高抽象性,建立的一系列泛型構(gòu)件,如dp_mode,result_op等,保證了構(gòu)件裝配后的算法多樣性,也能夠較好地展示出算法特征之間的聯(lián)系.

    我們對(duì)整個(gè)DPPSAA領(lǐng)域進(jìn)行了精確分析,對(duì)其各功能特性與非功能特性有充分的了解,同時(shí)在算法設(shè)計(jì)過(guò)程中建立了特征模型以及構(gòu)件交互設(shè)計(jì),從而有利于算法構(gòu)件庫(kù)的學(xué)習(xí)和使用;另外,使用高抽象語(yǔ)言Apla形式化實(shí)現(xiàn)算法構(gòu)件,不僅易于對(duì)Apla算法程序進(jìn)行正確性驗(yàn)證,保證算法構(gòu)件庫(kù)的可靠性,而且在使用過(guò)程中可利用泛型編程機(jī)制快速發(fā)現(xiàn)和定位算法中的錯(cuò)誤,提高算法構(gòu)件庫(kù)的魯棒性.

    本文研究DPPSAA領(lǐng)域的主要方法學(xué)思想和成果,不僅適用于DNA序列比對(duì)算法,理論上對(duì)于一些其他的生物序列分析算法領(lǐng)域也具有參考價(jià)值和實(shí)用價(jià)值,例如基因組裝過(guò)程中的基于de bruijn graph結(jié)構(gòu)的組裝算法[30-32].下一步的研究尚需擴(kuò)充本文結(jié)果在生物序列分析算法領(lǐng)域的應(yīng)用范圍,同時(shí)基于PAR平臺(tái)實(shí)現(xiàn)算法構(gòu)件庫(kù)的自動(dòng)或半自動(dòng)裝配.

    猜你喜歡
    構(gòu)件建模領(lǐng)域
    聯(lián)想等效,拓展建模——以“帶電小球在等效場(chǎng)中做圓周運(yùn)動(dòng)”為例
    領(lǐng)域·對(duì)峙
    青年生活(2019年23期)2019-09-10 12:55:43
    基于PSS/E的風(fēng)電場(chǎng)建模與動(dòng)態(tài)分析
    電子制作(2018年17期)2018-09-28 01:56:44
    不對(duì)稱半橋變換器的建模與仿真
    建筑構(gòu)件
    建筑構(gòu)件
    建筑構(gòu)件
    建筑構(gòu)件
    新常態(tài)下推動(dòng)多層次多領(lǐng)域依法治理初探
    三元組輻射場(chǎng)的建模與仿真
    给我免费播放毛片高清在线观看| 欧美乱色亚洲激情| 亚洲专区中文字幕在线| 国产精品99久久久久久久久| 精品一区二区三区av网在线观看| www.熟女人妻精品国产| 成年免费大片在线观看| 久久久久性生活片| 非洲黑人性xxxx精品又粗又长| 美女高潮的动态| 免费看日本二区| 人妻久久中文字幕网| 色av中文字幕| 色尼玛亚洲综合影院| 欧美国产日韩亚洲一区| 亚洲在线自拍视频| 亚洲国产日韩欧美精品在线观看 | 国产高清三级在线| 亚洲av中文字字幕乱码综合| 欧美乱色亚洲激情| 亚洲av成人不卡在线观看播放网| 中文字幕熟女人妻在线| 国产69精品久久久久777片 | 久久久久九九精品影院| 一级毛片女人18水好多| 大型黄色视频在线免费观看| av在线天堂中文字幕| 在线观看免费午夜福利视频| 免费一级毛片在线播放高清视频| 日韩欧美国产一区二区入口| 亚洲性夜色夜夜综合| 热99re8久久精品国产| 看免费av毛片| 男人舔奶头视频| 国产一区二区在线av高清观看| 青草久久国产| 免费一级毛片在线播放高清视频| 亚洲 欧美 日韩 在线 免费| 亚洲专区中文字幕在线| 亚洲激情在线av| 国产精品av久久久久免费| 一个人观看的视频www高清免费观看 | 熟妇人妻久久中文字幕3abv| 久久精品91蜜桃| 国产一区在线观看成人免费| 亚洲av日韩精品久久久久久密| 嫩草影院入口| 亚洲av免费在线观看| 国产黄色小视频在线观看| 免费看十八禁软件| 成人鲁丝片一二三区免费| 久久久久久久久免费视频了| 亚洲国产精品合色在线| 99国产极品粉嫩在线观看| 日韩欧美一区二区三区在线观看| 成在线人永久免费视频| 禁无遮挡网站| 婷婷丁香在线五月| 色综合婷婷激情| 久久国产精品影院| 欧美又色又爽又黄视频| 亚洲av成人不卡在线观看播放网| 日日摸夜夜添夜夜添小说| 精品久久久久久成人av| 亚洲欧美日韩高清专用| 国产单亲对白刺激| 亚洲第一电影网av| 级片在线观看| 国产亚洲精品一区二区www| 在线播放国产精品三级| 欧美一级a爱片免费观看看| 午夜两性在线视频| 日韩 欧美 亚洲 中文字幕| 人妻夜夜爽99麻豆av| 国产伦精品一区二区三区视频9 | 天堂影院成人在线观看| 国产乱人视频| 欧美色欧美亚洲另类二区| 天堂影院成人在线观看| 亚洲五月天丁香| 一进一出抽搐动态| 午夜久久久久精精品| 又黄又爽又免费观看的视频| 99久久久亚洲精品蜜臀av| 欧美日韩综合久久久久久 | 精品不卡国产一区二区三区| 亚洲一区二区三区色噜噜| 亚洲国产精品999在线| 久久精品影院6| 岛国在线免费视频观看| 亚洲欧美激情综合另类| 亚洲第一电影网av| 欧美高清成人免费视频www| 日本黄大片高清| 欧美一区二区精品小视频在线| 波多野结衣高清作品| 欧美黑人巨大hd| 又大又爽又粗| 三级毛片av免费| 午夜成年电影在线免费观看| 亚洲在线观看片| 老熟妇乱子伦视频在线观看| 欧美日韩黄片免| 久久亚洲精品不卡| 国产高清视频在线观看网站| 99国产精品一区二区蜜桃av| 99久久国产精品久久久| 天堂影院成人在线观看| 亚洲国产日韩欧美精品在线观看 | 999久久久国产精品视频| 精品国产三级普通话版| 舔av片在线| 老鸭窝网址在线观看| aaaaa片日本免费| 中文字幕最新亚洲高清| 日韩欧美在线乱码| 黄色日韩在线| 人人妻人人澡欧美一区二区| 国产精品免费一区二区三区在线| 国产一区二区三区在线臀色熟女| 后天国语完整版免费观看| 国产激情久久老熟女| 中文字幕高清在线视频| 九九在线视频观看精品| 97人妻精品一区二区三区麻豆| 日韩三级视频一区二区三区| 国模一区二区三区四区视频 | 国产精品影院久久| 国产主播在线观看一区二区| 亚洲精华国产精华精| 国产又黄又爽又无遮挡在线| 男人舔奶头视频| 在线观看美女被高潮喷水网站 | 亚洲欧美日韩卡通动漫| 人妻丰满熟妇av一区二区三区| 午夜福利高清视频| 日韩av在线大香蕉| 欧美最黄视频在线播放免费| www日本黄色视频网| a级毛片在线看网站| 欧美一级a爱片免费观看看| 97碰自拍视频| 亚洲精华国产精华精| 久久久精品大字幕| 免费看a级黄色片| 国产成人精品无人区| 天堂影院成人在线观看| 国产男靠女视频免费网站| 最近最新中文字幕大全免费视频| 精品国产乱子伦一区二区三区| 少妇熟女aⅴ在线视频| 天天躁狠狠躁夜夜躁狠狠躁| 99精品欧美一区二区三区四区| 久久亚洲真实| 久久久久性生活片| 亚洲午夜理论影院| 一区二区三区高清视频在线| 97超视频在线观看视频| 国产一区二区三区在线臀色熟女| 亚洲国产色片| 99热这里只有精品一区 | 人人妻人人澡欧美一区二区| 一二三四社区在线视频社区8| 色精品久久人妻99蜜桃| 精品日产1卡2卡| 成人永久免费在线观看视频| 老熟妇仑乱视频hdxx| 在线永久观看黄色视频| 噜噜噜噜噜久久久久久91| 亚洲欧美日韩高清专用| 高清在线国产一区| 亚洲成人久久性| 亚洲九九香蕉| 啦啦啦观看免费观看视频高清| 国产精品影院久久| 美女cb高潮喷水在线观看 | 日本a在线网址| www.熟女人妻精品国产| 国产精品 国内视频| 亚洲欧洲精品一区二区精品久久久| 欧美激情久久久久久爽电影| 日韩成人在线观看一区二区三区| 欧美性猛交黑人性爽| 禁无遮挡网站| 国产久久久一区二区三区| 少妇的逼水好多| 国产一级毛片七仙女欲春2| 久久精品国产亚洲av香蕉五月| 午夜亚洲福利在线播放| 狂野欧美激情性xxxx| 一个人看视频在线观看www免费 | 女警被强在线播放| 蜜桃久久精品国产亚洲av| 小蜜桃在线观看免费完整版高清| 嫩草影视91久久| 免费观看人在逋| 欧美极品一区二区三区四区| 亚洲专区国产一区二区| 99久久精品热视频| 男插女下体视频免费在线播放| 日韩大尺度精品在线看网址| 12—13女人毛片做爰片一| 麻豆国产97在线/欧美| 午夜精品久久久久久毛片777| 亚洲欧洲精品一区二区精品久久久| 欧美三级亚洲精品| 一二三四社区在线视频社区8| 99在线视频只有这里精品首页| 国产又黄又爽又无遮挡在线| 精品国产超薄肉色丝袜足j| 国产91精品成人一区二区三区| 99riav亚洲国产免费| 亚洲在线观看片| 97碰自拍视频| 午夜福利免费观看在线| 国产成人aa在线观看| 淫妇啪啪啪对白视频| 女同久久另类99精品国产91| 精品国产三级普通话版| 免费人成视频x8x8入口观看| 亚洲男人的天堂狠狠| 亚洲自偷自拍图片 自拍| 少妇丰满av| 中亚洲国语对白在线视频| 国产精品一区二区免费欧美| 亚洲精品在线美女| 国产私拍福利视频在线观看| 久久精品91无色码中文字幕| 两个人看的免费小视频| 午夜福利在线观看免费完整高清在 | 麻豆成人av在线观看| 香蕉av资源在线| 男女视频在线观看网站免费| 日韩欧美在线二视频| 欧美日韩精品网址| 国产一区二区在线观看日韩 | av欧美777| 欧美激情在线99| 精品99又大又爽又粗少妇毛片 | 日韩欧美免费精品| 国产aⅴ精品一区二区三区波| 亚洲精品在线观看二区| 精品一区二区三区视频在线 | 久久精品aⅴ一区二区三区四区| 精品熟女少妇八av免费久了| 国产精品1区2区在线观看.| 九色成人免费人妻av| 国产成人啪精品午夜网站| 两个人的视频大全免费| 香蕉丝袜av| av女优亚洲男人天堂 | 美女午夜性视频免费| 午夜影院日韩av| 波多野结衣高清作品| 禁无遮挡网站| 国产在线精品亚洲第一网站| 成人特级黄色片久久久久久久| 宅男免费午夜| 两性夫妻黄色片| 精品国产乱子伦一区二区三区| 99视频精品全部免费 在线 | 观看美女的网站| 91麻豆精品激情在线观看国产| 国产精品久久视频播放| 老司机福利观看| 欧美日韩国产亚洲二区| 99国产极品粉嫩在线观看| 国产av不卡久久| 欧美xxxx黑人xx丫x性爽| 国产人伦9x9x在线观看| 12—13女人毛片做爰片一| 舔av片在线| 成人亚洲精品av一区二区| 757午夜福利合集在线观看| 亚洲激情在线av| 高清毛片免费观看视频网站| 男女那种视频在线观看| 日韩精品青青久久久久久| 亚洲av免费在线观看| av国产免费在线观看| 亚洲狠狠婷婷综合久久图片| 欧美日韩福利视频一区二区| 国产免费男女视频| 久久这里只有精品中国| 亚洲国产欧美一区二区综合| 国产 一区 欧美 日韩| 亚洲人成网站在线播放欧美日韩| 久久久久久久久久黄片| 免费看十八禁软件| 伦理电影免费视频| 熟女电影av网| 美女黄网站色视频| bbb黄色大片| 又黄又粗又硬又大视频| 国产av不卡久久| 欧美大码av| 精品国产三级普通话版| 欧美日韩亚洲国产一区二区在线观看| 男人舔奶头视频| 最近在线观看免费完整版| 成人三级黄色视频| 俄罗斯特黄特色一大片| 99久国产av精品| 黄色成人免费大全| 国产精品一区二区三区四区久久| 女人被狂操c到高潮| 欧美日本视频| 午夜福利欧美成人| 99在线视频只有这里精品首页| 日韩欧美在线乱码| 亚洲激情在线av| 国产淫片久久久久久久久 | 精品人妻1区二区| 淫秽高清视频在线观看| 午夜成年电影在线免费观看| 日韩免费av在线播放| 叶爱在线成人免费视频播放| 九色国产91popny在线| 每晚都被弄得嗷嗷叫到高潮| 亚洲av熟女| 天堂影院成人在线观看| 日本五十路高清| 亚洲国产精品成人综合色| 天堂影院成人在线观看| 一夜夜www| 夜夜爽天天搞| 亚洲一区高清亚洲精品| 国产激情欧美一区二区| 亚洲欧美日韩东京热| 三级国产精品欧美在线观看 | 一级毛片女人18水好多| 色在线成人网| 日韩高清综合在线| 精品久久久久久久人妻蜜臀av| 精华霜和精华液先用哪个| 午夜激情欧美在线| 麻豆av在线久日| 国产精品亚洲美女久久久| 欧美日韩中文字幕国产精品一区二区三区| 国产欧美日韩精品一区二区| 国产亚洲欧美在线一区二区| 一级毛片精品| 视频区欧美日本亚洲| 国产探花在线观看一区二区| 亚洲精品粉嫩美女一区| 窝窝影院91人妻| 亚洲18禁久久av| 两个人看的免费小视频| 国产精品一区二区三区四区久久| 看免费av毛片| 国产午夜精品久久久久久| 久久久精品大字幕| 床上黄色一级片| 免费在线观看日本一区| 九色成人免费人妻av| 午夜精品一区二区三区免费看| 99热只有精品国产| 国产成人av激情在线播放| 久久中文看片网| 制服人妻中文乱码| 丰满的人妻完整版| 亚洲天堂国产精品一区在线| 欧美黄色片欧美黄色片| 中文字幕最新亚洲高清| 国产欧美日韩一区二区三| 亚洲第一电影网av| 精品乱码久久久久久99久播| 91老司机精品| 哪里可以看免费的av片| 可以在线观看毛片的网站| 久久精品影院6| 精品国内亚洲2022精品成人| 琪琪午夜伦伦电影理论片6080| 免费在线观看成人毛片| 又粗又爽又猛毛片免费看| 国产美女午夜福利| 亚洲真实伦在线观看| 亚洲欧美激情综合另类| 精品久久久久久,| 桃色一区二区三区在线观看| 亚洲乱码一区二区免费版| x7x7x7水蜜桃| 在线视频色国产色| 一卡2卡三卡四卡精品乱码亚洲| 国产不卡一卡二| 性欧美人与动物交配| 老汉色∧v一级毛片| 我要搜黄色片| 怎么达到女性高潮| 国产精品香港三级国产av潘金莲| 国产精品女同一区二区软件 | 一区二区三区国产精品乱码| 少妇丰满av| 一本一本综合久久| 亚洲欧美日韩东京热| 97超视频在线观看视频| 首页视频小说图片口味搜索| 女同久久另类99精品国产91| 麻豆国产97在线/欧美| 99热这里只有精品一区 | 成人特级av手机在线观看| 国产av一区在线观看免费| 91av网一区二区| 91麻豆av在线| 在线永久观看黄色视频| 夜夜躁狠狠躁天天躁| 国产精品一区二区三区四区久久| 窝窝影院91人妻| 欧美性猛交黑人性爽| 韩国av一区二区三区四区| 免费观看人在逋| 成人高潮视频无遮挡免费网站| 91在线精品国自产拍蜜月 | 五月伊人婷婷丁香| 99热这里只有精品一区 | 亚洲国产欧美人成| 欧美一级毛片孕妇| 国内精品美女久久久久久| 国内毛片毛片毛片毛片毛片| www.精华液| 亚洲av五月六月丁香网| 精品国产三级普通话版| 免费人成视频x8x8入口观看| 欧美中文综合在线视频| 白带黄色成豆腐渣| 男女做爰动态图高潮gif福利片| 麻豆国产av国片精品| 国产精品1区2区在线观看.| 国内毛片毛片毛片毛片毛片| 国产成人精品久久二区二区免费| 免费高清视频大片| 两人在一起打扑克的视频| 少妇熟女aⅴ在线视频| 国产精品一区二区免费欧美| 99在线视频只有这里精品首页| 国产伦在线观看视频一区| av国产免费在线观看| 色av中文字幕| 欧美不卡视频在线免费观看| 精品国产乱码久久久久久男人| 欧美最黄视频在线播放免费| 国产精品,欧美在线| 午夜久久久久精精品| 国产精品av视频在线免费观看| www国产在线视频色| 成人国产一区最新在线观看| av女优亚洲男人天堂 | 成人午夜高清在线视频| 超碰成人久久| 久久中文字幕一级| 免费一级毛片在线播放高清视频| 精品乱码久久久久久99久播| 精品午夜福利视频在线观看一区| 国产精品日韩av在线免费观看| 最近最新中文字幕大全电影3| 国产黄a三级三级三级人| 成人精品一区二区免费| 99国产综合亚洲精品| 日本熟妇午夜| 午夜福利视频1000在线观看| 日韩欧美国产一区二区入口| 校园春色视频在线观看| 欧美午夜高清在线| 国产探花在线观看一区二区| 欧美性猛交╳xxx乱大交人| 欧美精品啪啪一区二区三区| 黄片大片在线免费观看| 又粗又爽又猛毛片免费看| 国产v大片淫在线免费观看| 日韩欧美一区二区三区在线观看| 美女被艹到高潮喷水动态| 九色成人免费人妻av| 欧美日韩国产亚洲二区| 国模一区二区三区四区视频 | 中文字幕精品亚洲无线码一区| 欧美av亚洲av综合av国产av| 天堂影院成人在线观看| 淫秽高清视频在线观看| 国语自产精品视频在线第100页| 国产亚洲精品久久久com| 男人舔奶头视频| 校园春色视频在线观看| 老汉色av国产亚洲站长工具| 国产午夜精品论理片| 国产精品 国内视频| 免费在线观看影片大全网站| 少妇的丰满在线观看| 国产欧美日韩一区二区三| 免费一级毛片在线播放高清视频| 国产高清有码在线观看视频| 女同久久另类99精品国产91| 99热6这里只有精品| 午夜a级毛片| 啦啦啦观看免费观看视频高清| 偷拍熟女少妇极品色| 在线a可以看的网站| 国产精品美女特级片免费视频播放器 | 国模一区二区三区四区视频 | 成人亚洲精品av一区二区| 亚洲av免费在线观看| 中文资源天堂在线| 久久精品91无色码中文字幕| 亚洲 国产 在线| 老司机福利观看| 中文字幕人妻丝袜一区二区| 国产免费男女视频| 毛片女人毛片| 少妇人妻一区二区三区视频| 真实男女啪啪啪动态图| 香蕉丝袜av| 亚洲熟女毛片儿| 一进一出抽搐动态| 久久这里只有精品中国| 亚洲av中文字字幕乱码综合| 老鸭窝网址在线观看| 日韩免费av在线播放| 一卡2卡三卡四卡精品乱码亚洲| 亚洲精品美女久久久久99蜜臀| 亚洲一区二区三区不卡视频| 男插女下体视频免费在线播放| av天堂在线播放| www.熟女人妻精品国产| 噜噜噜噜噜久久久久久91| av福利片在线观看| 无人区码免费观看不卡| 少妇丰满av| 美女被艹到高潮喷水动态| 国产成人精品久久二区二区91| 不卡一级毛片| 亚洲第一欧美日韩一区二区三区| 99热只有精品国产| 一个人看视频在线观看www免费 | 精品国内亚洲2022精品成人| 亚洲av熟女| 午夜视频精品福利| 亚洲男人的天堂狠狠| 19禁男女啪啪无遮挡网站| 欧美精品啪啪一区二区三区| 国产真实乱freesex| 五月伊人婷婷丁香| 美女被艹到高潮喷水动态| 国产精品久久久久久人妻精品电影| 麻豆久久精品国产亚洲av| 精品久久蜜臀av无| 老汉色av国产亚洲站长工具| 日本五十路高清| 日韩欧美在线二视频| 成人特级av手机在线观看| 亚洲欧美精品综合一区二区三区| 亚洲成人久久爱视频| 国产主播在线观看一区二区| 人人妻人人看人人澡| 18美女黄网站色大片免费观看| 午夜福利在线在线| 九色国产91popny在线| 欧美日韩乱码在线| 每晚都被弄得嗷嗷叫到高潮| 国产精品久久电影中文字幕| a级毛片a级免费在线| 又紧又爽又黄一区二区| 亚洲成a人片在线一区二区| 国产精品香港三级国产av潘金莲| 久久午夜综合久久蜜桃| 国产一区二区激情短视频| 久久精品国产综合久久久| 精品免费久久久久久久清纯| 亚洲色图av天堂| 免费人成视频x8x8入口观看| 日本成人三级电影网站| 香蕉国产在线看| 又粗又爽又猛毛片免费看| 国产单亲对白刺激| 国产不卡一卡二| 在线播放国产精品三级| 日韩欧美三级三区| 免费一级毛片在线播放高清视频| 听说在线观看完整版免费高清| 国产成+人综合+亚洲专区| 舔av片在线| 成人国产综合亚洲| 日韩高清综合在线| 一级毛片精品| 日本 欧美在线| 最好的美女福利视频网| 91老司机精品| 免费人成视频x8x8入口观看| 久久久久亚洲av毛片大全| 久久热在线av| 极品教师在线免费播放| 999精品在线视频| 欧洲精品卡2卡3卡4卡5卡区| 听说在线观看完整版免费高清| 亚洲中文字幕一区二区三区有码在线看 | 在线观看66精品国产| 欧美丝袜亚洲另类 | 黑人欧美特级aaaaaa片| 两个人视频免费观看高清| 嫩草影视91久久| 天堂影院成人在线观看| 91在线精品国自产拍蜜月 | 舔av片在线| 国产一级毛片七仙女欲春2| 国产精品久久电影中文字幕| av在线天堂中文字幕| 两个人的视频大全免费| 久久久久精品国产欧美久久久| 精品国产乱码久久久久久男人| 久久久久久人人人人人| 午夜久久久久精精品| 91在线精品国自产拍蜜月 | 99国产综合亚洲精品| 两个人的视频大全免费| 亚洲欧洲精品一区二区精品久久久| 免费观看人在逋| 好男人电影高清在线观看|