我正在尝试使用之前在此论坛上发布的AWK脚本。我试图将包含多个DNA序列的大型FASTA文件拆分为单独的FASTA文件。我需要将每个序列分成自己的FASTA文件,每个新FASTA文件的名称必须是原始的大型multifasta文件中的DNA序列的名称(>之后的所有字符)。
我尝试了这个在stackoverflow上找到的脚本:
awk '/^>chr/ {OUT=substr($0,2) ".fa"}; OUT {print >OUT}' your_input
效果很好,但DNA序列直接在文件名后开始 - 没有空格。 DNA序列需要从一个新的行开始(常规的FASTA格式)。
我很感激任何帮助来解决这个问题。 谢谢!!
答案 0 :(得分:0)
你的意思是这样吗?
awk '/^>chr/ {OUT=substr($0,2) ".fa";print " ">OUT}; OUT{print >OUT}' your_input
为每个“chromosome / sequence / thing”创建的新文件在开头是否为空行?
答案 1 :(得分:0)
我认为这应该有用。
awk '/^>chr/ {OUT=substr($0,2) ".fa"}; {print >> OUT; close(OUT)}' Input_File
答案 2 :(得分:0)
希望这个perl脚本可以提供帮助。
#!/usr/bin/perl
open (INFILE, "< your_input.fa")
or die "Can't open file";
while (<INFILE>) {
$line = $_;
chomp $line;
if ($line =~ /\>/) { #if has fasta >
close OUTFILE;
$new_file = substr($line,1);
$new_file .= ".fa";
open (OUTFILE, ">$new_file")
or die "Can't open: $new_file $!";
}
print OUTFILE "$line\n";
}
close OUTFILE;