我确信这是一件容易做的事情,但我的生物信息学经验非常有限。
我有许多 -100,000- FASTA 文件,其中包含相同 12 个物种的不同基因的比对。每个文件看起来像这样:
>dmel
ACTTTTGATACAATTAAC
>dsim
AATCCCAGACAAATTAAG
>dsec
AGTTTTGCAATGGTAAAT
>dere
TGGAATATTAGACGAATT
...
并非所有文件都以相同的方式排序,我希望它们都是。如果这更容易,它们可以按字母顺序排序,只要所有文件均等排序,它们的排序方式并不重要。按字母顺序应该是这样的:
>dere
TGGAATATTAGACGAATT
>dmel
ACTTTTGATACAATTAAC
>dsec
AGTTTTGCAATGGTAAAT
>dsim
AATCCCAGACAAATTAAG
...
任何自动执行此操作的脚本将不胜感激。
编辑:我一直在使用使用 sed 的 shell 脚本,该脚本有效但有问题。当文件数量不是很大时,它可以工作,但在这种特殊情况下,它会创建具有不同名称的重复文件。脚本内容如下:
#!/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。每个块的文件。文件。问题是有时它会复制一个文件但名称不同。我相信大多数情况下都会有一种更简单的方法,不会出现重复错误。