Provided by: libbio-perl-perl_1.6.923-1_all bug

NAME

       Bio::Tools::Phylo::PAML::Result - A PAML result set object

SYNOPSIS

         # see Bio::Tools::Phylo::PAML for example usage
         use Bio::Tools::Phylo::PAML;
         my $parser = Bio::Tools::Phylo::PAML->new
           (-file => "./results/mlc", -dir => "./results/");

         # get the first/next result; a Bio::Tools::Phylo::PAML::Result object,
         # which isa Bio::SeqAnalysisResultI object.
         my $result = $parser->next_result();

         my @seqs         = $result->get_seqs;
         my %input_params = $result->get_input_parameters;
         my @basfreq      = $result->get_codon_pos_basefreq;
         my $MLmatrix     = $result->get_MLmatrix; # get MaxLikelihood Matrix
         my $NGmatrix     = $result->get_NGmatrix; # get Nei-Gojoburi Matrix

         # for AAML runs
         my $AAmatrix   = $result->get_AADistMatrix;
         my $AAMLmatrix   = $result->get_AAMLDistMatrix;

         # if -dir contains an rst file get list of
         # Bio::PrimarySeq ancestral state reconstructions of the sequences
         my @rsts          = $result->get_rst_seqs;

         # if you want to print the changes on the tree
         # this will print out the
         # anc_aa       => ANCESTRAL AMINO ACID
         # anc_prob     => ANCESTRAL AA PROBABILITY
         # derived_aa   => DERIVED AA
         # derived_prob => DERIVE AA PROBABILITY (where appropriate - NA for extant/tip taxas)
         # site         => which codon site this in the alignment
           @trees = $result->get_rst_trees;
           for my $t ( @trees ) {
               for my $node ( $t->get_nodes ) {
                   next unless $node->ancestor; # skip root node
                   my @changes = $node->get_tag_values('changes');
                   my $chgstr = '';
                   for my $c ( @changes ) {
                       for my $k ( sort keys %$c ) {
                           $chgstr .= "$k => $c->{$k} ";
                       }
                       $chgstr .= "\n\t";
                   }

                   printf "node:%s n=%s s=%s\n\t%s\n",
                   $node->id,
                   $node->get_tag_values('n'),
                   $node->get_tag_values('s'),
                   $chgstr;
               }
           }

         # Persite probabilities
         my $persite = $result->get_rst_persite;
         # let's score site 1
         $site = $persite->[2];
         # so site 2, node 2 (extant node, node 2)
         print $site->[2]->{'codon'}, ' ',$site->[2]->{'aa'},"\n";
         # site 2, node 3
         print $site->[3]->{'codon'}, ' ',$site->[3]->{'aa'}, "\n";

         # ancestral node 9, codon, aa, marginal probabilities; Yang95 is listed as
         #  (eqn. 4 in Yang et al. 1995 Genetics 141:1641-1650) in PAML rst file.
         print $site->[9]->{'codon'}, ' ',$site->[9]->{'aa'}, ' ', $site->[9]->{'prob'}, ' ',
               $site->[9]->{'Yang95_aa'},' ', $site->[9]->{'Yang95_aa_prob'},"\n";

DESCRIPTION

       This is a container object for PAML Results.

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.

         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. 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 email or the web:

         https://redmine.open-bio.org/projects/bioperl/

AUTHOR - Jason Stajich, Aaron Mackey

        Email jason-at-bioperl-dot-org
        Email amackey-at-virginia-dot-edu

CONTRIBUTORS

       Albert Vilella avilella-AT-gmail-DOT-com

