2015-07-13 61 views
0

我正在嘗試查找序列中終止密碼子的位置。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'。不幸的是,我需要回到我的代碼並找到一種方法來讀取啓動密碼和終止密碼。

我已經添加了起始密碼子,但我仍然處於虧損狀態。我沒有得到正確的數字。

+0

請正確縮進您的代碼,添加'numpy'導入,以便該示例是自包含的,並添加一些帶有預期結果和結果的示例數據。 – BioGeek

+0

你從'print i + 1'獲得的輸出是什麼?如果您打印'orf [i:i + 3]',可能會有所幫助,這樣您就可以看到它正在檢查的內容。如果密碼子=='TAA'或密碼子=='TAG'或密碼子=='TGA'可以縮寫爲''('TAA','TAG','TGA')中的密碼子' 。 – SuperBiasedMan

+0

哦,我錯過了開放閱讀框架'ATG'。這可能是我找到開放閱讀框長度的問題的原因之一。 – statsguyz

回答

1

我不是100%確定你想要的輸出是什麼,但是如果你只是想收集所有潛在的起始密碼子位置和終止密碼子位置到你的列表中xw(實際上,請允許我自由重命名他們startCodonPositionsstopCodonPositions),這很簡單。

實際上,您的startCodonPositions代碼似乎已經完美工作。爲什麼不像stopCodonPositions那樣做同樣的事情?

def findStopCodons1(orf): 
    catch = numpy.arange(0, len(orf), 3) 
    startCodonPositions = [] 
    stopCodonPositions = [] 
    for i in catch: 
     codon = orf[i:i + 3] 
     if codon == 'ATG': 
      startCodonPositions.append(i + 1) 
     if codon == 'TAA' or codon == 'TAG' or codon == 'TGA': 
      stopCodonPositions.append(i + 1) 
    return startCodonPositions, stopCodonPositions