find_orf()
принимает два списка, в которых я уже нашел все стартовые и стоп-кодоны в последовательности ДНК и сохранил их индекс в двух списках.
Я использую эти индексы, чтобы проверить, какая рамка считывания они находятся внутри и проверяют, соответствует ли он кадру (третий аргумент этой функции). Если и стартовый, и стоп-кодоны находятся в одном кадре, а стоп-кодон является ближайшим стоп-кодоном после стартового кодона, в котором мы находимся в l oop, то эти индексы сохраняются в orfList.
I Я не уверен, в чем проблема, и я не получаю никаких ошибок, ячейка в ноутбуке jupyter просто продолжает пытаться работать, пока я не остановлю ее вручную.
def find_orf(startList, stopList, frame):
frame = frame - 1 # Subtracting 1 b/c the user will input 1,2,3 and index starts at 0
orf_list = [] # Create a list to store the ORFs in
i = 0; j = 0;
while i < (len(startList)-1):
while j < (len(stopList)-1):
if(stopList[j] > startList[i]):
if((startList[i] % 3) == frame):
if((stopList[j] % 3) == frame):
orf = [i]+[j]
orf_list.append(orf)
break
else: j += 1
else: i += 1
else: j += 1
return orf_list
orf_list = find_orf(dafterstart, dafterstop, 1)
print(orf_list)