1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
use strict;
use Getopt::Long;
use Bio::Tools::Run::Primer3;
use Bio::SeqIO;
use Bio::DB::GenBank;
my $acc='DQ022571';
my $gb = Bio::DB::GenBank->new();
my $seq= $gb->get_Seq_by_acc($acc);
my $primer3 = Bio::Tools::Run::Primer3->new(-seq => $seq);
$primer3->program_name('primer3_core') unless $primer3->executable;
$primer3->add_targets('PRIMER_MIN_TM' => 56, 'PRIMER_MAX_TM' => 90);
my $results = $primer3->run;
unless ($results->number_of_results) {
print "No results for ",$seq->display_id;
next;
}
my @out_keys_part = qw(START
LENGTH
TM
GC_PERCENT
SELF_ANY
SELF_END
SEQUENCE );
print "\n", $seq->display_id, "\n";
for (my $i = 0 ; $i < $results->number_of_results ; $i++){
my $result = $results->primer_results($i);
print "\n", $i + 1;
for my $key qw(PRIMER_LEFT PRIMER_RIGHT){
my ($start, $length) = split /,/, $result->{$key};
$result->{$key . "_START"} = $start;
$result->{$key . "_LENGTH"} = $length;
foreach my $partkey (@out_keys_part) {
print "\t", $result->{$key . "_" . $partkey};
}
print "\n";
}
print "\tPRODUCT SIZE: ", $result->{'PRIMER_PRODUCT_SIZE'}, ", PAIR ANY COMPL: ",
$result->{'PRIMER_PAIR_COMPL_ANY'};
print ", PAIR 3\' COMPL: ", $result->{'PRIMER_PAIR_COMPL_END'}, "\n";
}
sub usage {
exec('perldoc',$0);
exit(0);
}
__END__ |
Partager