아래와 같이 두 개의 fasta 파일이 있습니다.
파일 1:
>Contig_1:90600-91187
AAGGCCATCAAGGACGTGGATGAGGTCGTCAAGGGCAAGGAACAGGAATTGATGACGGTC
>Contig_98:35323-35886
GACGAAGCGCTCGCCAAGGCCGAAGAAGAAGGCCTGGATCTGGTCGAAATCCAGCCGCAG
>Contig_24:26615-28387
GCTGCGGCGCTGATCCTGGCGGCCCGCGCCGAGGAGATCGCCCGTTTGGAGCGCGGCGAA
파일 2:
>Contig_1:90600-91187
GACCGTCATCAATTCCTGTTCCTTGCCCTTGACGACCTCATCCACGTCCTTGATGGCCTT
>Contig_24:26615-28387
TTCGCCGCGCTCCAAACGGGCGATCTCCTCGGCGCGGGCCGCCAGGATCAGCGCCG
두 파일의 fasta 헤더는 동일하지만 순서가 다릅니다. 아래와 같이 File1의 File2 시퀀스를 바꿔야 합니다.
예상되는 결과:
>Contig_1:90600-91187
GACCGTCATCAATTCCTGTTCCTTGCCCTTGACGACCTCATCCACGTCCTTGATGGCCTT
>Contig_98:35323-35886
GACGAAGCGCTCGCCAAGGCCGAAGAAGAAGGCCTGGATCTGGTCGAAATCCAGCCGCAG
>Contig_24:26615-28387
TTCGCCGCGCTCCAAACGGGCGATCTCCTCGGCGCGGGCCGCCAGGATCAGCGCCG
명령을 사용해 보았지만 cat
모든 시퀀스가 연결됩니다. 그러나 File1 시퀀스를 File2 시퀀스로 바꿔야 합니다.
답변1
그리고 awk
:
awk 'NR == FNR { if(hdr){ hold[hdr]=$0; hdr="" }; if(/^>/) hdr=$0; next }
($0 in hold){ print $0 ORS hold[$0]; getline; next }
{ print }' file2 file1