The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

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

SYNOPSIS

  # 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");

  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";

DESCRIPTION

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://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's not mad at me!

The original version was designed to work with PrimedSeq and Bio::SeqFeature::Primer. I will try and include those compatibilities too, but as of this writing neither are fully developed, so we'll see how far we get.

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

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 email or the web:

  bioperl-bugs@bio.perl.org
  http://bugzilla.bioperl.org/

AUTHOR -

Rob Edwards

redwards@utmem.edu

Based heavily on work of

Chad Matsalla

bioinformatics1@dieselwurks.com

CONTRIBUTORS

Shawn Hoon shawnh@fugu-sg.org

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::Primer3->new(-file=>$file) to read a primer3 output file.
           my $primer3 = Bio::Tools::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 : Doesn't 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 (note can also be added with $primer3->outfile_name
           -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   : $factory->program_dir(@params)
 Function: returns the program directory, obtiained 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::Run::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::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.

_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.