Я пытаюсь найти местоположение стоп-кодонов в последовательности.Код Python для поиска стоп-кодонов в последовательности
К сожалению, что-то не работает. Это код, который я создал:
def findStopCodons1(orf):
catch = numpy.arange(0, len(orf), 3)
x = []
w = []
for i in catch:
codon = orf[i:i+3]
if codon == 'ATG':
w.append(i+1)
catch1 = numpy.arange(i+1, len(orf), 3)
for i in catch1:
if codon == 'TAA' or codon == 'TAG' or codon == 'TGA':
x.append(i+1)
print i + 1
mergedlist = w + x
print mergedlist
print NP.ediff1d(mergedlist)
y = NP.ediff1d(mergedlist)
print max(y)
Это должно быть для чтения рамки 1. К сожалению, я думаю, что мои номера выключены. Какой-нибудь намек, что не так с моим кодом?
*** Редактировать: Я забыл ввести стартовый кодон, который является «ATG». К сожалению, мне нужно вернуться к моему коду и найти способ прочитать между кодонами start и stop.
Я добавил стартовый кодон, но я все еще в растерянности. Я не получаю правильные цифры.
Пожалуйста, правильно отложите свой код, добавьте импорт «numpy», чтобы этот пример был автономным, и добавьте некоторые данные примера с ожидаемым результатом и результатом, который вы получите. – BioGeek
Какой вывод вы получаете от 'print i + 1'? Это может помочь, если вы напечатаете 'orf [i: i + 3]', чтобы вы могли видеть, что он проверяет. Также 'if codon == 'TAA' или codon == 'TAG' или codon == 'TGA'' можно сократить до' if codon in (' TAA ',' TAG ',' TGA ') 'для того же результата , – SuperBiasedMan
О, я пропустил открытую рамку для чтения, «ATG». Вероятно, это одна из причин, по которой у меня возникла проблема с поиском длины открытых кадров считывания. – statsguyz