Я уверен, что это легко сделать, но у меня очень ограниченный опыт в биоинформатике.
У меня есть много 100 000 файлов FASTA, содержащих выравнивания разных генов одних и тех же 12 видов. Каждый файл выглядит примерно так:
>dmel
ACTTTTGATACAATTAAC
>dsim
AATCCCAGACAAATTAAG
>dsec
AGTTTTGCAATGGTAAAT
>dere
TGGAATATTAGACGAATT
...
Не все файлы упорядочены одинаково, и я бы хотел, чтобы они были такими. Их можно отсортировать по алфавиту, если это проще, не имеет значения, как они упорядочены, если все файлы отсортированы одинаково. По алфавиту должно быть так:
>dere
TGGAATATTAGACGAATT
>dmel
ACTTTTGATACAATTAAC
>dsec
AGTTTTGCAATGGTAAAT
>dsim
AATCCCAGACAAATTAAG
...
Любой сценарий, который делает это автоматически, будет высоко оценен.
Изменить: я использовал сценарий оболочки с использованием sed, который работает, но проблематичен. Это работает, когда количество файлов не так велико, но в этом конкретном случае он создает дубликаты файлов с разными именами. Сценарий гласит:
#!/bin/bash
echo
for i in {0..114172}; do
#sed -e '$ d' bloque.fasta.trim$i >b0.fasta.trim
#sed -e 's/ /ñ/g' <b0.fasta.trim >b1.fasta.trim
sed -e 's/ /ñ/g' <bloque.fasta.trim$i >b1.fasta.trim
tr "\n" " " <b1.fasta.trim >b2.fasta.trim
sed -e 's/ //g' < b2.fasta.trim >b3.fasta.trim
sed -e 's/>/\n>/g' < b3.fasta.trim >b4.fasta.trim
sed '1d' b4.fasta.trim >b5.fasta.trim
sort b5.fasta.trim >b6.fasta.trim
sed -e 's/ñ/\n/g' < b6.fasta.trim >b7.fasta.trim$i
done
Неупорядоченные файлы называются bloque.fasta.trim, этот скрипт создает группу файлов с именем b7.fasta.trim$, которые должны создать один файл b7. файл для каждого блока. файл. Проблема в том, что иногда он дублирует файл, но называет их по-разному. Я уверен, что есть более простой подход, который не делает ошибок дублирования.