Укажите, что представляет собой каждый sd

Именно так работает fold.Вы никогда раньше не заполняли его, потому что раньше у вас не было строк такой длины. Сворачивание происходит по каждой строке отдельно. Итак, если длина строки не является точным кратным размеру, до которого вы сворачиваете, вы получите такой вывод. Например:

$ perl -le 'for (0..2){print "A" x 12}' 
AAAAAAAAAAAA
AAAAAAAAAAAA
AAAAAAAAAAAA
$ perl -le 'for (0..2){print "A" x 12}' | fold -w 6
AAAAAA
AAAAAA
AAAAAA
AAAAAA
AAAAAA
AAAAAA
$ perl -le 'for (0..2){print "A" x 12}' | fold -w 7
AAAAAAA
AAAAA
AAAAAAA
AAAAA
AAAAAAA
AAAAA

На самом деле это не проблема. Это все еще действующий файл fasta, но он не очень красивый. В качестве обходного пути вы можете взять скрипты FastaToTblи TblToFasta, которые я разместил ранее , и выполнить:

$ FastaToTbl input.fasta | TblToFasta 
>m64093_191209_130050/133911/ccs_64 
TTCAGGCTGTGTTCCATTTGATTTAAAATCAAATAATTTCATTCGCGTCAGAACACCTGG
TTTCACGACCATAAATAATTTACCAGTGAATCGAGGCTCAATTATAGATCCTCGGACGCG
AGTTCTCGGTTGACGAGTGGGATTCGAATTATTTTTCACCGAAAATTTTAGTCGACGAGT
TCAGATAAATTTGTTCGGGATAAAATCATCTGAGTAGGTCGGGCTTCTGAATTTCGTATT
CTTGCGAGCAATGAATTTTAAATAATCATCGGACATACCAATTTTTGGAACAATAATGTT
CCGAACATCCCGAAAATATAGGAAGAGCCCGGATAGATAAAAATAAACAC

Скрипт TblToFastaгарантирует, что выходные данные будут стандартными 60bp на строку. Если вам действительно нужно 50 вместо этого, вы можете сделать (это предполагает GNUsed):

$ FastaToTbl input.fasta | sed -E 's/^/>/;s/\t/\n/ ' | sed -E 's/(.{50})/\1\n/g'
>m64093_191209_130050/133911/ccs_64
TTCAGGCTGTGTTCCATTTGATTTAAAATCAAATAATTTCATTCGCGTCA
GAACACCTGGTTTCACGACCATAAATAATTTACCAGTGAATCGAGGCTCA
ATTATAGATCCTCGGACGCGAGTTCTCGGTTGACGAGTGGGATTCGAATT
ATTTTTCACCGAAAATTTTAGTCGACGAGTTCAGATAAATTTGTTCGGGA
TAAAATCATCTGAGTAGGTCGGGCTTCTGAATTTCGTATTCTTGCGAGCA
ATGAATTTTAAATAATCATCGGACATACCAATTTTTGGAACAATAATGTT
CCGAACATCCCGAAAATATAGGAAGAGCCCGGATAGATAAAAATAAACAC

1
12.07.2021, 20:12
0 ответов

Теги

Похожие вопросы