NAME
Bio::Tools::Run::Phylo::Molphy::ProtML - A wrapper for the Molphy pkg app ProtML
SYNOPSIS
use Bio::AlignIO;use Bio::TreeIO;use Bio::Tools::Run::Phylo::Molphy::ProtML;my %args = ( 'models' => 'jtt','search' => 'quick','other' => [ '-information', '-w'] );my $verbose = 0; # change to 1 if you want some debugging outputmy $protml = Bio::Tools::Run::Phylo::Molphy::ProtML->new(-verbose => $verbose,-flags => \%args);die("cannot find the protml executable") unless $protml->executable;# read in a previously built protein alignmentmy $in = Bio::AlignIO->new(-format => 'clustalw',-file => 't/data/cel-cbr-fam.aln');my $aln = $in->next_aln;$protml->alignment($aln);my ($rc,$results) = $protml->run();# This may be a bit of overkill, but it is possible we could# have a bunch of results and $results is a# Bio::Tools::Phylo::Molphy objectmy $r = $results->next_result;# $r is a Bio::Tools::Phylo::Molphy::Result objectmy @trees;while( my $t = $r->next_tree ) {push @trees, $t;}print "search space is ", $r->search_space, "\n";"1st tree score is ", $tree[0]->score, "\n";my $out = Bio::TreeIO->new(-file => ">saved_MLtrees.tre",-format => "newick");$out->write_tree($tree[0]);$out = undef;
DESCRIPTION
This is a wrapper for the exe from the Molphy (MOLecular PHYlogenetics) package by Jun Adachi & Masami Hasegawa. The software can be downloaded from <http://www.ism.ac.jp/ismlib/softother.e.html>. Note that PHYLIP (Joe Felsenstein) also provides a version of protml which this module is currently NOT prepared to handle. Use the package available directly from MOLPHY authors if you want to use the module in its present implementation (extensions are welcomed!).
The main components are the protml and nucml executables which are used to build maximum likelihood (ML) phylogenetic trees based on either protein or nucleotide sequences.
Here are the valid input parameters, we have added a longhand version of the parameters to help you understand what each one does. Either the longhand or the original Molphy parameter will work.
Bioperl Molphy DescriptionLonghand parameterModel (one of these):---------------jtt j Jones, Taylor & Thornton (1992)jtt-f jf JTT w/ frequenciesdayhoff d Dahoff et al. (1978)dayhoff-f d dayhoff w/ frequenciesmtrev24 m mtREV24 Adachi & Hasegwa (1995)mtrev24-f mf mtREV24 w/ frequenciespoisson p Poissonproportional pf Proportionalrsr r Relative Substitution Ratersr-f rf RSR w/ frequenciesfrequencies f data frequenciesSearch Strategy (one of these):----------------usertrees u User trees (must also supply a tree)rearrangement R Local rearrangementlbp RX Local boostrap probexhaustive e Exhaustive searchstar s Star decomposition search (may not be ML)quick q Quick Add OTU search (may not be ML)distance D ML Distance matrix --> NJDIST (need to supplyNJDIST tree)Others (can be some or all of these):---------------norell-bp b No RELL-BPminimumevolution M Minimum evolutionsequential S Sequence is in Sequential format_OR_interleaved I Sequence is in Interleaved formatverbose v Verbose messages directed to STDERRinformation i Output some information (tree vals)w More some extra information (transitionmatricies, etc)
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 the Bioperl mailing list. Your participation is much appreciated.
[email protected] - General discussionhttp://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 of 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_org
CONTRIBUTORS
Additional contributors names and emails here
APPENDIX
The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
program_name
Title : program_nameUsage : >program_name()Function: holds the program nameReturns: stringArgs : None
program_dir
Title : program_dirUsage : ->program_dir()Function: returns the program directory, obtained from ENV variable.Returns: stringArgs :
new
Title : newUsage : my $obj = Bio::Tools::Run::Phylo::Molphy::ProtML->new();Function: Builds a new Bio::Tools::Run::Phylo::Molphy::ProtML objectReturns : Bio::Tools::Run::Phylo::Molphy::ProtMLArgs : -alignment => the Bio::Align::AlignI object-save_tempfiles => boolean to save the generated tempfiles andNOT cleanup after onesself (default FALSE)-tree => the Bio::Tree::TreeI object-params => a hashref of PAML parameters (all passed toset_parameter)-executable => where the protml executable resides
See also: Bio::Tree::TreeI, Bio::Align::AlignI
run
Title : runUsage : $protml->run();Function: run the protml analysis using the default or updated parametersthe alignment parameter must have been setReturns : Bio::Tools::Phylo::MolphyArgs :
alignment
Title : alignmentUsage : $protml->align($aln);Function: Get/Set the Bio::Align::AlignI objectReturns : Bio::Align::AlignI objectArgs : [optional] Bio::Align::AlignIComment : We could potentially add support for running directly on a filebut we shall keep it simpleSee also : L<Bio::SimpleAlign>, L<Bio::Align::AlignI>
tree
Title : treeUsage : $protml->tree($tree, %params);Function: Get/Set the Bio::Tree::TreeI objectReturns : Bio::Tree::TreeIArgs : [optional] $tree => Bio::Tree::TreeI,Comment : We could potentially add support for running directly on a filebut we shall keep it simpleSee also : L<Bio::Tree::Tree>
get_flags
Title : get_flagsUsage : my @params = $protml->get_flags();Function: returns the list of flagsReturns : array of flag names coded in the way thatArgs : none
set_flag
Title : set_flagUsage : $protml->set_parameter($type,$val);Function: Sets a protml parameter, will be validated againstthe valid values as set in the %VALIDVALUES class variable.The checks can be ignored if one turns off param checks like this:$protml->no_param_checks(1)Returns : boolean if set was success, if verbose is set to -1then no warning will be reportedArgs : $type => name of the parameterThis can be one of 'search', 'model', 'other'$value => flag valueSee also: L<no_param_checks()>
get_parameters
Title : get_parametersUsage : my %params = $protml->get_parameters();Function: returns the list of parameters as a hashReturns : associative array keyed on parameter namesArgs : none
set_parameter
Title : set_parameterUsage : $protml->set_parameter($param,$val);Function: Sets a protml parameter, will be validated againstthe valid values as set in the %VALIDVALUES class variable.The checks can be ignored if one turns off param checks like this:$protml->no_param_checks(1)Returns : boolean if set was success, if verbose is set to -1then no warning will be reportedArgs : $param => name of the parameter$value => value to set the parameter toSee also: L<no_param_checks()>
Bio::Tools::Run::WrapperBase methods
no_param_checks
Title : no_param_checksUsage : $obj->no_param_checks($newval)Function: Boolean flag as to whether or not we shouldtrust the sanity checks for parameter valuesReturns : value of no_param_checksArgs : newvalue (optional)
save_tempfiles
Title : save_tempfilesUsage : $obj->save_tempfiles($newval)Function:Returns : value of save_tempfilesArgs : newvalue (optional)
outfile_name
Title : outfile_nameUsage : my $outfile = $protml->outfile_name();Function: Get/Set the name of the output file for this run(if you wanted to do something special)Returns : stringArgs : [optional] string to set value to
tempdir
Title : tempdirUsage : my $tmpdir = $self->tempdir();Function: Retrieve a temporary directory name (which is created)Returns : string which is the name of the temporary directoryArgs : none
cleanup
Title : cleanupUsage : $protml->cleanup();Function: Will cleanup the tempdir directory after a PAML runReturns : noneArgs : none
io
Title : ioUsage : $obj->io($newval)Function: Gets a L<Bio::Root::IO> objectReturns : L<Bio::Root::IO>Args : none