我有一个包含不同标题的fasta文件。
>Ar000001
>Ar000002
>Ar000003
等等..现在我想把名字改成像这样的东西
>Ar000001 => >Bra000001
>Ar000002 => >Bra000002
>Ar000003 => >Bra000003
等等.. 我写了一个perl脚本来做到这一点,但它没有输出任何东西。我做错了吗。
open(INFILE, "test.fasta") or die "Error opening input file";
open(OUTFILE, ">", "test_out.fasta") or die "Error creating output file";
my $count = 1;
while (my @line = <INFILE>)
{
if (my $line[$count] =~ /^>/)
{
print OUTFILE ">Bra%.5d\n", $count;
$count ++;
}
}
除了更改fasta标题名称并输出到新文件之外,我如何在每个fasta标题下包含序列。 提前致谢.... 众议员
答案 0 :(得分:1)
直接来自命令行
perl -pe's/^>Ar/>Bra/' test.fasta > test_out.fasta
答案 1 :(得分:0)
听起来这就是你真正需要做的事情:
open(my $INFILE, "<", "test.fasta") or die "Error opening input file: $!";
open(my $OUTFILE, ">", "test_out.fasta") or die "Error creating output file: $!";
while (my $line = <$INFILE>)
{
$line =~ s/^>Ar/>Bra/;
print $OUTFILE $line;
}
即。将所有出现的“^&gt; Ar”替换为“&gt; Bra”,并将文件中的其他内容保持不变。