
다음과 같은 fasta 파일이 있습니다.
grep -A 7 -B 4 COSN229024 wrong.fasta
:
>COSN9627597
CGCTGGGCTCGCCTCCAGCCTGGCCTGCATTCCCAAATCTA
>COSN8175610
CAAGAGAGAAATTCTGACACCTCCTAAGTCTACCAAGCTTT
>COSN229024
CACTATAAAAATATTAAGAGA
>COSN18183003
TGTGTTTGTGATTGATGT
>COSN18487588
TGCTTACCCCTTAAATGCAACTTATTTACTTTTACCACTGT
>COSN1681903|COSN1178783
CTTCCCAACTCATGAGTTCTGAATTCCAATACGTCTCCATT
잘못된 .fasta에서 >COSN229024 시퀀스의 약 절반이 분해되어 새로운 시퀀스 >COSN18183003을 형성하는 것을 관찰했습니다. 결국, 해체 이후 파스타헤드 전체의 질서가 엉망이 됐다. 그래서 >COSN229024의 깨진 부분을 error.fasta의 >COSN229024에 다시 넣은 다음 헤더를 전송/교체하고 싶습니다. 나는 그것을 사용했다 grep -A 7 -B 4 COSN229024 wrong.fasta
. 내가 원하는 출력은 다음과 같습니다.
>COSN9627597
CGCTGGGCTCGCCTCCAGCCTGGCCTGCATTCCCAAATCTA
>COSN8175610
CAAGAGAGAAATTCTGACACCTCCTAAGTCTACCAAGCTTT
>COSN229024
CACTATAAAAATATTAAGAGATGTGTTTGTGATTGATGT
>COSN18183003
TGCTTACCCCTTAAATGCAACTTATTTACTTTTACCACTGT
>COSN18487588
CTTCCCAACTCATGAGTTCTGAATTCCAATACGTCTCCATT
>COSN1681903|COSN1178783
........so on and so forth
답변1
awk
다음을 사용하여 파일을 복구할 수 있습니다.
awk '/^>/{if(x)t=$0;else print"\n"$0} !/^>/{printf"%s",$0;if(t)print"\n"t} /^>COSN229024/{x=1}' < wrong.fasta > good.fasta
나중에 파일의 시작과 끝을 수동으로 수정해야 할 수도 있습니다.