我正在尝试解决以下问题: -我有一组矩阵,它们代表特定序列模式下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,因此在这种环境下的任何建议都将有所帮助。