以下のように2つの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