APPENDIX

       The rest of the documentation details each of the object methods.  Internal methods are
       usually preceded with a _

   new
        Title   : new
        Usage   : my $obj = Bio::Tools::Phylo::PAML::Result->new(%data);
        Function: Builds a new Bio::Tools::Phylo::PAML::Result object
        Returns : Bio::Tools::Phylo::PAML::Result
        Args    : -trees     => array reference of Bio::Tree::TreeI objects
                  -MLmatrix  => ML matrix
                  -seqs      => array reference of Bio::PrimarySeqI objects
                  -codonpos  => array reference of codon positions
                  -codonfreq => array reference of codon frequencies
                  -version   => version string
                  -model     => model string
                  -patterns  => hashref with the fields '-patterns', '-ns', '-ls'
                  -stats     => array ref of misc stats   (optional)
                  -aafreq    => Hashref of AA frequencies (only for AAML)
                  -aadistmat => Bio::Matrix::PhylipDist   (only for AAML)
                  -aamldistmat => Bio::Matrix::PhylipDist   (only for pairwise AAML)
                  -ntfreq    => array ref of NT frequencies (only for BASEML)
                  -seqfile    => seqfile used
                  -kappa_mat => Bio::Matrix::PhylipDist of kappa values (only for BASEML)
                  -alpha_mat => Bio::Matrix::PhylipDist of alpha values (only for BASEML)
                  -NSSitesresult => arrayref of PAML::ModelResult
                  -input_params  => input params from .ctl file
                  -rst       => array reference of Bio::PrimarySeqI objects
                                of ancestral state reconstruction
                  -rst_persite=> arrayref of persite data, this is a complicated set of AoH
                  -rst_trees  => rst trees with changes coded on the tree

       See Also: Bio::Tree::TreeI, Bio::PrimarySeqI, Bio::Matrix::PhylipDist,
       Bio::Tools::Phylo::PAML

   next_tree
        Title   : next_tree
        Usage   : my $tree = $factory->next_tree;
        Function: Get the next tree from the factory
        Returns : L<Bio::Tree::TreeI>
        Args    : none

   get_trees
        Title   : get_trees
        Usage   : my @trees = $result->get_trees;
        Function: Get all the parsed trees as an array
        Returns : Array of trees
        Args    : none

   rewind_tree_iterator
        Title   : rewind_tree_iterator
        Usage   : $result->rewind_tree_iterator()
        Function: Rewinds the tree iterator so that next_tree can be
                  called again from the beginning
        Returns : none
        Args    : none

   add_tree
        Title   : add_tree
        Usage   : $result->add_tree($tree);
        Function: Adds a tree
        Returns : integer which is the number of trees stored
        Args    : L<Bio::Tree::TreeI>

   set_MLmatrix
        Title   : set_MLmatrix
        Usage   : $result->set_MLmatrix($mat)
        Function: Set the ML Matrix
        Returns : none
        Args    : Arrayref to MLmatrix (must be arrayref to 2D matrix whic is
                  lower triangle pairwise)

   get_MLmatrix
        Title   : get_MLmatrix
        Usage   : my $mat = $result->get_MLmatrix()
        Function: Get the ML matrix
        Returns : 2D Array reference
        Args    : none

   set_NGmatrix
        Title   : set_NGmatrix
        Usage   : $result->set_NGmatrix($mat)
        Function: Set the Nei & Gojobori Matrix
        Returns : none
        Args    : Arrayref to NGmatrix (must be arrayref to 2D matrix whic is
                  lower triangle pairwise)

   get_NGmatrix
        Title   : get_NGmatrix
        Usage   : my $mat = $result->get_NGmatrix()
        Function: Get the Nei & Gojobori matrix
        Returns : 2D Array reference
        Args    : none

   add_seq
        Title   : add_seq
        Usage   : $obj->add_seq($seq)
        Function: Add a Bio::PrimarySeq to the Result
        Returns : none
        Args    : Bio::PrimarySeqI
       See also : L<Bio::PrimarySeqI>

   reset_seqs
        Title   : reset_seqs
        Usage   : $result->reset_seqs
        Function: Reset the OTU seqs stored
        Returns : none
        Args    : none

   get_seqs
        Title   : get_seqs
        Usage   : my @otus = $result->get_seqs
        Function: Get the seqs Bio::PrimarySeq (OTU = Operational Taxonomic Unit)
        Returns : Array of Bio::PrimarySeq
        Args    : None
       See also : L<Bio::PrimarySeq>

   set_codon_pos_basefreq
        Title   : set_codon_pos_basefreq
        Usage   : $result->set_codon_pos_basefreq(@freqs)
        Function: Set the codon position base frequencies
        Returns : none
        Args    : Array of length 3 where each slot has a hashref
                  keyed on DNA base

   get_codon_pos_basefreq
        Title   : get_codon_pos_basefreq
        Usage   : my @basepos = $result->get_codon_pos_basefreq;
        Function: Get the codon position base frequencies
        Returns : Array of length 3 (each codon position), each
                  slot is a hashref keyed on DNA bases, the values are
                  the frequency of the base at that position for all sequences
        Args    : none
        Note    : The array starts at 0 so position '1' is in position '0'
                  of the array

   version
        Title   : version
        Usage   : $obj->version($newval)
        Function: Get/Set version
        Returns : value of version
        Args    : newvalue (optional)

   seqfile
        Title   : seqfile
        Usage   : $obj->seqfile($newval)
        Function: Get/Set seqfile
        Returns : value of seqfile
        Args    : newvalue (optional)

   model
        Title   : model
        Usage   : $obj->model($newval)
        Function: Get/Set model
        Returns : value of model
        Args    : on set, new value (a scalar or undef, optional)

   patterns
        Title   : patterns
        Usage   : $obj->patterns($newval)
        Function: Get/Set Patterns hash
        Returns : Hashref of pattern data
        Args    : [optional] Hashref of patterns
                : The hashref is typically
                : { -patterns => \@arrayref
                :   -ns       => $ns
                :   -ls       => $ls
                : }

   set_AAFreqs
        Title   : set_AAFreqs
        Usage   : $result->set_AAFreqs(\%aafreqs);
        Function: Get/Set AA freqs
        Returns : none
        Args    : Hashref, keys are the sequence names, each points to a hashref
                  which in turn has keys which are the amino acids

   get_AAFreqs
        Title   : get_AAFreqs
        Usage   : my %all_aa_freqs = $result->get_AAFreqs()
                   OR
                  my %seq_aa_freqs = $result->get_AAFreqs($seqname)
        Function: Get the AA freqs, either for every sequence or just
                  for a specific sequence
                  The average aa freqs for the entire set are also available
                  for the sequence named 'Average'
        Returns : Hashref
        Args    : (optional) sequence name to retrieve aa freqs for

   set_NTFreqs
        Title   : set_NTFreqs
        Usage   : $result->set_NTFreqs(\%aafreqs);
        Function: Get/Set NT freqs
        Returns : none
        Args    : Hashref, keys are the sequence names, each points to a hashref
                  which in turn has keys which are the amino acids

   get_NTFreqs
        Title   : get_NTFreqs
        Usage   : my %all_nt_freqs = $result->get_NTFreqs()
                   OR
                  my %seq_nt_freqs = $result->get_NTFreqs($seqname)
        Function: Get the NT freqs, either for every sequence or just
                  for a specific sequence
                  The average nt freqs for the entire set are also available
                  for the sequence named 'Average'
        Returns : Hashref
        Args    : (optional) sequence name to retrieve nt freqs for

   add_stat
        Title   : add_stat
        Usage   : $result->add_stat($stat,$value);
        Function: Add some misc stat valuess (key/value pairs)
        Returns : none
        Args    : $stat  stat name
                  $value stat value

   get_stat
        Title   : get_stat
        Usage   : my $value = $result->get_stat($name);
        Function: Get the value for a stat of a given name
        Returns : scalar value
        Args    : name of the stat

   get_stat_names
        Title   : get_stat_names
        Usage   : my @names = $result->get_stat_names;
        Function: Get the stat names stored for the result
        Returns : array of names
        Args    : none

   get_AADistMatrix
        Title   : get_AADistMatrix
        Usage   : my $mat = $obj->get_AADistMatrix()
        Function: Get AADistance Matrix
        Returns : value of AADistMatrix (Bio::Matrix::PhylipDist)
        Args    : none

   set_AADistMatrix
        Title   : set_AADistMatrix
        Usage   : $obj->set_AADistMatrix($mat);
        Function: Set the AADistrance Matrix (Bio::Matrix::PhylipDist)
        Returns : none
        Args    : AADistrance Matrix (Bio::Matrix::PhylipDist)

   get_AAMLDistMatrix
        Title   : get_AAMLDistMatrix
        Usage   : my $mat = $obj->get_AAMLDistMatrix()
        Function: Get AAMLDistance Matrix
        Returns : value of AAMLDistMatrix (Bio::Matrix::PhylipDist)
        Args    : none

   set_AAMLDistMatrix
        Title   : set_AAMLDistMatrix
        Usage   : $obj->set_AAMLDistMatrix($mat);
        Function: Set the AA ML Distrance Matrix (Bio::Matrix::PhylipDist)
        Returns : none
        Args    : AAMLDistrance Matrix (Bio::Matrix::PhylipDist)

   add_NSSite_result
        Title   : add_NSSite_result
        Usage   : $result->add_NSSite_result($model)
        Function: Add a NSsite result (PAML::ModelResult)
        Returns : none
        Args    : Bio::Tools::Phylo::PAML::ModelResult

   get_NSSite_results
        Title   : get_NSSite_results
        Usage   : my @results = @{$self->get_NSSite_results};
        Function: Get the reference to the array of NSSite_results
        Returns : Array of PAML::ModelResult results
        Args    : none

   set_CodonFreqs
        Title   : set_CodonFreqs
        Usage   : $obj->set_CodonFreqs($newval)
        Function: Get/Set the Codon Frequence table
        Returns : value of set_CodonFreqs (a scalar)
        Args    : on set, new value (a scalar or undef, optional)

   get_CodonFreqs
        Title   : get_CodonFreqs
        Usage   : my @codon_freqs = $result->get_CodonFreqs()
        Function: Get the Codon freqs
        Returns : Array
        Args    : none

   BASEML Relavent values
   get_KappaMatrix
        Title   : get_KappaMatrix
        Usage   : my $mat = $obj->get_KappaMatrix()
        Function: Get KappaDistance Matrix
        Returns : value of KappaMatrix (Bio::Matrix::PhylipDist)
        Args    : none

   set_KappaMatrix
        Title   : set_KappaMatrix
        Usage   : $obj->set_KappaMatrix($mat);
        Function: Set the KappaDistrance Matrix (Bio::Matrix::PhylipDist)
        Returns : none
        Args    : KappaDistrance Matrix (Bio::Matrix::PhylipDist)

   get_AlphaMatrix
        Title   : get_AlphaMatrix
        Usage   : my $mat = $obj->get_AlphaMatrix()
        Function: Get AlphaDistance Matrix
        Returns : value of AlphaMatrix (Bio::Matrix::PhylipDist)
        Args    : none

   set_AlphaMatrix
        Title   : set_AlphaMatrix
        Usage   : $obj->set_AlphaMatrix($mat);
        Function: Set the AlphaDistrance Matrix (Bio::Matrix::PhylipDist)
        Returns : none
        Args    : AlphaDistrance Matrix (Bio::Matrix::PhylipDist)

   set_input_parameter
        Title   : set_input_parameter
        Usage   : $obj->set_input_parameter($p,$vl);
        Function: Set an Input Parameter
        Returns : none
        Args    : $parameter and $value

   get_input_parameters
        Title   : get_input_parameters
        Usage   : $obj->get_input_parameters;
        Function: Get Input Parameters
        Returns : Hash of key/value pairs
        Args    : none

   reset_input_parameters
        Title   : reset_input_parameters
        Usage   : $obj->reset_input_parameters;
        Function: Reset the Input Parameters hash
        Returns : none
        Args    : none

