como salvar uma linha como um arquivo com nomes de números de contadores

como salvar uma linha como um arquivo com nomes de números de contadores

Eu tenho um arquivo como este:

VLLKHCGRMRRFLIRNLRSFLSHISLNTLKSQESKV
LLSSQAKMYFSLRENFYLEGGIETTFVPSGEVYSRSFLKGISRI
LNPNALPTSPISENWVMVRPIVAQISLRRMTPSAIGAQTEMA
MKLELLLAFKYLIPKRKRLSSSIVSAFSMGIVALVVWLSVVFMSVIHGLQQRWVGDLASLHSSIRIEPSDKYYESYYYQIDSHAEASQYIYKTIGEKLLCEQTDPYDPDVDFLLPEAFPDPEFSDNGEMIDPVRTANERMLSLFSSRKGSFVEFEEGMGHVHMDRAFRGHKGEPRALSQYIAYSSDILYQQRMLPFEETDYSTEVLNRFNASSEGWLADFLVLQEKFRGMSVILPVVYRDQGYRVGDTASLSVFSVKKEGEVRFPLRVIGFYNPGVSPFGGKTIFIDKELAASIRSESEGLGMHNGWQVFLPSVQDIPVMKQSIQKIFKESEVSSYWEISSLYDYEFFKPILDQLQSDQVLFSIVSFIVLIVACSNIVTMSILLVNNKKKEIGILKAMGVSSSRLQLVFGLCGACSGLVGALLGSILAALTLKNLGILTHWLSKLQGREAFNPSFFGEQLPQDFHLPTVICLSLGALVLAAISGAIPAQHVARMQVSDILKSE
MVILVEAKHISKVIQQQDVCIPILKDVSFQLHAGEVVAITGASGSGKSSLLHLLGTLDQPSSGQILFFGKQVRREELPIFRNCRIGFIFQNFYLLEDDSVINNVLMPAQIARKDTGQKSKARERALALLESVGLVDRRDEKGSLLSGGEKQRVAIARALMNDPEIVLADEPSGNLDHRTADTIHELLLALAEKHRGVLIVTHDRELAEKCHREEILRDGTLMQRQ
LKDTVTPNYHPGMIRRFRPLTQTSTRSGYHKSE
LHVSCLEWLSMITFTRTPLRIAWARAKKNSGLKKIYIKTKILSVAWLIAFKIIFDAALGIKRWIGM
LADPVTTVWKSANIVFLCWRVLPLVRRKTTLEF
LARRRSGSFRGGRRSVFGSLVFSLGSGEHLLGDGY
VGARVRIDANRLSIPSMIVFIANNRRGLWVTIPF
VEEVGSGGLKRSLYFKEEEPCTLITLRSWLEKKET

Quero que cada linha do arquivo seja salva em um arquivo próprio cujo nome seja o número da linha do original ( 1, 2, 3, etc.). Também preciso adicionar uma linha antes de cada sequência, começando com a >e depois com o número da linha.

Então, 1.txtseria:

>1
VLLKHCGRMRRFLIRNLRSFLSHISLNTLKSQESKV

e 2.txt:

>2
LLSSQAKMYFSLRENFYLEGGIETTFVPSGEVYSRSFLKGISRI

e assim por diante. Como posso fazer isso?

Responder1

Você poderia usar awk:

awk '{print > NR".txt"}' file

NRé o número da linha atual em awk, então o comando acima imprimirá cada linha em um arquivo cujo nome é o número da linha atual mais .txt.

Se você realmente deseja que as sequências tenham um >prefixo, use isto:

awk '{print ">"$0 > NR".txt"}' file

E se você quiser o formato FASTA correto (cada sequência precedida por uma linha começando com >e um nome de sequência), use isto:

awk '{printf ">%s\n%s\n",NR,$0 > NR".txt"}' file

Isso produzirá arquivos como:

$ cat 3.txt 
>3
LNPNALPTSPISENWVMVRPIVAQISLRRMTPSAIGAQTEMA

informação relacionada