Re: Suchen/ersetzen mit zwei Dateien
Hallo Bernhard!
Bernhard Kleine wrote:
> ich habe in einer Datei GnRHs.fasta 185 Einträge folgender Form:
>
>>gi|254825|gb|AAB63599.1| gonadotrophin-releasing hormone;
> MDLSSKTVVQVVMLALIAQVTFSQHWSYGWLPGGKRSVGELEATIRMMDTGGVMALPEETGAHIPERLRP
> YDVMSKKRMPHK
>
> in einer zweiten Datei names.txt sind 185 Einträge wie z.B.:
> GnRH-1 Oncorhynchus masou |cherry salmon|fish| gi|254825|gb|AAB63599.1|
>
> Ich möchte jetzt in GnRHs.fasta jeweils die erste Zeile durch den Namen
> des entsprechenden Tieres
>>GnRH-1 Oncorhynchus masou |cherry salmon|fish|
>
> ersetzen.
>
> Zweitens möchte ich die entstehende neue Datei nach dem zweiten plus
> dritten Wort der neuen ersten Zeile sortieren.
Das müsste mit paste, sort, cut oder awk machbar sein. Eventuell kannst du
auch join verwenden, um die Dateien anhand einer ID-Spalte zusammenzufügen.
Angenommen, deine Einträge fangen nicht mit > an und sind in einer Zeile
und mit TAB getrennt, dann in etwa so:
join -t ' ' -1 2 -2 1 b.txt a.txt | cut -f2,3 | sort -t ' ' -k 2,3
^--TAB (hab es grad mal mit ctrl+v-tab auf der Kommandozeile
eingegeben). Das cut schneidet das join-Feld hinterher ab.
Ansonsten musst du vorher noch mal die > wegparsen/Zeilen zusammenführen,
z.B. mit:
sed -e 's/\n//g' -e 's/</\n/g' a.txt
Mein Input (je zwei Zeilen)
a.txt:
gi|254825|gb|AAB63599.1| gonadotrophin-releasing
hormone;MDLSSKTVVQVVMLALIAQVTFSQHWSYGWLPGGKRSVGELEATIRMMDTGGVMALPEETGAHIPERLRPYDVMSKKRMPHK
gi|254826|gb|AAB63599.1| gonadotrophin-releasing
hormone;MDLSSKTVVQVVMLALIAQVTFSQHWSYGWLPGGKRSVGELEATIRMMDTGGVMALPEETGAHIPERLRPYDVMSKKRMPHK
b.txt:
GnRH-1 Oncorhynchus2 masou |cherry salmon|fish| gi|254825|gb|AAB63599.1|
GnRH-1 Oncorhynchus1 masou |cherry salmon|fish| gi|254826|gb|AAB63599.1|
ergibt dann:
GnRH-1 Oncorhynchus1 masou |cherry salmon|fish| gonadotrophin-releasing
hormone;MDLSSKTVVQVVMLALIAQVTFSQHWSYGWLPGGKRSVGELEATIRMMDTGGVMALPEETGAHIPERLRPYDVMSKKRMPHK
GnRH-1 Oncorhynchus2 masou |cherry salmon|fish| gonadotrophin-releasing
hormone;MDLSSKTVVQVVMLALIAQVTFSQHWSYGWLPGGKRSVGELEATIRMMDTGGVMALPEETGAHIPERLRPYDVMSKKRMPHK
Wenn es das schon sein sollte, ansonsten kannst du es ja noch modifizieren.
Gruß,
--
Martin Weis
PGP-Key: http://datenroulette.de/pgp.php
Reply to: