SYNOPSIS
# Build a muscle alignment factory
$factory = Bio::Tools::Run::Alignment::Muscle->new(@params);
# Pass the factory a list of sequences to be aligned.
$inputfilename = 't/cysprot.fa';
# $aln is a SimpleAlign object.
$aln = $factory->align($inputfilename);
# or where @seq_array is an array of Bio::Seq objects
$seq_array_ref = \@seq_array;
$aln = $factory->align($seq_array_ref);
# Or one can pass the factory a pair of (sub)alignments
#to be aligned against each other, e.g.:
#There are various additional options and input formats available.
#See the DESCRIPTION section that follows for additional details.
DESCRIPTION
Muscle is Robert Edgar's progressive alignment program. You can get it and see information about it at this URL http://www.drive5.com/muscleIt is recommended you use at least version 3.6. Behaviour with earlier versions is questionable.
Helping the module find your executable
You will need to enable Muscle to find the muscle program. This can be done in (at least) three ways:
1. Make sure the muscle executable is in your path (i.e. 'which muscle' returns a valid program 2. define an environmental variable MUSCLEDIR which points to a directory containing the 'muscle' app: In bash export MUSCLEDIR=/home/progs/muscle or In csh/tcsh setenv MUSCLEDIR /home/progs/muscle 3. include a definition of an environmental variable MUSCLEDIR in every script that will BEGIN {$ENV{MUSCLEDIR} = '/home/progs/muscle'; } use Bio::Tools::Run::Alignment::Muscle;
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.
[email protected] - General discussion http://bioperl.org/wiki/Mailing_lists - About the mailing lists
Support
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:
http://redmine.open-bio.org/projects/bioperl/
AUTHOR - Jason Stajich
Email jason-at-bioperl-dot-orgAPPENDIX
The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _program_name
Title : program_name Usage : $factory->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, obtained from ENV variable. Returns: string Args :
new
Title : new Usage : my $muscle = Bio::Tools::Run::Alignment::Muscle->new(); Function: Constructor Returns : Bio::Tools::Run::Alignment::Muscle Args : -outfile_name => $outname
error_string
Title : error_string Usage : $obj->error_string($newval) Function: Where the output from the last analysus run is stored. Returns : value of error_string Args : newvalue (optional)
version
Title : version Usage : exit if $prog->version() < 1.8 Function: Determine the version number of the program Example : Returns : float or undef Args : none
run
Title : run Usage : my $output = $application->run(\@seqs); Function: Generic run of an application Returns : Bio::SimpleAlign object Args : Arrayref of Bio::PrimarySeqI objects or a filename to run on
align
Title : align Usage : $inputfilename = 't/data/cysprot.fa'; $aln = $factory->align($inputfilename); or $seq_array_ref = \@seq_array; # @seq_array is array of Seq objs $aln = $factory->align($seq_array_ref); Function: Perform a multiple sequence alignment Returns : Reference to a SimpleAlign object containing the sequence alignment. Args : Name of a file containing a set of unaligned fasta sequences or else an array of references to Bio::Seq objects. Throws an exception if argument is not either a string (eg a filename) or a reference to an array of Bio::Seq objects. If argument is string, throws exception if file corresponding to string name can not be found. If argument is Bio::Seq array, throws exception if less than two sequence objects are in array.
profile
Title : profile Usage : $alnfilename = /t/data/cysprot.msa'; $seqsfilename = 't/data/cysprot.fa'; $aln = $factory->profile($alnfilename,$seqsfilename); Function: Perform a profile alignment on a MSA to include more seqs Returns : Reference to a SimpleAlign object containing the sequence alignment. Args : Name of a file containing the fasta MSA and name of a file containing a set of unaligned fasta sequences Comments : This only works for muscle version 3.52. Some early versions of the 3.6 sources had a bug that caused a segfault with -profile. The attached should fix it, if not let Bob Edgar know.
_run
Title : _run Usage : Internal function, not to be called directly Function: makes actual system call to muscle program Example : Returns : nothing; muscle output is written to a temporary file OR specified output file Args : Name of a file containing a set of unaligned fasta sequences and hash of parameters to be passed to muscle
_setinput
Title : _setinput Usage : Internal function, not to be called directly Function: Create input file for muscle program Example : Returns : name of file containing muscle data input AND Args : Arrayref of Seqs or input file name
_setparams
Title : _setparams Usage : Internal function, not to be called directly Function: Create parameter inputs for muscle program Example : Returns : parameter string to be passed to muscle during align or profile_align Args : name of calling object
aformat
Title : aformat Usage : my $alignmentformat = $self->aformat(); Function: Get/Set alignment format Returns : string Args : string
Bio::Tools::Run::BaseWrapper methods
no_param_checks
Title : no_param_checks Usage : $obj->no_param_checks($newval) Function: Boolean flag as to whether or not we should trust the sanity checks for parameter values Returns : value of no_param_checks Args : newvalue (optional)
save_tempfiles
Title : save_tempfiles Usage : $obj->save_tempfiles($newval) Function: Returns : value of save_tempfiles Args : newvalue (optional)
outfile_name
Title : outfile_name Usage : my $outfile = $muscle->outfile_name(); Function: Get/Set the name of the output file for this run (if you wanted to do something special) Returns : string Args : [optional] string to set value to
tempdir
Title : tempdir Usage : my $tmpdir = $self->tempdir(); Function: Retrieve a temporary directory name (which is created) Returns : string which is the name of the temporary directory Args : none
cleanup
Title : cleanup Usage : $muscle->cleanup(); Function: Will cleanup the tempdir directory Returns : none Args : none
io
Title : io Usage : $obj->io($newval) Function: Gets a L<Bio::Root::IO> object Returns : L<Bio::Root::IO> Args : none