объединить мульти fasta последовательности [закрыто]

-2
23.01.2017, 10:16
1 ответ

Это сценарий Awk:

#!/usr/bin/awk -f

/^>/    { header = $0 }
!/^>/   { sequence[header] = sequence[header] $0 }

END {
    for (head in sequence) {
        printf("%s\n%s\n", head, sequence[head])
    }
}

Он анализирует весь файл Fasta в памяти, объединяя все данные последовательности с идентичными заголовками. В конце он выведет данные.

Обратите внимание, что этот подход не подходит для больших файлов Fasta и, безусловно, полностью нарушит работу файлов размером с геном (недостаточно памяти). Для лучшего подхода в этих случаях можно было бы вместо этого рассмотреть возможность хранения проанализированных данных в файлах, которые в конце объединяются. Однако я не смотрел на реализацию этого.

Чтобы запустить сценарий:

$ awk -f ./script.awk file.fa
>1
aagg
>2
cctag
>3
tt
>4
atc
0
28.01.2020, 05:18

Теги

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