Da dieser StringVersuch Substrings in großen String
dna3 = "CATGTAATAGATGAATGACTGATAGATATGCTTGTATGCTATGAAAATGTGAAATGACCC"
der folgende Code zu finden folgende 4 Teil gedruckt werden soll.
ATGTAA
ATGAATGACTGATAG
ATGCTATGA
ATGTGA
Jedoch ist es den Druck der folgende:
ATGTAA
ATGAATGACTGATAG
ATGACTGATAGATATGCTTGTATGCTATGAAAATGTGAAATGACCC
ATGCTTGTATGCTATGAAAATGTGAAATGACCC
ATGCTATGA
ATGAAAATGTGA
ATGTGA
ATGACCC
None
kann jemand bitte helfen Sie mir dies herauszufinden. Vielen Dank.
def findStopIndex(dna,index):
stop1 = dna.find("tga",index)
if(stop1 == -1 or (stop1-index) % 3 != 0):
stop1 = len(dna)
stop2 = dna.find("taa",index)
if(stop2 == -1 or (stop2-index) % 3 != 0):
stop2 = len(dna)
stop3 = dna.find("tag",index)
if(stop3 == -1 or (stop3-index) % 3 != 0):
stop3 = len(dna)
return min(stop1, min(stop2,stop3))
def printAll(dna):
gene = None
start = 0
while(True):
loc = dna.find("atg", start)
if(loc == -1):break
stop = findStopIndex(dna,loc+3)
gene = dna[loc:stop+3]
print gene.upper()
start = loc + 3
print printAll(dna3.lower())
Um dies zu debuggen Ich würde die Werte des Index, stop1, stop2 und STOP3 drucken. Ich vermute, Sie werden dann sehen, dass der Wert nicht das ist, was Sie erwartet haben. –
'min' kann mit mehreren Argumenten verwendet werden:' min (stop1, stop2, stop3) '. – Daniel
'if' und' while' sind keine Funktionen, daher sind die Klammern unnötig. – Daniel