这里的长序列格式是fasta 格式:
格式如下
>1
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
直接上代码:这里指定的是70的长度
#!/usr/bin/perl -w
use strict;
open A,"hp.fa" or die;
while(<A>){
chomp;
if (/>/){
print "$_\n";
}else{
my $len = length $_;
my $num = int ($len / 70);
#print "$num\n";
for my $i (0 .. $num){
#print "$i\n";
my $data = substr($_, $i*70,70 );
print "$data\n";
}
}
}
按这个长度分割,担心是不是出现错误,那就直接还原回去吧。
代码如下:
#!/usr/bin/perl -w
use strict;
open A,"hp70.fa" or die;
$/=">";<A>;
while(<A>){
my $id=$1 if(/^(\S+)/);
print ">$id\n";
$/='>';
chomp;
s/^.+?\n//;
s/\s//g;
print "$_\n";
}
$/="\n";
close A;