- 论坛徽章:
- 0
|
#!/usr/bin/perl
#2014/8/22-10:31:54
open(FILE1,"<CTV.gb") or die;
open(FILE3,">CTV.txt") or die;
while(<FILE1>){
push @all,$_;
}
$all=join "",@all;
$all =~s/ +//mg;
$all =~ s/\s+//mg;
$all =~s/\/\//}/mg;
@private = split "}",$all;
foreach $a(@private){
$a =~/ACCESSION(?<first>(\w{1,4}_?\d{3,6}))/;
$name1 = $+{first};
$i = 0;
while($a =~ /CDS(\d+\.\.\d+)/mg){
$pos = $1;
$i += 1;
open(FILE2,">>CTV_$i.txt") or die;
$pos =~ s/\.\./;/;
($start,$end) = split ";",$pos;
print "$start,$end\n";
$sequence = &seq($a);
print FILE3 "\n>$name1\n$sequence";
my $sequ = substr($sequence,$start-1,$end-$start+1);
print FILE2 "\n>$name1($pos)\n$sequ";
}
}
sub seq{
$seq = shift(@_);
$seq =~ s/\d+//mg;
$seq =~ s/\s+//mg;
$seq =~ /ORIGIN([\w]+)/xsmg;
$sequen = ($1);
return $sequen;
}
close FILE1;
close FILE2;
回复 3# b114213903
|
|