Analyse einer Fasta-Datei mit einem Generator (Python)

8

Ich versuche, eine große Fasta-Datei zu analysieren, und ich habe nicht genügend Speicherfehler. Einige Vorschläge zur Verbesserung der Datenverarbeitung würden geschätzt. Momentan druckt das Programm die Namen korrekt aus, aber teilweise durch die Datei bekomme ich einen MemoryError

Hier ist der Generator

%Vor%

und hier ist der Anruferstummel mehr wird hinzugefügt, nachdem dieser Teil funktioniert

%Vor%

Für diejenigen, die mit dem Fasta-Format nicht verwandt sind, hier ist ein Beispiel

%Vor%

Jeder Eintrag beginnt mit einem "& gt;" unter Angabe des Namens usw. sind die nächsten N Zeilen Daten. Es gibt kein definiertes Ende der Daten außer der nächsten Zeile mit einem "& gt;" am Anfang.

    
Lamar B 04.10.2011, 22:57
quelle

4 Antworten

11

Haben Sie daran gedacht, BioPython zu verwenden? Sie haben einen Sequenzleser , der Fasta-Dateien lesen kann. Und wenn Sie daran interessiert sind, selbst einen zu programmieren, können Sie sich den BioPython-Code .

Bearbeiten : Code hinzugefügt

%Vor%     
Hernan 04.10.2011, 23:09
quelle
7

Ein Pyparsing-Parser für dieses Format ist nur ein paar Zeilen lang. Sehen Sie sich die Anmerkungen im folgenden Code an:

%Vor%

Drucke:

%Vor%     
PaulMcG 05.10.2011 10:11
quelle
0

Ohne ein großes Verständnis davon zu haben, was Sie tun, hätte ich den Code so geschrieben:

%Vor%

Dies sammelt die Daten nach einer Startlinie bis zur nächsten Startlinie. Wenn Sie seq auf ein Array setzen, bedeutet dies, dass Sie die Verbindung bis zum letzten möglichen Moment minimieren. Ein Tupel zu ergeben macht mehr Sinn als eine Liste.

    
hughdbrown 05.10.2011 02:32
quelle
0
%Vor%     
Dolittle Wang 23.12.2013 08:10
quelle

Tags und Links