Bio::Factory::EMBOSS - EMBOSS application factory class


  # Get an EMBOSS factory
  use Bio::Factory::EMBOSS;
  $f = Bio::Factory::EMBOSS -> new();
  # Get an EMBOSS application  object from the factory
  $water = $f->program('water') || die "Program not found!\n";

  # Here is an example of running the application - water can
  # compare 1 sequence against 1 or more sequences using Smith-Waterman.
  # Pass a Sequence object and a reference to an array of objects.

  my $wateroutfile = 'out.water';
  $water->run({-asequence => $seq_object,
               -bsequence => \@seq_objects,
               -gapopen   => '10.0',
               -gapextend => '0.5',
               -outfile   => $wateroutfile});

  # Now you might want to get the alignment
  use Bio::AlignIO;
  my $alnin = Bio::AlignIO->new(-format => 'emboss',
                                -file   => $wateroutfile);

  while ( my $aln = $alnin->next_aln ) {
      # process the alignment -- these will be Bio::SimpleAlign objects


The EMBOSS factory class encapsulates access to EMBOSS programs. A factory object allows creation of only known applications.

If you want to check command line options before sending them to the program set $prog->verbose to positive integer. The value is passed on to programs objects and the ADC description of the available command line options is parsed and compared to input.

See also Bio::Tools::Run::EMBOSSApplication and Bio::Tools::Run::EMBOSSacd.


Mailing Lists

User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to the Bioperl mailing lists Your participation is much appreciated.                  - General discussion  - About the mailing lists


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

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:

AUTHOR - Heikki Lehvaslaiho

Email heikki-at-bioperl-dot-org


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


 Title   : location
 Usage   : $embossfactory->location
 Function: get/set the location of EMBOSS programs.
           Valid values are 'local' and 'novella'.
 Returns : string, defaults to 'local'
 Args    : string


 Title   : program
 Usage   : $embossfactory->program('program_name')
 Function: Creates a representation of a single EMBOSS program and issues a
           warning if the program was not found.
 Returns : Bio::Tools::Run::EMBOSSApplication object or undef
 Args    : string, program name


 Title   : $self->version
 Usage   : $embossfactory->version()
 Function: gets the version of EMBOSS programs
 Throws  : if EMBOSS suite is not accessible
 Returns : version value
 Args    : None


These methods allow the programmer to query the EMBOSS suite and find out which program names can be used and what arguments can be used.


 Title   : program_info
 Usage   : $embossfactory->program_info('emma')
 Function: Finds out if the program is available.
 Returns : definition string of the program, undef if program name not known
 Args    : string, prgramname

Internal methods

Do not call these methods directly


 Title   : _program_list
 Usage   : $embossfactory->_program_list()
 Function: Finds out what programs are available.
           Writes the names into an internal hash.
 Returns : true if successful
 Args    : None