簡體   English   中英

基因DNA序列優化的算法選項? (與TSP有關,動態編程)

[英]Algorithm Options for Gene DNA Sequence Optimization? (related to TSP, dynamic programming)

以下問題專門用於生物技術應用,但可以說明其他領域類似問題的一般原理。 這是一個與旅行商問題相關的NP難題,我很好奇可以使用哪種算法來得出解決方案。

簡短的生物學背景 :蛋白質由20個氨基酸組成。 DNA由4個鹼基組成-A,C,G,T。蛋白質的DNA序列決定氨基酸的序列-3個DNA鹼基的每個連續序列(單位稱為密碼子)編碼一個氨基酸。 單個氨基酸可以由多個密碼子編碼,例如,纈氨酸有4種編碼方式。

並非所有密碼子都相等-其中某些密碼子的處理速度比其他密碼子快。 另外,並非所有密碼子對都相等-一些對比其他對慢。

這意味着對於一個特定的100個氨基酸的基因(300個DNA鹼基),有許多方法可以編碼相同的氨基酸序列,但是具有非常不同的特性,例如加工速度。

給定一個具有相應速度值的密碼子對表,我們想編寫一種算法,該算法可以輸出所需速度的序列 ,例如最快和最慢的可能序列,以及它們之間的梯度。 輸入的是編碼基因的DNA序列,密碼子對字典及其各自的速度得分(-1至1)。 輸出是優化的DNA序列及其整體速度得分(可以表示為所有密碼子對得分的總和)。 氨基酸序列必須保持相同。

例如 :如果我們有編碼3個氨基酸的序列AAATTTGGG,並且我們的密碼子對得分為:

AAATTT = -0.5

TTTGGG = -0.5

那么此序列的分數可能為-1。

現在,如果我們還有一對替代品,我們可以評估不同的可能性:

AAATTG = -0.7 AAATTC = -0.3

TTGGGC = +0.2 TTCGGA = -1.0

人們會發現基於此信息的最佳序列是AAATTCGGA,因為它的總值為-1.3。

這個問題的復雜性當然在於密碼子對對所有周圍密碼子對的影響。

完整的密碼子對圖將具有61 * 61的條目(因為3個密碼子會停止基因的讀取)。

====

問題

我認為這是一個NP難題,與TSP有關系。 我已經看到一種使用模擬退火算法的方法。 我很好奇是否還有其他有見地的方法來考慮這個問題,以及相應的算法和試探法以產生所需的輸出。

如果是動態編程,哪種方法合適?

此外,我們如何使用該算法創建速度得分的梯度,而不僅僅是最大值和最小值?

使用遺傳算法,您應該能夠獲得實現所需目標的序列。 假設您的目標是x的速度,則可以創建一組基因-每個基因編碼相同的基因,但編碼不同的密碼子。 然后選擇,交配和變異數代,直到獲得x(或足夠接近)為止。 突變/重組的元件必須處於密碼子水平(與核苷酸水平相對)。 要獲得一系列具有不同速度的序列,請針對不同的目標x多次運行該算法。

獲得特定序列最快(或最慢)的編碼應該是一個直接的動態編程問題。 將每個3個氨基酸組視為一個64個字符的字母中的一個字符。 然后,在結果字符串的每個點上,您都可以選擇幾個產生所需氨基酸的字母,並且希望最大化(最小化)與每個相鄰字母對關聯的總和。

從左到右,在每個點上為每個可能的字符計算出終止於該字符的最大(最小)序列。 每個角色最多有64種可能性。 給定最多n個字符的解決方案,您可以在此處使用該答案來計算最多n + 1個字符的解決方案-只需獲取n和n + 1個字符的分數並將其加到已經計算出的最佳答案中即可最多n個字符-將找到的每個字符的最佳答案保持在n + 1。

要獲得具有中等分數的答案,一種方法是僅生成產生正確氨基酸序列的隨機答案。 另一種方法是將產生最大分數的答案部分與產生最小分數的答案混合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM