Strings aus Strings finde, zählen und Position speichern
Verfasst: Freitag 22. November 2019, 21:57
Hallo zusammen,
ich würde gerne aus einer Datei lesen, Zeile für Zeile durchgehen und die gewisse Zeichen zählen. Soweit so gut. Jedoch muss ich auch Strings in einer Zeile finden (eine Zeile aus der Datei ist ein zusammenhängender String Länge 200 also z.B. ATGCTTACGATGC) und deren Position bestimmen, also sowas wie wo und wie oft kommt 'ATG' in diesem String vor, wobei das größere Problem das wo ist, da ich nicht nur das erste oder letzte finden muss, sondern mehrere. Am besten wäre, wenn ich ein Feld hätte mit den Anfangspositonen der Substings.
Mein Ansatz ist erstmal sehr naiv, würde aber reichen, jedoch spielt der Compiler nicht mit, da er denkt ich würde den String überschreiten.
Ich muss dazu sagen, ich probiere mich erst seit einer Woche mit Python und nehme gerne Verbesserungsvorschläge an. Vielleicht kann mir ja jemand helfen. Vielen Dank im Voraus.
ich würde gerne aus einer Datei lesen, Zeile für Zeile durchgehen und die gewisse Zeichen zählen. Soweit so gut. Jedoch muss ich auch Strings in einer Zeile finden (eine Zeile aus der Datei ist ein zusammenhängender String Länge 200 also z.B. ATGCTTACGATGC) und deren Position bestimmen, also sowas wie wo und wie oft kommt 'ATG' in diesem String vor, wobei das größere Problem das wo ist, da ich nicht nur das erste oder letzte finden muss, sondern mehrere. Am besten wäre, wenn ich ein Feld hätte mit den Anfangspositonen der Substings.
Mein Ansatz ist erstmal sehr naiv, würde aber reichen, jedoch spielt der Compiler nicht mit, da er denkt ich würde den String überschreiten.
Code: Alles auswählen
def open_file():
base = [0,0,0,0]
file = open("TIS-Ecoli.txt")
possible_startCodons = []
add_startCodon = []
for i,row in enumerate(file):
if i==400:
break
for j,char in enumerate(row):
if char == 'A':
base[0]+=1
if j+2<201:
if char[j+1]=='T' and char[j+2]=='G':
add_startCodon = [j]
possible_startCodons[i] += add_startCodon
if char == 'G':
base[1]+=1
if char == 'C':
base[2]+=1
if char == 'T':
base[3]+=1
file.close()
print(base)