Wie konvertiere ich die drei Buchstaben Aminosäurencodes in einen Buchstabencode mit Python oder R?

8

Ich habe eine Fasta-Datei wie unten gezeigt. Ich möchte die Drei-Buchstaben-Codes in einen Buchstabencode umwandeln. Wie kann ich das mit Python oder R machen?

%Vor%

gewünschte Ausgabe

%Vor%

Ihre Vorschläge würden geschätzt werden!

    
user1725152 06.10.2012, 13:39
quelle

10 Antworten

9

Verwenden Sie ein Wörterbuch, um die Ein-Buchstaben-Codes nachzuschlagen:

%Vor%

Und eine einfache Funktion, um die Drei-Buchstaben-Codes mit einem Buchstaben-Code für die gesamte Zeichenfolge zu kombinieren:

%Vor%

Testen Sie Ihr Beispiel:

%Vor%     
Junuxx 06.10.2012 13:55
quelle
9

BioPython hat bereits eingebaute Wörterbücher, die bei solchen Übersetzungen helfen. Die folgenden Befehle zeigen Ihnen eine vollständige Liste der verfügbaren Wörterbücher:

%Vor%

Das vordefinierte Wörterbuch, nach dem Sie suchen:

%Vor%     
Henk Neefs 05.01.2014 21:55
quelle
6

Hier ist ein Weg, es in R zu tun:

%Vor%

Ergebnisse in:

%Vor%

Beachten Sie, dass ich den Variablennamen geändert habe, da Variablennamen nicht mit einer Zahl in R beginnen dürfen.

    
Sacha Epskamp 06.10.2012 14:01
quelle
6
%Vor%

Sie müssen nur die restlichen Einträge zum trans dict.

hinzufügen

Bearbeiten:

Um den Rest von trans zu machen, können Sie dies tun. Datei table :

%Vor%

Lesen Sie es:

%Vor%     
John La Rooy 06.10.2012 13:53
quelle
3

Mit R:

%Vor%     
flodel 06.10.2012 18:53
quelle
3

Sie können versuchen, Biopython zu suchen und zu installieren, da Sie eine .fasta-Datei analysieren und dann in einen Buchstabencode umwandeln. Unglücklicherweise hat Biopython nur die Funktion seq3 (im Paket Bio :: SeqUtils), die das Gegenteil von dem tut, was Sie wollen. Beispielausgabe in IDLE:

%Vor%

Leider gibt es keine "seq1" -Funktion (noch ...), aber ich dachte, das könnte Ihnen in Zukunft hilfreich sein. Soweit Ihr Problem, Junuxx ist richtig. Erstellen Sie ein Wörterbuch und verwenden Sie eine for-Schleife, um die Zeichenfolge in Dreierblöcken zu lesen und zu übersetzen. Hier ist eine ähnliche Funktion wie die, die er zur Verfügung stellt, die all-inclusive ist und auch kleinere Fälle behandelt.

%Vor%     
Wes Field 08.10.2012 22:43
quelle
3

Biopython hat eine nette Lösung

%Vor%

Für Ihr Beispiel werde ich es mit diesem einen Liner lösen

%Vor%

Sie mögen mich für diese Art von Liner kritisieren :), aber tief in meinem Herzen bin ich immer noch in PERL verliebt.

    
Ghose and co 18.06.2014 07:03
quelle
2

Eine andere Möglichkeit, dies zu tun, ist mit seqinr und iPAC Paket in R

%Vor%     
paul_dg 28.08.2015 11:19
quelle
0
%Vor%

Verwenden Sie dieses Perl-Skript, um Triplet a.a-Codes in einen einzelnen Buchstabencode umzuwandeln.

    
Kanhu charan Moharana 05.07.2013 06:51
quelle
0

Für diejenigen, die 2017 und danach hier landen:

Hier ist ein Linux-Bash-Befehl in einer einzigen Zeile, um Protein-Drei-Buchstaben-Code in einen Buchstaben-Code in einer Textdatei umzuwandeln. Ich weiß, dass das nicht sehr elegant ist, aber ich hoffe, dass dies jemandem hilft, der nach dem gleichen sucht, und einen einzeiligen Befehl verwenden möchte.

%Vor%

Lösung für die ursprüngliche Frage oben, als eine einzelne Befehlszeile:

%Vor%

Erläuterung:

[1] sed 's/.\{3\}/& /g' wird die Sequenz split. Es wird nach jedem dritten Buchstaben ein Leerzeichen hinzugefügt.

[2] Der zweite ' sed' ' Befehl in der Pipe wird die Ausgabe von oben nehmen und in einen einzelnen Buchstabencode konvertieren. Fügen Sie einen nicht standardmäßigen Rest als s/XYZ/X/g; hinzu. zu diesem Befehl.

[3] Der dritte Befehl " sed ", sed 's/ //g' , entfernt Leerzeichen.

    
Insilico 07.11.2017 15:40
quelle

Tags und Links