2016-04-12 2 views
1

Ich arbeite mit einer Datei, die Tausende von Proteinen in einem Organismus enthält. Ich habe einen Code, der es mir ermöglicht, jedes einzelne Protein einzeln durchzugehen und die Häufigkeit von Aminosäuren in jedem zu bestimmen. Wäre es möglich, meinen aktuellen Code zu ändern, um alle Aminosäuren gleichzeitig zu bestimmen?Arbeiten mit Aminosäuren

+0

Sie könnten mehr geben wollen, wie es im Ergebnis aussehen soll. Meine erste Idee besteht darin, Ihre Daten nach 'Proteinstelle' in einem Wörterbuch zu gruppieren und dann eine Liste für diesen Ort mit den zugehörigen Häufigkeiten zu verwenden. Aber ich habe keine Ahnung, wovon du sprichst und wie es eigentlich dargestellt werden muss, um einen biologischen Sinn zu ergeben. –

Antwort

1

IIUC, Sie erfinden das Rad ein wenig neu: BioPython enthält Dienstprogramme für den Umgang mit Dateien in verschiedenen Formaten (FASTA in Ihrem Fall) und einfache Analyse. Für Ihr Beispiel, würde ich so etwas wie folgt verwenden:

from Bio import SeqIO  
from Bio.SeqUtils.ProtParam import ProteinAnalysis 

for seq_record in SeqIO.parse("protein_x.txt", "fasta"): 
    print(seq_record.id), ProteinAnalysis(repr(seq_record.seq)).get_amino_acids_percent().items() 
0

Die Antwort ist ja, aber uns Ihren Code ohne zeigen, wir nicht viel Feedback geben kann. Im Wesentlichen möchten Sie, dass Ihre Zählungen der Aminosäuren zwischen dem Lesen von FASTA-Aufzeichnungen bestehen bleiben. Wenn Sie Wahrscheinlichkeiten haben wollten, dann summieren Sie sie außerhalb der Schleife und teilen sich nur am Ende. Dies wird trivialerweise ohne etwas wie ein "Zählwörterbuch" in Python oder durch Erhöhen eines Wertes in einem Hash/dict erreicht. Es gibt auch sehr wahrscheinlich viele Befehlszeilen-Tools, die dies für Sie tun, da alles, was Sie wollen, ist Zeichenanzahl zählt für jede Zeile nicht mit einem '>' in der Datei beginnen.

Zum Beispiel für eine Datei, die klein:

grep -v '^>' yourdata.fa | perl -pe 's/(.)/$1\n/g' | sort | uniq -c