例如,给定一个 DNA 字符串AGC
。我正在尝试生成所有可能的 uniq 字符串,允许给定字符串中最多 #n (用户定义的数字)不匹配。
我可以通过以下方式对一个不匹配执行此操作,但无法实现递归解决方案以基于#n 不匹配、DNA 字符串和突变集(AGCTN)生成所有可能的组合
temp_dict = {}
sequence = 'AGC'
for x in xrange(len(sequence)):
prefix = sequence[:x]
suffix = sequence[x+1:]
temp_dict.update([ (prefix+base+suffix,1) for base in 'ACGTN'])
print temp_dict
一个例子:
对于给定的示例字符串:ACG,以下是 13 个 uniq 序列,最多允许一个不匹配
{'ACC': 1, 'ATG': 1, 'AAG': 1, 'ANG': 1, 'ACG': 1, 'GCG': 1, 'AGG': 1,
'ACA': 1, 'ACN': 1, 'ACT': 1, 'TCG': 1, 'CCG': 1, 'NCG': 1}
我想概括这一点,以便程序可以采用 100 个字符长的 DNA 字符串并返回允许用户定义的 #mismatches 的 uniq 字符串列表/字典
谢谢!-阿比