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

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

πŸ’– NAME πŸ’–

Bio::Tools::Phylo::PAML::ModelResult β€” okay so bestie, this is the container for an NSSite Model Result from PAML. it holds one model's whole little situation. it's giving "glorified box, but a VERY important box" ✨

πŸŽ€ VERSION πŸŽ€

version 1.7.3 β€” that's the one, no cap. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

here's the whole flow, start to finish. you grab a PAML::Result object, then you loop through every model it's holding and pull the deets out of each one:

# get a ModelResult from a PAML::Result object
use Bio::Tools::Phylo::PAML;
my $paml = Bio::Tools::Phylo::PAML->new(-file => 'mlc');
my $result = $paml->next_result;
foreach my $model ( $result->get_NSSite_results ) {
  print $model->model_num, " ", $model->model_description, "\n";
  print $model->kappa, "\n";
  print $model->run_time, "\n";
# if you are using PAML < 3.15 then only one place for POS sites
 for my $sites ( $model->get_pos_selected_sites ) {
  print join("\t",@$sites),"\n";
 }
# otherwise query NEB and BEB slots
 for my $sites ( $model->get_NEB_pos_selected_sites ) {
   print join("\t",@$sites),"\n";
 }

 for my $sites ( $model->get_BEB_pos_selected_sites ) {
  print join("\t",@$sites),"\n";
 }

}
lowkey the important plot twist here: if you're on PAML < 3.15 there's only one place for POS sites (get_pos_selected_sites). otherwise you go query the NEB and BEB slots instead. iykyk 🧚

πŸ› οΈ METHODS πŸ› οΈ

new 🌸

birthing a brand-new object, the classic.

  • Title: new
  • Usage: my $obj = Bio::Tools::Phylo::PAML::ModelResult->new();
  • Function: Builds a new Bio::Tools::Phylo::PAML::ModelResult object 🫢
  • Returns: an instance of Bio::Tools::Phylo::PAML::ModelResult
  • Args:
    • -model_num β€” model number
    • -model_description β€” model description
    • -kappa β€” value of kappa
    • -time_used β€” amount of time
    • -pos_sites β€” arrayref of sites under positive selection
    • -neb_sites β€” arrayref of sites under positive selection (by NEB analysis)
    • -beb_sites β€” arrayref of sites under positive selection (by BEB analysis)
    • -trees β€” arrayref of tree(s) data for this model
    • -shape_params β€” hashref of parameters, and it's legit one of these two shapes:
( 'shape' => 'alpha',
  'gamma' => $g,
  'r' => $r,
  'f' => $f
)

OR

( 'shape' => 'beta',
  'p' => $p,
  'q' => $q
)
  • -likelihood β€” likelihood
  • -num_site_classes β€” number of site classes
  • -dnds_site_classes β€” hashref with two keys, 'p' and 'w', which each point to an array; each slot is for a different site class. 'w' is for dN/dS and 'p' is probability

model_num ⭐

  • Title: model_num
  • Usage: $obj->model_num($newval)
  • Function: Get/Set the Model number (0,1,2,3...)
  • Returns: value of model_num (a scalar)
  • Args: on set, new value (a scalar or undef, optional)

model_description πŸ’œ

  • Title: model_description
  • Usage: $obj->model_description($newval)
  • Function: Get/Set the model description. this is something like 'one-ratio', 'neutral', 'selection' ✨
  • Returns: value of description (a scalar)
  • Args: on set, new value (a scalar or undef, optional)

time_used ⏰

  • Title: time_used
  • Usage: $obj->time_used($newval)
  • Function: Get/Set the time it took to run this analysis
  • Returns: value of time_used (a scalar)
  • Args: on set, new value (a scalar or undef, optional)

kappa πŸ’«

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

num_site_classes πŸ”’

  • Title: num_site_classes
  • Usage: $obj->num_site_classes($newval)
  • Function: Get/Set the number of site classes for this model
  • Returns: value of num_site_classes (a scalar)
  • Args: on set, new value (a scalar or undef, optional)

dnds_site_classes 🌈

  • Title: dnds_site_classes
  • Usage: $obj->dnds_site_classes($newval)
  • Function: Get/Set dN/dS site classes, a hashref with 2 keys, 'p' and 'w', which point to arrays β€” one slot for each site class.
  • Returns: value of dnds_site_classes (a hashref)
  • Args: on set, new value (a scalar or undef, optional)

