Когда я запускаю свою функцию BruteForce только с одним входом, она работает, и результат правильный.
def BruteForce(s, t):
occurrences = []
for i in range(len(s)-len(t)+1): # loop over alignment
match = True
for j in range(len(t)): # loop over characters
if s[i+j] != t[j]: # compare characters
match = False # mismatch
break
if match: # allchars matched
occurrences.append(i)
print(occurrences)
t = 'CAACTTCCA'
s = ''
BruteForce (s, t)
[2, 9, 48, 152, 175, 205, 212, 261, 277, 284, 300, 307, 370, 410, 607, 623, 717, 735,751, 758, 792, 844]
Но когда я использую его в следующем цикле, он ничего не возвращает!Я использовал print (), чтобы увидеть, читает ли он строки и мотивы из файла input_2.txt, но он возвращает пустой список вхождений [].
with open('input_2.txt', 'r') as input_2:
nt = input_2.readline() #nt is the no of strings+motifs in 1st line
nt = int(nt) #in this case it is 10
for i in range(nt):
s = input_2.readline()
print(s)
t = input_2.readline()
print(t)
BruteForce(s, t)
Не могли бы вы дать мнезнаете, какие изменения здесь нужны?Большое спасибо, Beeta
input_2.txt
10
CAACTTCCA
TGTATCGTG
TTTCAGCTT
GCATCCGGC
GACGAGCGA
GGACCCCGG
ACCTTCGAC
TATTCCCTA
AAAGGATAA
TCAAATATC