Provided by: libbio-perl-run-perl_1.6.9-3_all bug

NAME

       Bio::Tools::Run::Primer3 - Create input for and work with the output from the program
       primer3

SYNOPSIS

       Bio::Tools::Primer3 creates the input files needed to design primers using primer3 and
       provides mechanisms to access data in the primer3 output files.

       This module provides a bioperl interface to the program primer3. See
       http://frodo.wi.mit.edu/primer3/primer3_code.html for details and to download the
       software. This module only works for primer3 release 1 but is not guaranteed to work with
       earlier versions.

         # design some primers.
         # the output will be put into temp.out
         use Bio::Tools::Run::Primer3;
         use Bio::SeqIO;

         my $seqio = Bio::SeqIO->new(-file=>'data/dna1.fa');
         my $seq = $seqio->next_seq;
         my $primer3 = Bio::Tools::Run::Primer3->new(-seq => $seq,
                                                     -outfile => "temp.out",
                                                     -path => "/usr/bin/primer3_core");

         # or after the fact you can change the program_name
         $primer3->program_name('my_suprefast_primer3');

         unless ($primer3->executable) {
           print STDERR "primer3 can not be found. Is it installed?\n";
           exit(-1)
         }

         # what are the arguments, and what do they mean?
         my $args = $primer3->arguments;

         print "ARGUMENT\tMEANING\n";
         foreach my $key (keys %{$args}) {print "$key\t", $$args{$key}, "\n"}

         # set the maximum and minimum Tm of the primer
         $primer3->add_targets('PRIMER_MIN_TM'=>56, 'PRIMER_MAX_TM'=>90);

         # design the primers. This runs primer3 and returns a
         # Bio::Tools::Run::Primer3 object with the results
         $results = $primer3->run;

         # see the Bio::Tools::Run::Primer3 pod for
         # things that you can get from this. For example:

         print "There were ", $results->number_of_results, " primers\n";

       Bio::Tools::Run::Primer3 creates the input files needed to design primers using primer3
       and provides mechanisms to access data in the primer3 output files.

       This module provides a bioperl interface to the program primer3. See
       http://www-genome.wi.mit.edu/genome_software/other/primer3.html for details and to
       download the software.

       This module is based on one written by Chad Matsalla (bioinformatics1@dieselwurks.com). I
       have ripped some of his code, and added a lot of my own. I hope he is not mad at me!

FEEDBACK

   Mailing Lists
       User feedback is an integral part of the evolution of this and other Bioperl modules. Send
       your comments and suggestions preferably to one of the Bioperl mailing lists.  Your
       participation is much appreciated.

         bioperl-l@bioperl.org                  - General discussion
         http://www.bioperl.org/MailList.html             - About the mailing lists

   Support
       Please direct usage questions or support issues to the mailing list:

       bioperl-l@bioperl.org

       rather than to the module maintainer directly. Many experienced and reponsive experts will
       be able look at the problem and quickly address it. Please include a thorough description
       of the problem with code and data examples if at all possible.

   Reporting Bugs
       Report bugs to the Bioperl bug tracking system to help us keep track the bugs and their
       resolution.  Bug reports can be submitted via the web:

         http://redmine.open-bio.org/projects/bioperl/

AUTHOR

       Rob Edwards

       redwards@utmem.edu

       Based heavily on work of Chad Matsalla

       bioinformatics1@dieselwurks.com

CONTRIBUTORS

       Shawn Hoon shawnh-at-stanford.edu Jason Stajich jason-at-bioperl.org Brian Osborne
       osborne1-at-optonline.net

SEE ALSO

       Bio::Tools::Primer3

APPENDIX

       The rest of the documentation details each of the object methods.  Internal methods are
       usually preceded with a _

   new()
        Title   : new()
        Usage   : my $primer3 = Bio::Tools::Run::Primer3->new(-file=>$file) to read
                  a primer3 output file.
                  my $primer3 = Bio::Tools::Run::Primer3->new(-seq=>sequence object)
                  design primers against sequence
        Function: Start primer3 working and adds a sequence. At the moment it
                  will not clear out the old sequence, but I suppose it should.
        Returns : Does not return anything. If called with a filename will allow
                  you to retrieve the results
        Args    : -seq (optional) Bio::Seq object of sequence. This is required
                  to run primer3 but can be added later with add_targets()
                       -outfile file name to output results to (can also be added
                  with $primer3->outfile_name
                       -path path to primer3 executable, including program name, e.g.
                  "/usr/bin/primer3_core". This can also be set with program_name
                  and program_dir
                       -verbose (optional) set verbose output
        Notes   :

   program_name
        Title   : program_name
        Usage   : $primer3->program_name()
        Function: holds the program name
        Returns:  string
        Args    : None

   program_dir
        Title   : program_dir
        Usage   : $primer3->program_dir($dir)
        Function: returns the program directory, which may also be obtained from ENV variable.
        Returns :  string
        Args    :

   add_targets()
        Title   : add_targets()
        Usage   : $primer3->add_targets(key=>value)
        Function: Add any legal value to the input command line.
        Returns : Returns the number of arguments added.
        Args    : Use $primer3->arguments to find a list of all the values
                  that are allowed, or see the primer3 docs.
        Notes   : This will only do limited error checking at the moment,
                  but it should work.

   run()
        Title   : run()
        Usage   : $primer3->run();
        Function: Run the primer3 program with the arguments that you have supplied.
        Returns : A Bio::Tools::Primer3 object containing the results.
        Args    : None.
        Note    : See the Bio::Tools::Primer3 documentation for those functions.

   arguments()
        Title   : arguments()
        Usage   : $hashref = $primer3->arguments();
        Function: Describes the options that you can set through Bio::Tools::Run::Primer3,
                  with a brief (one line) description of what they are and their
                  default values
        Returns : A string (if an argument is supplied) or a reference to a hash.
        Args    : If supplied with an argument will return a string of its
                  description.
                  If no arguments are supplied, will return all the arguments as a
                  reference to a hash
        Notes   : Much of this is taken from the primer3 README file, and you should
                  read that file for a more detailed description.

   version
        Title   : version
        Usage   : $v = $prog->version();
        Function: Determine the version number of the program
        Example :
        Returns : float or undef
        Args    : none

   _input_args()
        Title   : _input_args()
        Usage   : an internal method to set the input arguments for Primer3
        Function: Define a hash with keys for each of the input arguments and values
                  as a short one line description
        Returns : A reference to a hash.
        Args    : None.
        Notes   : Much of this is taken from the primer3 README file, and you should
                  read that file for a more detailed description.