get_pos_selected_sites πŸ‘‘

  • Title: get_pos_selected_sites
  • Usage: my @sites = $modelresult->get_pos_selected_sites();
  • Function: Get the sites which PAML has identified as under positive selection (w > 1). this returns an array with each slot being a site, 4 values:
    • site location (in the original alignment)
    • Amino acid (I think in the first sequence)
    • P (P value)
    • Significance (** indicated > 99%, * indicates >=95%)
  • Returns: Array
  • Args: none

add_pos_selected_site πŸ“

  • Title: add_pos_selected_site
  • Usage: $result->add_pos_selected_site($site,$aa,$pvalue,$signif);
  • Function: Add a site to the list of positively selected sites
  • Returns: count of the number of sites stored
  • Args:
    • $site β€” site number (in the alignment)
    • $aa β€” amino acid under selection
    • $pvalue β€” float from 0->1 represent probability site is under selection according to this model
    • $signif β€” significance (coded as either empty, '*', or '**'

get_NEB_pos_selected_sites 🧚

  • Title: get_NEB_pos_selected_sites
  • Usage: my @sites = $modelresult->get_NEB_pos_selected_sites();
  • Function: Get the sites which PAML has identified as under positive selection (w > 1) using Naive Empirical Bayes. this returns an array with each slot being a site, 4 values:
    • site location (in the original alignment)
    • Amino acid (I think in the first sequence)
    • P (P value)
    • Significance (** indicated > 99%, * indicates > 95%)
    • post mean for w
  • Returns: Array
  • Args: none

add_NEB_pos_selected_site πŸ¦‹

  • Title: add_NEB_pos_selected_site
  • Usage: $result->add_NEB_pos_selected_site($site,$aa,$pvalue,$signif);
  • Function: Add a site to the list of positively selected sites
  • Returns: count of the number of sites stored
  • Args:
    • $site β€” site number (in the alignment)
    • $aa β€” amino acid under selection
    • $pvalue β€” float from 0->1 represent probability site is under selection according to this model
    • $signif β€” significance (coded as either empty, '*', or '**'
    • $postmean β€” post mean for w

get_BEB_pos_selected_sites 🌟

  • Title: get_BEB_pos_selected_sites
  • Usage: my @sites = $modelresult->get_BEB_pos_selected_sites();
  • Function: Get the sites which PAML has identified as under positive selection (w > 1) using Bayes Empirical Bayes. this returns an array with each slot being a site, 6 values:
    • site location (in the original alignment)
    • Amino acid (I think in the first sequence)
    • P (P value)
    • Significance (** indicated > 99%, * indicates > 95%)
    • post mean for w (mean)
    • Standard Error for w (SE)
  • Returns: Array
  • Args: none

add_BEB_pos_selected_site πŸŽ€

  • Title: add_BEB_pos_selected_site
  • Usage: $result->add_BEB_pos_selected_site($site,$aa,$pvalue,$signif);
  • Function: Add a site to the list of positively selected sites
  • Returns: count of the number of sites stored
  • Args:
    • $site β€” site number (in the alignment)
    • $aa β€” amino acid under selection
    • $pvalue β€” float from 0->1 represent probability site is under selection according to this model
    • $signif β€” significance (coded as either empty, '*', or '**'
    • $postmean β€” post mean for w
    • $SE β€” Standard Error for w

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>

shape_params πŸ’ 

  • Title: shape_params
  • Usage: $obj->shape_params($newval)
  • Function: Get/Set shape params for the distribution, 'alpha', 'beta' which is a hashref with 1 keys, 'p' and 'q'
  • Returns: value of shape_params (a scalar)
  • Args: on set, new value (a scalar or undef, optional)

likelihood πŸ“ˆ

  • Title: likelihood
  • Usage: $obj->likelihood($newval)
  • Function: log likelihood
  • Returns: value of likelihood (a scalar)
  • Args: on set, new value (a scalar or undef, optional)

πŸ’Œ FEEDBACK πŸ’Œ

Mailing lists πŸ“¬

user feedback is an integral part of the evolution of this and other Bioperl modules, fr fr. 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/Support.html    - 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 responsive 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 the web:

https://github.com/bioperl/bio-tools-phylo-paml/issues

✍️ AUTHOR ✍️

Jason Stajich <jason@bioperl.org> β€” the icon, the moment, the main character πŸ’…

this software is copyright (c) by Jason Stajich <jason@bioperl.org>.

this software is available under the same terms as the perl 5 programming language system itself.


okay that's the whole page bestie, you ate πŸ’– this was Bio::T...Result(3pm) from the User Contributed Perl Documentation β€” perl v5.34.0, dated 2022-10-14. go forth and model your sites, queen πŸ‘‘βœ¨

πŸ“¦ where this page comes from