[英]Python Sequence Comparison
我正在嘗試比較兩個序列:
>>> 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)
Output
tgaaactcaagccttaccgcagagacagaagaaacagcaaactgtgactcttcttcctgctgcagatttggatgatt
| || | |||||||||| ||| |||| || ||||||| ||||| || |||||||||||| ||| | ||| |
agagcctaaaaaggacaaaaagaagaaggctgatgaaactcaagccttaccgcagagacagaagaaacagcaaactg
在 python 中必須添加縮進,如果您不在某個位置添加縮進,您的代碼將無法工作; 這里在聲明function之后,需要在聲明function之后添加一個縮進。
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)
這段代碼應該可以工作,因為我在需要的地方添加了縮進。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.