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

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

🌸 Bio::T...Semphy(3pm) β€” User Contributed Perl Documentation πŸ’–

okay bestie, buckle up, because this is Bio::Tools::Run::Phylo::Semphy and it is literally the little Perl wrapper that drives the Semphy program for you. ✨


✨ NAME ✨

Bio::Tools::Run::Phylo::Semphy β€” the wrapper for Semphy, no cap πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

use Bio::Tools::Run::Phylo::Semphy;

# Make a Semphy factory
$factory = Bio::Tools::Run::Phylo::Semphy->new();

# Run Semphy with an alignment
my $tree = $factory->run($alignfilename);

# or with alignment object
$tree = $factory->run($bio_simplalign);

# you can supply an initial tree as well, which can be a newick tree file,
# Bio::Tree::Tree object...
$tree = $factory->run($bio_simplalign, $tree_obj);

# ... or Bio::DB::Taxonomy object
$tree = $factory->run($bio_simplalign, $bio_db_taxonomy);

# (mixtures of all the above are possible)

# $tree isa Bio::Tree::Tree

like. it's giving factory. it's giving tree. it's giving everything. 🌈


πŸ’œ DESCRIPTION πŸ’œ

So this module is a wrapper for running the Semphy application, which was made by N. Friedman et a. β€” and if you wanna go read the deep lore, it's all here: http://compbio.cs.huji.ac.il/semphy/.

Semphy does phylogenetic reconstruction, which is a fancy way of saying it makes a tree with branch lengths from an aligned set of input sequences. iconic behaviour honestly. 🌳

Feeding it arguments: you can totally try handing normal Semphy command-line arguments to new(), like new(-hky => 1), or you can call arg-named methods instead β€” just drop the initial hyphen(s), so $factory->hky(1) sets the --hky switch to true. Note that Semphy args are case-sensitive, so like, watch the caps bestie, they matter. πŸ‘‘

Also, a very specific vibe check: to tell the difference between Bioperl's -verbose and Semphy's --verbose, you must set Semphy's verbosity using -semphy_verbose or the semphy_verbose() method. Don't mix them up, it's a whole thing. πŸ™ˆ

Finding the Semphy program: you need to enable this wrapper so it can actually locate Semphy. There are (at least) three ways to do that:

  1. Make sure the Semphy executable is in your path.
  2. Define an environmental variable SEMPHYDIR which is a directory which contains the Semphy application. In bash:
export SEMPHYDIR=/home/username/semphy/

In csh/tcsh:

setenv SEMPHYDIR /home/username/semphy
  1. Include a definition of an environmental variable SEMPHYDIR in every script that will use this Semphy wrapper module, e.g.:
BEGIN { $ENV{SEMPHYDIR} = '/home/username/semphy/' }
use Bio::Tools::Run::Phylo::Semphy;

🫢 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. fr fr. πŸ₯Ή

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. There are lots of experienced and responsive experts who will be able to 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. receipts help everyone. πŸ’…

πŸ› 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 - Sendu Bala πŸ‘‘

Email bix@sendu.me.uk


🌟 APPENDIX 🌟

The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _ β€” you know, the secret menu. 🀫


⭐ 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    : None

⭐ new

Title   : new
Usage   : $factory = Bio::Tools::Run::Phylo::Semphy->new()
Function: creates a new Semphy factory
Returns : Bio::Tools::Run::Phylo::Semphy
Args    : Most options understood by Semphy can be supplied as key =>
          value pairs, with a true value for switches.

          These options can NOT be used with this wrapper (they are handled
          internally or don't make sense in this context):
          -h | --help | --fill-help
          -s | --sequence
          -t | --tree

          To distinguish between Bioperl's -verbose and the Semphy's --verbose,
          you must set Semphy's verbosity with -semphy_verbose
🚫 heads up bestie: those three options above are NOT usable with this wrapper β€” they're either handled internally or they just don't make sense in this context. do not try it. not today. πŸ’€

⭐ run

Title   : run
Usage   : $result = $factory->run($fasta_align_file);
          -or-
          $result = $factory->run($align_object);
          -or-
          $result = $factory->run($fasta_align_file, $newick_tree_file);
          -or-
          $result = $factory->run($align_object, $tree_object);
          -or-
          $result = $factory->run($align_object, $db_taxonomy_object);
Function: Runs Semphy on an alignment.
Returns : Bio::Tree::Tree
Args    : The first argument represents an alignment, the second (optional)
          argument a species tree (to set an initial tree: normally the -t
          option to Semphy).
          The alignment can be provided as a multi-fasta format alignment
          filename, or a Bio::Align::AlignI compliant object (eg. a
          Bio::SimpleAlign).
          The species tree can be provided as a newick format tree filename
          or a Bio::Tree::TreeI compliant object. Alternatively a
          Bio::DB::Taxonomy object can be supplied, in which case the species
          tree will be generated by using the alignment sequence names as
          species names and looking for those in the supplied database.

          In all cases where an initial tree was supplied, the alignment
          sequence names must correspond to node ids in the species tree.
πŸ’– ok so the tl;dr of the args: first arg = the alignment (multi-fasta filename or a Bio::Align::AlignI compliant object like a Bio::SimpleAlign), second optional arg = the species tree (newick tree filename or a Bio::Tree::TreeI compliant object, or a Bio::DB::Taxonomy object β€” in which case the species tree gets generated by using the alignment sequence names as species names and hunting for those in the supplied database). ⚠️ and if you did supply an initial tree: the alignment sequence names must correspond to node ids in the species tree. no exceptions, it's the law. 🌸

⭐ _setparams

Title   : _setparams
Usage   : Internal function, not to be called directly
Function: Creates a string of params to be used in the command string
Returns : string of params
Args    : alignment and tree file names

and that's the whole page, bestie!! this one's running on perl v5.36.0, dated 2023-01-22, and it's the Bio::T...Semphy(3pm) page from the User Contributed Perl Documentation. go make some trees. slay. πŸŒ³βœ¨πŸ’…

πŸ“¦ where this page comes from