Моя примочка для инпута в последнем код-челенже выглядит так:
#ф-ция to_float понадобилась мне, чтобы переводить список из строковых элементов в список численных элементов
def to_float(list_of_str):
res = []
for i in range(len(list_of_str)):
res.append(float(list_of_str[i]))
return res
def greedy_alg(input):
f = open(input)
genome = f.readline()
k = int(f.readline())
#Далее => считывается третий рядок файла. Знак конца абзаца затирается. Строка преобразовывается в список по знаку пробела. Список из строковых элементов превращается в список численных элементов. Да, я молодец
A = to_float(f.readline().replace('\n', '').split(" "))
C = to_float(f.readline().replace('\n', '').split(" "))
G = to_float(f.readline().replace('\n', '').split(" "))
T = to_float(f.readline().replace('\n', '').split(" "))
kmer_res = []
max = 0
for i in range(len(genome) - 5):
kmer = genome[i:i+k]
prob_res = 1
for j in range(len(kmer)):
if kmer[j] == "A":
probability = A[j]
elif kmer[j] == "C":
probability = C[j]
elif kmer[j] == "G":
probability = G[j]
elif kmer[j] == "T":
probability = T[j]
prob_res *= probability
if prob_res > max:
max = prob_res
kmer_res.append(kmer)
kmer_out = kmer
print (kmer_out)
return kmer_out
print (greedy_alg("input.txt"))
#ф-ция to_float понадобилась мне, чтобы переводить список из строковых элементов в список численных элементов
def to_float(list_of_str):
res = []
for i in range(len(list_of_str)):
res.append(float(list_of_str[i]))
return res
def greedy_alg(input):
f = open(input)
genome = f.readline()
k = int(f.readline())
#Далее => считывается третий рядок файла. Знак конца абзаца затирается. Строка преобразовывается в список по знаку пробела. Список из строковых элементов превращается в список численных элементов. Да, я молодец
C = to_float(f.readline().replace('\n', '').split(" "))
G = to_float(f.readline().replace('\n', '').split(" "))
T = to_float(f.readline().replace('\n', '').split(" "))
kmer_res = []
max = 0
for i in range(len(genome) - 5):
kmer = genome[i:i+k]
prob_res = 1
for j in range(len(kmer)):
if kmer[j] == "A":
probability = A[j]
elif kmer[j] == "C":
probability = C[j]
elif kmer[j] == "G":
probability = G[j]
elif kmer[j] == "T":
probability = T[j]
prob_res *= probability
if prob_res > max:
max = prob_res
kmer_res.append(kmer)
kmer_out = kmer
print (kmer_out)
return kmer_out
print (greedy_alg("input.txt"))
CODE CHALLENGE: Solve the Profile-most Probable k-mer Problem = CORRECT) imhappy
Немає коментарів:
Дописати коментар