![이름 목록 파일의 문자열을 다른 파일에 추가하는 방법은 무엇입니까?](https://linux55.com/image/85522/%EC%9D%B4%EB%A6%84%20%EB%AA%A9%EB%A1%9D%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EB%8B%A4%EB%A5%B8%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
유전 정보의 표준 파일 형식인 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/'