ich bin Pythonanfänger und stehe irgendwie vor einem Problem, was ich die letzten Tage nicht geschafft habe zu lösen. Sicher ist es wieder nur ein kleiner Denkfehler oder so etwas. Es wäre trotzdem sehr hilfreich, wenn mir jemand auf die Sprünge helfen könnte.
Zu meinem Problem:
Ich habe ein fasta.file welches in meinem Skript eingelesen und dementsprechend umgewandelt wird, dh nur die benötigten Sachen werden gefiltert. Der 'Filter' dh bestimmte Sequenzen ,welche ich aus dem fasta.file benötige sind in einem anderen File gespeichert. All dies ist bis dahin auch kein Problem. Es werden die gewünschten Sequenzen mit ID's jeweils herausgesucht. Das Ergebnis kann ich komplett mit der print-Methode auf dem Bildschirm wiedergeben.
Jedoch bekomme ich beim schreiben in die neue Datei nur die Sequenzen ausgegeben. Ich benötige aber zusätzlich noch vor jeder neuen Sequenz ein ">" und die dazugehörige ID (current ID). JEdoch bekomme ich dann nur eine Fehlermeldung, wenn ich dies versuche (nur zur Erklärung ein fasta.file hat folgendes Aussehen(fiktives Bsp)
>Al_12563
AKNRIGNMROSMWLGHK
>Al_64782
DRIFMG....
mein Code:
Code: Alles auswählen
f = open("Al_cbl.parsed") #Datei aus der die zu suchenden Sequenzen vorhanden sind
ID2sequence = {} #dict erstellen
for line in f:
line = line.replace("\n", "") #ersetze jede Kopfzeile
ID2sequence[line] = ""
f = open("Ara_ly_1.6_pr.fasta") #Datei in der gesucht werden soll und gefiltert
currentID = "" # ID ist null
for line in f: #wenn line in fasta
if ">" in line:
line = line.replace("\n", "")
line = line.replace(">", "")
currentID = line
else:
if ID2sequence.has_key(currentID):
ID2sequence[currentID] += line.replace("\n", "")
g = open("Al.blastout","w") # neue Datei in welche geschrieben wird
for ID in ID2sequence.keys():
g.write(ID2sequence[ID]+"\n") # gibt Sequenzen in jeder neuen Zeile aus
g.close()
Vielen Dank schonmal im Voraus.
Gruß
Martina