Bio::T...ProtML(3pm)

πŸ“¦
version 1.7.3 Β· 3 versions
, in debian bookworm, ubuntu noble

πŸ’– Bio::Tools::Run::Phylo::Molphy::ProtML πŸ’–

okay so bestie, you found the manual page for Bio::T...ProtML(3pm) β€” say hi to your new fave wrapper 🫢 it wraps the Molphy pkg app ProtML, and we're gonna walk through literally every single thing in here together. grab a boba, this is gonna be cute. ✨


🌸 NAME 🌸

Bio::Tools::Run::Phylo::Molphy::ProtML β€” it's a wrapper for the Molphy pkg app ProtML. that's it, that's the name, no cap. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

here's how you actually use it, fr fr:

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 output
my $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 alignment
my $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 object

my $r = $results->next_result;
# $r is a Bio::Tools::Phylo::Molphy::Result object

my @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 ✨

so this whole thing 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>.

heads up bestie: PHYLIP (Joe Felsenstein) also ships a version of protml, and this module is currently NOT prepared to handle that one. 😭 if you wanna use the module in its present implementation, use the package available directly from the MOLPHY authors. (extensions are welcomed! πŸ‘‘)

the main components are the protml and nucml executables, and they're used to build maximum likelihood (ML) phylogenetic trees based on either protein or nucleotide sequences. iconic behavior honestly.

here are the valid input parameters β€” we 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. πŸŽ€

🧬 Model (one of these):

 Bioperl      Molphy           Description
 Longhand     parameter
 ---------------
 jtt              j            Jones, Taylor & Thornton (1992)
 jtt-f            jf           JTT w/ frequencies
 dayhoff          d            Dahoff et al. (1978)
 dayhoff-f        d            dayhoff w/ frequencies
 mtrev24          m            mtREV24 Adachi & Hasegwa (1995)
 mtrev24-f        mf           mtREV24 w/ frequencies
 poisson          p            Poisson
 proportional     pf           Proportional
 rsr              r            Relative Substitution Rate
 rsr-f            rf           RSR w/ frequencies
 frequencies      f            data frequencies

πŸ” Search Strategy (one of these):

 Bioperl      Molphy           Description
 Longhand     parameter
 ----------------
 usertrees        u            User trees (must also supply a tree)
 rearrangement    R            Local rearrangement
 lbp              RX           Local boostrap prob
 exhaustive       e            Exhaustive search
 star             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 supply
                                                              NJDIST tree)

πŸ“ Others (can be some or all of these):

 Bioperl      Molphy           Description
 Longhand     parameter
 ---------------
 norell-bp        b            No RELL-BP
 minimumevolution M            Minimum evolution

 sequential       S            Sequence is in Sequential format
                    _OR_
 interleaved      I            Sequence is in Interleaved format

 verbose          v            Verbose messages directed to STDERR
 information      i            Output some information (tree vals)
                  w            More some extra information (transition
                                                            matricies, etc)

πŸ’Œ FEEDBACK πŸ’Œ

🌈 Mailing Lists

user feedback is an integral part of the evolution of this and other Bioperl modules β€” genuinely, they mean it. send your comments and suggestions preferably to the Bioperl mailing list. your participation is much appreciated. 🫢

 bioperl-l@bioperl.org                  - General discussion
 http://bioperl.org/wiki/Mailing_lists  - 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. lots of experienced and reponsive experts will be able look at the problem and quickly address it. if at all possible, please include a thorough description of the problem with code and data examples. πŸ’…

πŸ› 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 _. iykyk. πŸŽ€


program_name

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

program_dir

 Title   : program_dir
 Usage   : ->program_dir()
 Function: returns the program directory, obtained from ENV variable.
 Returns:  string
 Args    :

new

 Title   : new
 Usage   : my $obj = Bio::Tools::Run::Phylo::Molphy::ProtML->new();
 Function: Builds a new Bio::Tools::Run::Phylo::Molphy::ProtML object
 Returns : Bio::Tools::Run::Phylo::Molphy::ProtML
 Args    : -alignment => the Bio::Align::AlignI object
           -save_tempfiles => boolean to save the generated tempfiles and
                              NOT cleanup after onesself (default FALSE)
           -tree => the Bio::Tree::TreeI object
           -params => a hashref of PAML parameters (all passed to
                                                    set_parameter)
           -executable => where the protml executable resides

See also: Bio::Tree::TreeI, Bio::Align::AlignI


run

 Title   : run
 Usage   : $protml->run();
 Function: run the protml analysis using the default or updated parameters
           the alignment parameter must have been set
 Returns : Bio::Tools::Phylo::Molphy
 Args    :

alignment

 Title   : alignment
 Usage   : $protml->align($aln);
 Function: Get/Set the Bio::Align::AlignI object
 Returns : Bio::Align::AlignI object
 Args    : [optional] Bio::Align::AlignI
 Comment : We could potentially add support for running directly on a file
           but we shall keep it simple

See also : Bio::SimpleAlign, Bio::Align::AlignI


tree

 Title   : tree
 Usage   : $protml->tree($tree, %params);
 Function: Get/Set the Bio::Tree::TreeI object
 Returns : Bio::Tree::TreeI
 Args    : [optional] $tree => Bio::Tree::TreeI,

 Comment : We could potentially add support for running directly on a file
           but we shall keep it simple

See also : Bio::Tree::Tree


get_flags

 Title   : get_flags
 Usage   : my @params = $protml->get_flags();
 Function: returns the list of flags
 Returns : array of flag names coded in the way that
 Args    : none

set_flag

 Title   : set_flag
 Usage   : $protml->set_parameter($type,$val);
 Function: Sets a protml parameter, will be validated against
           the 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 -1
           then no warning will be reported
 Args    : $type => name of the parameter
           This can be one of 'search', 'model', 'other'
           $value => flag value

See also: no_param_checks()


get_parameters

 Title   : get_parameters
 Usage   : my %params = $protml->get_parameters();
 Function: returns the list of parameters as a hash
 Returns : associative array keyed on parameter names
 Args    : none

set_parameter

 Title   : set_parameter
 Usage   : $protml->set_parameter($param,$val);
 Function: Sets a protml parameter, will be validated against
           the 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 -1
           then no warning will be reported
 Args    : $param => name of the parameter
           $value => value to set the parameter to

See also: no_param_checks()


🌈 Bio::Tools::Run::WrapperBase 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 = $protml->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   : $protml->cleanup();
 Function: Will cleanup the tempdir directory after a PAML run
 Returns : none
 Args    : none

io

 Title   : io
 Usage   : $obj->io($newval)
 Function:  Gets a Bio::Root::IO object
 Returns : Bio::Root::IO
 Args    : none

aaaand that's the whole thing, bestie, you ate it. πŸ“ no crumbs. this lil doc is from perl v5.36.0, dated 2023-01-22, and it's part of the User Contributed Perl Documentation β€” mwah, iconic, periodt. πŸ’…βœ¨πŸ’–

πŸ“¦ where this page comes from