[Bioperl-l] Ask help for Bio::Tools::Run::Primer3

Fengkai Zhang (Tony) fzhang at vcu.edu
Fri Oct 1 10:54:31 EDT 2004


Hi, Thomas, 

Thanks for your reply.

I tried the way suggested by Jason, ans still had the problem. I also
think the module(Bio::Tools::Run::Primer3) is buggy. I solved the
problem in following way:

The line 343:
 my $executable = $self->{program_dir}.$self->{program};
may be changed to:
 my $executable = $self->{program};


$self->{program_dir} has been called in $self->executable in new()
constructor through the parent class WrapperBase and needn't call
again here. Otherwise perl will give warning msg if PRIMER3
environment variable is not setup.

Also, Primer3 itself seems not setup PRIMER3 variable automatically in
Linux system. It may be setup manually.

If following the instruction in Primer3 (downloaded in Sept 2004), the
executable program is "primer3_core" instead of "primer3", which is
defaut in Bio::Tools::Run::Primer3. Two ways to solve this problem.
1. Simply change name of "primer3_core" to "primer3" as suggested by
Adam.
2. Use "-program" in new() constructor when initializing a Primer3
object. I think it should be included in the document of
Bio::Tools::Run::Primer3. The hash value of "-program" can be either
absolute path or relative path of primer3 program to your perl
program. It is not necessary to change the name of primer3 program
here.

Tony


-------------------
> Hi Tony,
> Jason answered this question not too long ago. I happened to have
saved 
> his answer (pasted below). Note that he gave the path to
primer3_core
> 
> >> Hello Bioperlers
> >> I have been trying to use the BioPerl-run Primer3.pm module to
run
> >> primer3. In doing so I think I have found 2 bugs that prevent it
from
> >> working properly (I hope this is the right place to ask this).
> >
> > This is exactly the right place to ask this question
> >
> >>
> >> The line
> >> my $executable = $self->{'program_dir'}.$self->{'program'};
> >> I think should be
> >> my $executable = $self->{'program_dir'}.$self->{'program_name'};
> >> otherwise the primer3 executable is never found using the -path
option
> >> in a call to the constructor
> >> my $primer3 =
> >> Bio::Tools::Run::Primer3->new(-path=>'/usr/mbin/primer3_core',-
> >> seq=>$seq,
> >> -outfile=>"temp.out");
> 
> and rob - I think you want to call $self->program_dir and
$self->program
> so they can overriden as well - that's why I set up the Base Class
to 
> have
> these methods.
> 
> 
> On Sep 29, 2004, at 1:21 PM, Fengkai Zhang (Tony) wrote:
> 
> > Hi, I am a newbie for bioperl and met the below question.
> >
> > I was trying to use Bio::Tools::Run::Primer3. When I run the
example
> > code in the documentation of this module, I got the following
error
> > message:
> > --------------------------------
> > <shell> $ perl -I ../primer3_1.0.0/src/ -w primer3run_test.pl
> >
> > Use of uninitialized value in concatenation (.) or string at
> > /usr/lib/perl5/site_perl/5.8.0/Bio/Tools/Run/Primer3.pm line 212,
> > <GEN0> line 1.
> > primer3 can not be found. Is it installed?
> > --------------------------------
> >
> > I already installed Primer3 according its instruction and it works
> > well to run the test and example. I also noticed that the
> > primer_test.pl in primer3 package calls "primer3_core" rather than
> > "primer3". Does it matter for Bio::Tools::Run::Primer3 module?
> >
> >
> > Thanks ahead for your help.
> >
> >
> >
> > Tony
> >
> > VIPBG at VCU
> > _______________________________________________
> > Bioperl-l mailing list
> > Bioperl-l at portal.open-bio.org
> > http://portal.open-bio.org/mailman/listinfo/bioperl-l
> 
> 
> 
> 

------------------------------------------------------
Fengkai Zhang (Tony) MD, MMath(Bioinformatics), BS(CS)
Postdoc Research Associate
Virginia Institute for Psychiatric and 
Behavioral Genetics
Virginia Commonwealth University
800 E. Leigh St.
PO.Box 980126
Richmond, VA 23298-0126
Tel: 804-828-9710
------------------------------------------------------


More information about the Bioperl-l mailing list