我正在尝试比较两个序列:
>>> seq_a = "tgaaactcaagccttaccgcagagacagaagaaacagcaaactgtgactcttcttcctgctgcagatttggatgatttctccaaacaattgcaacaatccatgagcagtgctgactcaactcaggcctaaactcatgcagaccacacaaggcagatgggctatataaacgttttcgcttttccgtttacgatatatagtctactcttgtgcagaatgaattctcgtaactacatagcacaagtagatgtagttaactttaatctcacatagcaatctttaatcagtgtgtaacattagggaggacttgaaagagccaccacattttcaccgaggccacgcggagtacgatcgagtgtacagtgaacaatgctagggagagctgcctatatggaagagccctaatgtgtaaaattaattttagtagtgctatccccatgtgattttaatagcttcttaggagaatgacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
>>> seq_b = "agagcctaaaaaggacaaaaagaagaaggctgatgaaactcaagccttaccgcagagacagaagaaacagcaaactgtgactcttcttcctgctgcagatttggatgatttctccaaacaattgcaacaatccatgagcagtgctgactcaactcaggcctaaactcatgcagaccacacaaggcagatgggctatataaacgttttcgcttttccgtttacgatatatagtctactcttgtgcagaatgaattctcgtaactacatagcacaagtagatgtagttaactttaatctcacatagcaatctttaatcagtgtgtaacattagggaggacttgaaagagccaccacattttcaccgaggccacgcggagtacgatcgagtgtacagtgaacaatgctagggagagctgcctatatggaagagccctaatgtgtaaaattaattttagtagtgctatccccatgtgattttaatagcttcttaggagaatgac"
但是我正在使用的代码被卡在sequence_comparison的末尾。这段代码是在网上找到的,我很难找到问题所在。提供的语法错误在最后一段代码的开头突出显示了s:
def sequence_compare(seq_a, seq_b):
len1 = len(seq_a)
len2 = len(seq_b)
mismatches = []
for pos in range (0,min(len1,len2)):
if seq_a[pos] != seq_b[pos]:
mismatches.append('|')
else:
mismatches.append(' ')
print(seq_a)
print(mismatches)
print(seq_b)
sequence_compare(seq_a,seq_b)
有人可以帮我找到这个问题吗?
解决方案
看起来问题在于,mismatches它被显示为列表,而不是字符串。我已经将其转换为字符串:
更新的代码
def sequence_compare(seq_a, seq_b):
len1 = len(seq_a)
len2 = len(seq_b)
mismatches = ""
for pos in range (0,min(len1,len2)):
if seq_a[pos] != seq_b[pos]:
mismatches += '|'
else:
mismatches += ' '
print(seq_a)
print(mismatches)
print(seq_b)
seq_a = "tgaaactcaagccttaccgcagagacagaagaaacagcaaactgtgactcttcttcctgctgcagatttggatgatt"
seq_b = "agagcctaaaaaggacaaaaagaagaaggctgatgaaactcaagccttaccgcagagacagaagaaacagcaaactg"
sequence_compare(seq_a,seq_b)
输出量
tgaaactcaagccttaccgcagagacagaagaaacagcaaactgtgactcttcttcctgctgcagatttggatgatt
| || | |||||||||| ||| |||| || ||||||| ||||| || |||||||||||| ||| | ||| |
agagcctaaaaaggacaaaaagaagaaggctgatgaaactcaagccttaccgcagagacagaagaaacagcaaactg
博客内容涉及Python中对两个序列进行比较的代码实现。作者遇到问题,原始代码在比对序列时将不匹配的位置用'|'表示,但在输出时mismatches变量仍为列表形式。经过修改,将mismatches转换为字符串并正确地用'|'连接不匹配项,代码成功运行并展示比对结果。示例序列包括seq_a和seq_b,它们是DNA序列。

被折叠的 条评论
为什么被折叠?



