找到其他序列中频率最高的序列

2024-09-27 02:20:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了10个DNA序列,每个序列由18个碱基组成,我被要求编写一个程序,计算所有这些序列中最频繁的序列(一致性)。例如,假设我有“ACTGGA”,“ACCAAT”,“CTTAGG”,“atgag”

一致序列将是“A(CT)TA(GA)G”,因为在每个序列的第一个碱基位置中“A”存在3/4时间。为了每个序列i的第二个基位置有2个带“C”的序列和2个带“T”的序列。到目前为止,我的共识序列看起来像是A(CT),因为我已经确定“A”在位置1出现的时间占75%,而位置2出现“T”或“C”的可能性为50-50%等等,所以,我将把“C”和“T”放在我的共识的第二个位置。现在我正在尝试用pycharm在python中实现这一点,尽管我对pycharm不是很熟悉。我只是想强迫自己学点新东西。我的问题是,当我将txt文件读入如下numpy数组时:

seq_array = np.asarray(list(map(str.strip, seq)))

我的数组最终是1d(10,)而不是(10,18),所以我不能遍历每一行和每一列来计算每个字符。那么如何将文件读入2d大小(10,18)?有没有更快的方法来获得最频繁的序列,而不是迭代每个seq_array[r][c]?你知道吗


Tags: 文件程序时间序列数组arrayseqpycharm

热门问题