1

我正在設計一個整數線性規劃模型的目標函數。目標是確定兩個基因的拷貝數以及是否發生了基因轉換事件(其中一個拷貝被另一個拷貝覆蓋,看起來像一個拷貝被刪除但網絡拷貝數沒有改變)。設計整數線性規劃的目標函數

該問題涉及兩個數據向量,P_AP_B。矢量包含大於零的連續值,這對應於在每個位置處進行的拷貝數的測量。 P_{A,i}P_{B,i}是不同的基因,因爲這些位置對於每個拷貝是獨特的(並且可以被映射到基因組中的絕對位置)。

鑑於此,我的計劃是儘量減少我的決策變量和不同基因組窗口上的測量數據之間的差異,給予對應於相同區域的兩個數據向量的不同切片。

決策變量:

A_w = copy number of A in window in {0,1,2,3,4} 
B_w = copy number of B in window in {0,1,2,3,4} 
C_w = gene conversion in {-2,-1,0,1,2} 

然後我們的目標是儘量減少下面的等式的左邊和右邊的區別:

A_w - C_w ~= mean(P_{A,W}) 
B_w + C_w ~= mean(P_{B,W}) 

符合限制,如2 <- A_w + B_w <= 4一小撮

但我不確定如何制定這個功能最小化。我有兩個方程並不是一個函數,決策變量也沒有係數。

我也不確定如何處理C_w的負值。我也不確定如何將結果重新組合在一起;之後我解決在每個窗口的LP,我還需要將其合併成一個基因範圍內的呼叫(和理想的識別窗口(S)具有的C_w非零值

+1

這看起來更像是如何做算法,而不是寫如何編寫代碼。我也發現你不清楚你在問什麼。 – Llopis 2014-09-06 14:05:53

+0

你真的沒有解釋你想要做什麼。 「最小化左側/右側的差異」是什麼意思?你能舉一些例子嗎?另外,在Stackoverflow上,你需要向我們展示你迄今爲止嘗試的代碼。 – SashaZd 2017-01-11 01:51:27

回答

0

創建LpProblem實例:

problem = LpProblem("Another LpProblem", LpMinimize) 

目的(每個你已經隱約如上所述):

problem += (mean(P_{A,W}) - (A_w - C_w)) + (mean(P_{B,W}) - (B_w + C_w)) 

這是所有我可以告訴您確實相當模糊的問題,你需要更加具體與您的意思是什麼。像「把結果重新聚合在一起」,或者「處理負面情緒」 C_w中的值「。添加您當前的代碼片段以及獲取更多詳細信息的錯誤。