Ich habe eine 2 Dateien. Eine ist eine Fasta-Datei, die mehrere Fasta-Sequenzen enthält, während eine andere Datei die Namen von Kandidatensequenzen enthält, die ich durchsuchen möchte (Datei Beispiel unten).AWK verwenden, um Fasta-Datei zu durchsuchen, gegeben eine zweite Datei mit Sequenznamen
seq.fasta
>Clone_18
GTTACGGGGGACACATTTTCCCTTCCAATGCTGCTTTCAGTGATAAATTGAGCATGATGGATGCTGATAATATCATTCCCGTGT
>Clone_23
GTTACGGGGGGCCGAAAAACACCCAATCTCTCTCTCGCTGAAACCCTACCTGTAATTTGCCTCCGATAGCCTTCCCCGGTGA
>Clone_27-1
GTTACGGGGACCACACCCTCACACATACAAACACAAACACTTCAAGTGACTTAGTGTGTTTCAGCAAAACATGGCTTC
>Clone_27-2
GTTACGGGGACCACACCCTCACACATACAAACACAAACACTTCAAGTGACTTAGTGTGTTTCAGCAAAACATGGCTTCGTTTTGTTCTAGATTAACTATCAGTTTGGTTCTGTTTGTCCTCGTACTGGGTTGTGTCAATGCACAACTT
>Clone_34-1
GTTACGGGGGAATAACAAAACTCACCAACTAACAACTAACTACTACTTCACTTTTCAACTACTTTACTACAATACTAAGAATGAAAACCATTCTCCTCATTATCTTTGCTCTCGCTCTTTTCACAAGAGCTCAAGTCCCTGGCTACCAAGCCATCG
>Clone_34-3
GTTACGGGGGAATAACAAAACTCACCAACTAACAACTAACTACTACTTCACTTTTCAACTACTTTACTACAATACTAAGAATGAAAACCATTCTCCTCATTATCTTTGCTCTCGCTCTTTTCACAAGAGCTCAAGTCCCTGGCTACCAAGCCATCGATATCGCTGAAGCCCAATC
>Clone_44-1
GTTACGGGGGAATCCGAATTCACAGATTCAATTACACCCTAAAATCTATCTTCTCTACTTTCCCTCTCTCCATTCTCTCTCACACACTGTCACACACATCC
>Clone_44-3
GTTACGGGGGAATCCGAATTCACAGATTCAATTACACCCTAAAATCTATCTTCTCTACTTTCCCTCTCTCCATTCTCTCTCACACACTGTCACACACATCCCGGCAGCGCAGCCGTCGTCTCTACCCTTCACCAGGAATAAGTTTATTTTTCTACTTAC
name.txt
Clone_23
Clone_27-1
Ich möchte AWK verwenden, durch die fasta Datei zu suchen und erhalten alle fasta Sequenzen für bestimmte Kandidaten, deren Namen gespeichert in eine andere Datei.
awk 'NR==FNR{a[$1]=$1} BEGIN{RS="\n>"; FS="\n"} NR>FNR {if (match($1,">")) {sub(">","",$1)} for (p in a) {if ($1==p) print ">"$0}}' name.txt seq.fasta
Das Problem ist, dass ich nur die Reihenfolge der ersten Kandidaten in name.txt extrahieren kann, wie dieses
>Clone_23
GTTACGGGGGGCCGAAAAACACCCAATCTCTCTCTCGCTGAAACCCTACCTGTAATTTGCCTCCGATAGCCTTCCCCGGTGA
Kann ich jemand helfen über einzeiligen awk zu beheben?
Sie haben die Frage radikal geändert, nachdem die Antworten gepostet wurden. Ich habe das zurückgerollt. Bitte posten Sie in diesem Fall eine neue Frage. (Und zeigen Sie, was Sie aus den Antworten, die Sie hier erhalten haben, anzupassen versucht haben) – hek2mgl
Ich kann nur 1 Frage in 90 Minuten posten. Kann ich ein neues Beispiel in der Answer-Sitzung posten? – user2993059
Nun, es empfiehlt tatsächlich, Kommentare zu verwenden oder Frage erneut zu bearbeiten (da ich Format verwenden muss, um das Beispiel zu zeigen) – user2993059