遺伝情報の標準ファイル形式である fasta ファイル (seq.fa) があります。
>TR1|c0_g1_i1
GTCGAGCATGGTCTTGGTCATCTTCCTTTCAAAGAA
>TR6|c0_g1_i1
GTGGAATATCGCCAGTGACCATCACTGATTAACCTG
タイトル("> TR ..."という名前)と一致する名前のファイルもあります。
TR1|c0_g1_i1 scaf0432344_50037.734_wgs
TR6|c0_g1_i1 scaf0159424_10142.072_wgs
seq.faの ">"ファイルの後の最初の識別子として、 "scaf0 ..."識別子が必要です。
次のように、各シーケンスに固有の「TR ...」識別子を保持したいと思います。
>scaf0432344_50037.734_wgs|TR1|c0_g1_i1
GTCGAGCATGGTCTTGGTCATCTTCCTTTCAAAGAA
>scaf0159424_10142.072_wgs|TR6|c0_g1_i1
GTGGAATATCGCCAGTGACCATCACTGATTAACCTG
名前ファイルの順序はシーケンスファイルの順序と同じです!
私は訓練を受けておらず、私が何をしているのかわからないので、何も試みませんでした。 :/
答え1
そしてawk
awk 'FNR==NR{
a[">"$1]=$2;next
}
$1 in a{
sub(/>/,">"a[$1]"|",$1)
}1' file2 seq.fa
a
file2からscaf値を取得し、index配列に保存します">"$1
。
$1
seq.faが配列のインデックスである場合は、a
それを$1
scaf値に置き換えます。a[$1]
>
その後、すべての行を印刷します。seq.fa
答え2
変形として
join <(paste - - <sqa.fa | cut -c2-) name -o 2.2,1.1,1.2 |
sed 's/^/>/;s/\s/|/;s/\s/\n/'