最大化序列重叠和得分的最佳解决方案

时间:2019-07-16 15:06:25

标签: r algorithm optimization bioinformatics

我正在尝试解决以下问题:  -我有一组矩阵,它们代表特定序列模式下DNA绝对频率。每个矩阵可以表示为:

  1 2 3 4 ... 10
A 0 3 0 0     0
C 5 2 0 0     1
G 2 1 6 8     7
T 1 2 2 0     0

(列分别代表先前研究中每个位置上的A,C,G和T的位置和行数)

(用于构建矩阵的序列总数=列总和= 8)

我有一组这样的矩阵,可通过使用滑动窗口方法来计算单个字符串的得分(得分代表序列的子字符串确实是矩阵表示的模式的概率)

例如,如果我的矩阵有x = 10列且字符串大小为l = 20,则滑动方法将提供l-x + 1个分数或11个分数,其中之一将是最佳分数(最大值)

我可以将结果另存为:

  substring_ID score_matrix1 substring_start substring_end
  A
  B
  C
  D

但是,当我在同一字符串上同时使用五个大小不同的矩阵时,我将获得分数以及每个子字符串的开始和结束位置,例如:

  [using matrix1]
  substring_ID score_matrix1 substring_start substring_end

  [using matrix2]
  substring_ID score_matrix2 substring_start substring_end

  [using matrix3]
  substring_ID score_matrix3 substring_start substring_end
  ...

然后在找到的每个子字符串之间计算重叠 根据他们的开始和结束位置

我的问题是:如果我想同时最大化子字符串和获得的分数之间的重叠,可以使用哪种方法?例如,如果要查找字符串的哪个区域的子字符串重叠程度更高,且得分最高。也许是线性优化,但我仍然不知道如何...

我目前正在使用R,因此在这种环境下的任何建议都将有所帮助。

0 个答案:

没有答案