Вложен, пока l oop не работает, как я думаю, это должно быть для искателя ORF в python - PullRequest
0 голосов
/ 18 июня 2020

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)
...