Bio::T...Semphy(3pm)
πΈ 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:
- Make sure the Semphy executable is in your
path. - Define an environmental variable
SEMPHYDIRwhich is a directory which contains the Semphy application. In bash:
export SEMPHYDIR=/home/username/semphy/
In csh/tcsh:
setenv SEMPHYDIR /home/username/semphy
- Include a definition of an environmental variable
SEMPHYDIRin 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 aBio::Align::AlignIcompliant object like aBio::SimpleAlign), second optional arg = the species tree (newick tree filename or aBio::Tree::TreeIcompliant object, or aBio::DB::Taxonomyobject β 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
- debian bookworm: libbio-perl-run-perl 1.7.3-9 Β· Perl
- ubuntu noble: libbio-perl-run-perl 1.7.3-9 Β· Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms