fasta 文件中只有一个换行符

fasta 文件中只有一个换行符

我有一个 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。最终,整个fasta头的顺序在解散后就乱了。因此,我想将 >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

之后,您可能还需要手动修复文件的开头和结尾。

相关内容