我正在尝试创建一个代码,该代码使用k-mer遍历一串Text,并输出最常见的模式。 (请注意,我也是初学者)。我正在使用Juptyer笔记本,每当我尝试运行代码时,都没有输出。 (也许与Juptyer有关)?例如,假设我的文本是GATGATATAC,k-mer是3,那么我想输出最频繁的模式并将其显示为带有每个3字母模式词的频率的索引字典。
def FrequentWords(Text, k):
words = []
freq = FrequencyMap(Text, k)
m = max(freq.values())
for key in freq:
if freq[key] == m:
words.append(key)
Text = 'GATTACCGACGTATGCTACTCCGATACGATAT'
k = 3
return words
我不确定我应该在哪里定义Text和k,以便测试代码(这也可能是一个问题)。就像我说的那样,我正在使用Juptyer笔记本,当我按Run时,什么也没有发生。
答案 0 :(得分:0)
我相信你的意思是
def FrequentWords(Text, k):
words = []
freq = FrequencyMap(Text, k)
m = max(freq.values())
for key in freq:
if freq[key] == m:
words.append(key)
return words
Text = 'GATTACCGACGTATGCTACTCCGATACGATAT'
k = 3
FrequentWords(Text, k)
此外,您还可以通过列表理解来简化您的功能:
def FrequentWords(Text, k):
freq = FrequencyMap(Text, k)
m = max(freq.values())
return [key for key in freq if freq[key] == m]