Ich habe zwei Codes, die die gleiche Arbeit verrichtet haben wie ich, aber trotzdem habe ich keinen nützlichen oder besseren Code für meinen Datensatz bekommen, um ihn für mich nützlich zu machen. Zuerst möchte ich klarstellen, was ich mache.
Ich habe 2 TEXT
files, einen Namen als input_num
und zweitens benannt als input_data
, da es klar ist, dass input_num.txt
eine Zahl enthält und input_data
Daten enthält, diese 2 Dateien sind 8 bis 10 mb, lass mich dir etwas von ihrem Teil zeigen,
Das ist 'input_num.txt'
und dieses input_data.txt
Diese 2 sind Teile ihrer Textdateien, input_data.txt
haben die letzte Spalte, die ASA5
enthält und so weiter, das sind Daten von input_num.txt
, also überprüft das Programm zuerst die letzte Spalte von >56|61|83|92|ASA5
was ist ASA5
als goto input_num.txt
, die 5
haben, sie enthalten einen Wert in input_num.txt
wie 4
im obigen Beispiel, also komm zurück zu den input_data.txt
gehe zu den Wörtern und schneide sie auf 4,
Ich habe 2 Codes dafür: 1 ist
%Vor%und der zweite ist
%Vor% So weit ich aus der Beschreibung Ihres Problems mit dem ersten Code verstehen konnte, wollen Sie die ersten N
Buchstaben in der Ausgabe haben, während Sie eigentlich alles außer den ersten N
Buchstaben erhalten. Dies kann wahrscheinlich durch Ändern von
bis
%Vor%Ich denke auch, dass die verwendeten regulären Ausdrücke nicht vollständig korrekt sind. Ich empfehle folgendes für die Nummern:
%Vor%und das Folgende für die Daten:
%Vor% Beachten Sie jedoch, dass die Idee immer noch fehlerhaft ist, weil Sie versehentlich mehr als eine Sequenz ändern können, wenn Sie replace
ausführen. Auch diese Methode ist speicherineffizient, da die Dateien als eine Zeichenfolge in den Speicher gelesen werden. Ich schlage vor, einen iterativen Parser für die Daten zu verwenden, wie die unten genannten.
Wenn ich dieses Problem lösen müsste, würde ich pyteomics
verwenden, um FASTA-Dateien zu lesen und zu schreiben ( weil ich es geschrieben habe und immer griffbereit habe.
Das Format von input_num.txt
ist schrecklich, daher denke ich, dass der Code aus Ihrem ersten Beispiel der beste ist, um die Informationen zu extrahieren. Ich habe jedoch ein paar Korrekturen vorgenommen:
Andererseits, da Ihre Daten eher wie DNA-Sequenzen aussehen und Pyteomics für die Proteomik geeignet ist, könnte es sinnvoller sein, BioPython.SeqIO
zu verwenden. :
Tags und Links python python-2.7