用perl修改序列名,但保留序列信息并输出。

>HWI-ST667:190:C0TPFACXX:1:1101:2885:19851:N:0:GATCAGTCGGATAGAGCTCCAAATCTATCT>HWI-ST6... >HWI-ST667:190:C0TPFACXX:1:1101:2885:1985 1:N:0:GATCAG
TCGGATAGAGCTCCAAATCTATCT
>HWI-ST667:190:C0TPFACXX:1:1101:3058:1999 1:N:0:GATCAG
CAATATCAACTGCTGCAACTCTCT
>HWI-ST667:190:C0TPFACXX:1:1101:3372:1992 1:N:0:GATCAG
TCAAAGGTTGAAGAGAATGAAATTTCT
>HWI-ST667:190:C0TPFACXX:1:1101:7190:1996 1:N:0:GATCAG
AAAAGGGATGCGAGTTTTGAAACTTCT
>HWI-ST667:190:C0TPFACXX:1:1101:7768:1991 1:N:0:GATCAG
GATGGTGAACTATCT
如何利用perl编程将上面多个序列(每个序列有两行,第一行是序列名称,第二行是序列本身)改成如下格式?也就是把序列名按顺序编号?谢谢!
>seq_1
TCGGATAGAGCTCCAAATCTATCT
>seq_2
CAATATCAACTGCTGCAACTCTCT
>seq_3
TCAAAGGTTGAAGAGAATGAAATTTCT
>seq_4
AAAAGGGATGCGAGTTTTGAAACTTCT
>seq_5
GATGGTGAACTATCT
展开
 我来答
laohu2862
2013-05-13 · TA获得超过1246个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:643万
展开全部
#!/usr/bin/perl -w
use strict;
die "perl $0 <Input fa>\n" unless(@ARGV == 1);
open IN,$ARGV[0];
open OUT,">Output.fa";
my $count = 1;
while(<IN>){
if($_=~/^>/){
print ">seq_$count\n";
print OUT ">seq_$count\n";
$count++;
}
else
{
print $_;
print OUT $_;
}
}
close IN;
close OUT;

将上面的脚本存为run.pl 假设你的输入序列文件为a.fa, 运行的时候在命令行输入:
perl run.pl a.fa 即可。
输出的结果存放在Output.fa中,并且同时在屏幕回显出来。

希望我的回答已经解决了你的问题。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式