유전 정보의 표준 파일 형식인 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/'