【问题标题】:matching a header in fasta file and naming with new names匹配 fasta 文件中的标头并使用新名称命名
【发布时间】:2013-04-19 07:32:17
【问题描述】:

我有一个类似这样的不同标题的 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 标头下也包含序列。 提前致谢.... 乌彭德拉

【问题讨论】:

  • oneliner 为此:perl -pi -e 's/&gt;Ar([0-9]{6})/&gt;Bra$1/g' test.fasta

标签: perl header fasta


【解决方案1】:

直接从命令行

perl -pe's/^>Ar/>Bra/' test.fasta > test_out.fasta

【讨论】:

  • 我认为他们想要在输出中添加一个雪佛龙; 's/^>Ar/>文胸/'
【解决方案2】:

听起来这就是你真正需要做的:

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;
}

即用“Bra”替换所有出现的“^>Ar”,并保持文件中的所有内容相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多