Ich möchte bestimmte Zeilen und die folgenden Sequenzdaten extrahieren.Wie verwende ich Linux-Befehl zum Extrahieren von Sequenzdaten
Es gibt eine ecoli.ffn
Datei wie folgt:
$head ecoli.ffn
>ecoli16:g027092:GCF_000460315:gi|545267691|ref|NZ_KE701669.1|:551259-572036
ATGAGCCTGATTATTGATGTTATTTCGCGT
AAAACATCCGTCAAACAAACGCTGATTAAT
>ecoli16:g000011:55989:gi|218693476|ref|NC_011748.1|:1128430-1131042
GTGTACGCTATGGCGGGTAATTTTGCCGAT
>ecoli16:g000012:55989:gi|218693476|ref|NC_011748.1|:1128430-1131042
GTGTACGCTATGGCGGGTAATTTTGCCGAT
CTGACAGCTGTTCTTACACTGGATTCAACC
CTGACAGCTGTTCTTACACTGGATTCAACC
und ein index.txt folgend
$head index.txt
g000011
g000012
, was ich tun möchte, ist "index.txt aus ecoli.ffn extrahieren", Der ideale Ausgang ist:
>ecoli16:g000011:55989:gi|218693476|ref|NC_011748.1|:1128430-1131042
GTGTACGCTATGGCGGGTAATTTTGCCGAT
>ecoli16:g000012:55989:gi|218693476|ref|NC_011748.1|:1128430-1131042
GTGTACGCTATGGCGGGTAATTTTGCCGAT
CTGACAGCTGTTCTTACACTGGATTCAACC
CTGACAGCTGTTCTTACACTGGATTCAACC
Wie kann ich das tun?
Danke, guodongxiaren. Aber nur die erste Zeile der Daten wird auf Ihre Art extrahiert. Eigentlich ist die wirkliche ecoli.ffn ist tatsächlich so: '> ecoli16: g027092: GCF_000460315: gi | 545267691 | ref | NZ_KE701669.1 |: 551.259-572.036 ATGAGCCTGATTATTGATGTTATTT CGCGTAAAACATCCGTCAAACAAAC GCTGATTAATGGATTCAACCGGATT > ecoli16: g000011: 55989: gi | 218693476 | ref | NC_011748.1 |: 1.128.430-1.131.042 GTGTACGCTATGGCGGGTAATTTTG CCGATCTGACAGCTGTTCTTACACT GGATTCAACCGGATTCAACCGGATT > ecoli16: g000012: 55989: gi | 218693476 | ref | NC_011748.1 |: 1.128.430-1.131.042 GTGTACGCTATGGCGGGTAATTTTG CCGATCTGACAGCTGTTCTTACACT ' – Ming
einige Vorschläge:' BEGIN {flag = 0} 'ist nutzlos und kann entfernt werden. '{if ($ 2 == i) {print $ 0; flag = 1;}' kann als '$ 2 == i {print; flag = 1} 'ähnlich für den nächsten Block. Egal, ich denke nicht, dass dies die richtige Antwort für die Frage ist. – karakfa