Reconstructed Ancestral State relevant options

   add_rst_seq
        Title   : add_rst_seq
        Usage   : $obj->add_rst_seq($seq)
        Function: Add a Bio::PrimarySeq to the RST Result
        Returns : none
        Args    : Bio::PrimarySeqI
       See also : L<Bio::PrimarySeqI>

   reset_rst_seqs
        Title   : reset_rst_seqs
        Usage   : $result->reset_rst_seqs
        Function: Reset the RST seqs stored
        Returns : none
        Args    : none

   get_rst_seqs
        Title   : get_rst_seqs
        Usage   : my @otus = $result->get_rst_seqs
        Function: Get the seqs Bio::PrimarySeq
        Returns : Array of Bio::PrimarySeqI objects
        Args    : None
       See also : L<Bio::PrimarySeq>

   add_rst_tree
        Title   : add_rst_tree
        Usage   : $obj->add_rst_tree($tree)
        Function: Add a Bio::Tree::TreeI to the RST Result
        Returns : none
        Args    : Bio::Tree::TreeI
       See also : L<Bio::Tree::TreeI>

   reset_rst_trees
        Title   : reset_rst_trees
        Usage   : $result->reset_rst_trees
        Function: Reset the RST trees stored
        Returns : none
        Args    : none

   get_rst_trees
        Title   : get_rst_trees
        Usage   : my @otus = $result->get_rst_trees
        Function: Get the trees Bio::Tree::TreeI
        Returns : Array of Bio::Tree::TreeI objects
        Args    : None
       See also : L<Bio::Tree::TreeI>

   set_rst_persite
        Title   : set_rst_persite
        Usage   : $obj->set_rst_persite($newval)
        Function: Get/Set the per-site RST values
        Returns : value of set_rst_persite (a scalar)
        Args    : on set, new value (a scalar or undef, optional)

   get_rst_persite
        Title   : get_rst_persite
        Usage   : my @rst_persite = @{$result->get_rst_persite()}
        Function: Get the per-site RST values
        Returns : Array
        Args    : none