Apenas uma quebra de linha no arquivo fasta

0

Eu tenho um arquivo fasta como:

grep -A 7 -B 4 COSN229024 wrong.fasta :

>COSN9627597
CGCTGGGCTCGCCTCCAGCCTGGCCTGCATTCCCAAATCTA
>COSN8175610
CAAGAGAGAAATTCTGACACCTCCTAAGTCTACCAAGCTTT
>COSN229024
CACTATAAAAATATTAAGAGA
>COSN18183003
TGTGTTTGTGATTGATGT
>COSN18487588
TGCTTACCCCTTAAATGCAACTTATTTACTTTTACCACTGT
>COSN1681903|COSN1178783
CTTCCCAACTCATGAGTTCTGAATTCCAATACGTCTCCATT

Eu observei que, no wrong.fasta, aproximadamente metade da sequência de > COSN229024 se quebra e forma uma nova sequência > COSN18183003. No final, toda a ordem do cabeçalho do fasta estraga após o término. Então, eu quero colocar a parte de quebra de > COSN229024 de volta no > COSN229024 em wrong.fasta e então transferir / substituir o cabeçalho. Eu usei grep -A 7 -B 4 COSN229024 wrong.fasta . Minha saída desejada seria assim:

>COSN9627597
CGCTGGGCTCGCCTCCAGCCTGGCCTGCATTCCCAAATCTA
>COSN8175610
CAAGAGAGAAATTCTGACACCTCCTAAGTCTACCAAGCTTT
>COSN229024
CACTATAAAAATATTAAGAGATGTGTTTGTGATTGATGT
>COSN18183003
TGCTTACCCCTTAAATGCAACTTATTTACTTTTACCACTGT
>COSN18487588
CTTCCCAACTCATGAGTTCTGAATTCCAATACGTCTCCATT
>COSN1681903|COSN1178783
........so on and so forth
    
por Waqasuddin Khan 27.04.2016 / 11:17

1 resposta

1

Você pode corrigir o arquivo usando awk da seguinte forma:

awk '/^>/{if(x)t=$0;else print"\n"$0} !/^>/{printf"%s",$0;if(t)print"\n"t} /^>COSN229024/{x=1}' < wrong.fasta > good.fasta

Depois disso, você provavelmente precisará corrigir o início e o final do arquivo manualmente.

    
por 27.04.2016 / 12:30