EXERCISE BREAK: Compute Count2(AACAAGCTGATAAACATTTAAAGAG, AAAAA).
Сегодня день моего несогласия с системой квизов. Ибо я считаю, что решения мои правильные (да я их в уме пересчитываю и все сходится), а квиз не принимает и тычет мне свое "инкоррект".
В этом задании надо было посчитать сколько раз встречается последовательность Pattern в заданном Genome, если допустимое расстояние Хэмминга для этой последовательности.. тоже задано - d.
Я нашла массив позиций с которых встречается паттерн в геноме.. и посчитала кол-во элементов. Где тут можно было провтыкать? Но инкоррект. Не 10. У меня получается 10.
Однако. Это я рассуждаю как тупо прогер-математик, где циферка к циферке. А если включить мозг биолога, то он обидится на мое решение и скажет, что "накрываться"(пересекаться) эти последовтельности (паттерны, которые я подсчитываю), вероятно, не должны.. Не должны? Массив позиций выглядит так:
def hamdist(str1, str2):
diffs = 0
for ch1, ch2 in zip(str1, str2):
if ch1 != ch2:
diffs += 1
return diffs
def Approximate_Pattern(Pattern, Genome, d):
pos = []
for i in range(len(Genome) - len(Pattern) ):
if hamdist(Genome[i:i+len(Pattern)], Pattern) <= d:
pos.append(str(i))
#return " ".join(pos)
return pos
def count(Genome, Pattern, d):
res = 0
massiv = Approximate_Pattern(Pattern, Genome, d)
print (massiv)
for i in massiv:
res += 1
return res
print (count("AACAAGCTGATAAACATTTAAAGAG", "AAAAA", 2))
В итоге.. гармония была достигнута. в строке for i in range(len(Genome) - len(Pattern) ) надо было увеличить на единичку границы итераций в цикле.. те.е for i in range(len(Genome) - len(Pattern) + 1). Получить в ответе 11 и квиз коррект. Аллилуя. Это благословение снизошло на меня в процессе просчета следующих заданий.. ) где тоже - коррект-коррект))) как хорошо
Сегодня день моего несогласия с системой квизов. Ибо я считаю, что решения мои правильные (да я их в уме пересчитываю и все сходится), а квиз не принимает и тычет мне свое "инкоррект".
В этом задании надо было посчитать сколько раз встречается последовательность Pattern в заданном Genome, если допустимое расстояние Хэмминга для этой последовательности.. тоже задано - d.
Я нашла массив позиций с которых встречается паттерн в геноме.. и посчитала кол-во элементов. Где тут можно было провтыкать? Но инкоррект. Не 10. У меня получается 10.
Однако. Это я рассуждаю как тупо прогер-математик, где циферка к циферке. А если включить мозг биолога, то он обидится на мое решение и скажет, что "накрываться"(пересекаться) эти последовтельности (паттерны, которые я подсчитываю), вероятно, не должны.. Не должны? Массив позиций выглядит так:
['0', '1', '8', '9', '10', '11', '12', '17', '18', '19']
И это 8-9-10-11-12 в скопе с 17-18-19 мне не очень нравится. Делаю вывод, что условие - в чем сотояла задача для меня - "анклиар" (непонятно по нашему)
def hamdist(str1, str2):
diffs = 0
for ch1, ch2 in zip(str1, str2):
if ch1 != ch2:
diffs += 1
return diffs
def Approximate_Pattern(Pattern, Genome, d):
pos = []
for i in range(len(Genome) - len(Pattern) ):
if hamdist(Genome[i:i+len(Pattern)], Pattern) <= d:
pos.append(str(i))
#return " ".join(pos)
return pos
def count(Genome, Pattern, d):
res = 0
massiv = Approximate_Pattern(Pattern, Genome, d)
print (massiv)
for i in massiv:
res += 1
return res
print (count("AACAAGCTGATAAACATTTAAAGAG", "AAAAA", 2))
В итоге.. гармония была достигнута. в строке for i in range(len(Genome) - len(Pattern) ) надо было увеличить на единичку границы итераций в цикле.. те.е for i in range(len(Genome) - len(Pattern) + 1). Получить в ответе 11 и квиз коррект. Аллилуя. Это благословение снизошло на меня в процессе просчета следующих заданий.. ) где тоже - коррект-коррект))) как хорошо
Немає коментарів:
Дописати коментар