두 번째 파일 2에서 파일 1의 fasta 시퀀스를 바꾸는 방법은 무엇입니까?

두 번째 파일 2에서 파일 1의 fasta 시퀀스를 바꾸는 방법은 무엇입니까?

아래와 같이 두 개의 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

관련 정보