[Bioperl-l] Fitch methode
jason.stajich at gmail.com
Thu Oct 11 01:24:29 EDT 2012
It assumes that you have assigned trait values to all nodes in the tree, the key is assigned when you do an add_trait on a tree.
You can see how to add traits and some sample data if you look in the t/Tree/Statistics.t code and you'll see the assignment of the $key
my $key = $tree->add_trait(test_input_file('traits.tab'));
>From the documentation:
The following methods produce descriptors of trait distribution among
leaf nodes within the trees. They require that a trait has been set for
each leaf node. The tag methods of Bio::Tree::Node are used to store
them as key/value pairs. In this way, one tree can store more than one
Trees have method add_traits() to set trait values from a file. See the
add_trait() method in Bio::Tree::TreeFunctionsI.
Example : fitch($tree, $key, $node);
Description: Calculates Parsimony Score (PS) and internal trait
values using the Fitch 1971 parsimony algorithm for
the subtree a defined by the (internal) node.
Node defaults to the root.
Returns : true on success
Exceptions : leaf nodes have to have the trait defined
Args : 1. Bio::Tree::TreeI object
2. trait name string
3. Bio::Tree::NodeI object within the tree, optional
Runs first fitch_up that calculates parsimony scores and then
fitch_down that should resolve most of the trait/character state
Fitch, W.M., 1971. Toward defining the course of evolution: minimal
change for a specific tree topology. Syst. Zool. 20, 406−416.
You can access calculated parsimony values using:
$score = $node−>−>get_tag_values('ps_score');
and the trait value with:
$traitvalue = $node−>−>get_tag_values('ps_trait'); # only the first
@traitvalues = $node−>−>get_tag_values('ps_trait');
Note that there can be more that one trait value, especially for the
Documentation rendered in Pdoc:
Here is the documentation for add_traits from the
Title : add_trait
Usage : my $key = $tree−>add_trait($trait_file, 3);
Function: Add traits to the leaf nodes of a Bio::Tree:Tree from a file.
The trait file is a tab−delimited text file and needs to have a
header line giving names to traits. The first column contains the
leaf node ids. Subsequent columns contain different trait value sets.
Single or double quotes are removed from the trait values. Traits
are added to leaf nodes as a tag named $key using the add_tag_value()
method. This means that you can retrieve the trait values using the
get_tag_values() method (see the documentation for Bio::Tree::Node).
Returns : Trait name (a scalar) on success, undef on failure (for example, if
the column index requested was too large).
Args : * Name of trait file (scalar string).
* Index of trait file column (scalar int). Note that numbering starts
at 0. Default: 1 (second column).
* Ignore missing values. Typically, if a leaf node has no value in
the trait file, an exception is thrown. If you set this option to
1, then no trait will be given to the node (no exception thrown).
also see the documentation rendered in Pdoc:
On Oct 9, 2012, at 1:15 PM, Alexandre Miranda <amiranda65 at gmail.com> wrote:
> I desperately try to implement the methode Fitch from the library
> But I cannot understand what kind of parameter I should used for the $key
> value : fitch($tree, $key, $node);
> Can you please send me a sample of code using that methode ?
> thanks for your quick reply.
> Best Regards,
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
jason.stajich at gmail.com
jason at bioperl.org
More information about the Bioperl-l