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 之后,我仍然需要将其合并到一个全基因调用中(并且理想地确定哪些窗口具有非零值C_w.

4

1 回答 1

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 中的负值”等术语的含义。添加您当前的代码片段和您收到的错误以获取更多详细信息。

于 2017-06-12T20:04:00.470 回答