Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Bio::Tools::Run::PhyloUserRContributed Perl DocuBio::Tools::Run::Phylo::SLR(3)

       Bio::Tools::Run::Phylo::SLR - Wrapper around the	SLR program

	 use Bio::Tools::Run::Phylo::SLR;
	 use Bio::AlignIO;
	 use Bio::TreeIO;
	 use Bio::SimpleAlign;

	 my $alignio = Bio::AlignIO->new
	     (-format => 'fasta',
	      -file   => 't/data/219877.cdna.fasta');

	 my $aln = $alignio->next_aln;

	 my $treeio = Bio::TreeIO->new
	     (-format => 'newick', -file => 't/data/219877.tree');

	 my $tree = $treeio->next_tree;

	 my $slr = Bio::Tools::Run::Phylo::SLR->new();
	 # $rc = 1 for success,	0 for errors
	 my ($rc,$results) = $slr->run();

	 my $positive_sites = $results->{'positive'};

	 print "# Site\tNeutral\tOptimal\tOmega\t",
	 foreach my $positive_site (@$positive_sites) {
		 $positive_site->[0], "\t",
		 $positive_site->[1], "\t",
		 $positive_site->[2], "\t",
		 $positive_site->[3], "\t",
		 $positive_site->[4], "\t",
		 $positive_site->[5], "\t",
		 $positive_site->[6], "\t",
		 $positive_site->[7], "\t",
		 $positive_site->[8], "\t",

       This is a wrapper around	the SLR	program. See for more information.

       This module is more about generating the	proper ctl file	and will run
       the program in a	separate temporary directory to	avoid creating temp
       files all over the place.

   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.			- General discussion	- About	the mailing lists

       Please direct usage questions or	support	issues to the mailing list:

       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 the

AUTHOR - Albert	Vilella
       Email avilella-at-gmail-dot-com

       Additional contributors names and emails	here

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

   Default Values

       seqfile [incodon]
	 File from which to read alignment of codon sequences. The file
	 should	be in PAML format.

       treefile	[intree]
	 File from which tree should be	read. The tree should be in Nexus

       outfile [slr.res]
	 File to which results are written. If the file	already	exists,	it
	 be overwritten.

       reoptimise [1]
	 Should	the branch lengths, omega and kappa be reoptimized?
	 0 - no
	 1 - yes.

       kappa [2.0]
	 Value for kappa. If 'reoptimise' is specified,	the value
	 given will be used as am initial estimate,

       omega [0.1]
	 Value for omega (dN/dS). If 'reoptimise' is specified,	the value
	 given will be used as an initial estimate.

       codonf [0]
	 How codon frequencies are estimated:
	   0: F61/F60  Estimates used are the empirical	frequencies from the
	   1: F3x4     The frequencies of nucleotides at each codon position
	 are estimated from the	data and then multiplied together to get the
	 frequency of observing	a given	codon. The frequency of	stop codons is
	 set to	zero, and all other frequencies	scaled appropriately.
	   2: F1x4     Nucleotide frequencies are estimated from the data
	 (not taking into account at which position in the codon it occurs).
	 The nucleotide	frequencies are	multiplied together to get the
	 of observing and then corrected for stop codons.

       freqtype	[0]
	 How codon frequencies are incorporated	into the substitution matrix.
	 0: q_{ij} = pi_{j} s_{ij}
	 1: q_{ij} = \sqrt(pi_j/pi_i) s_{ij}
	 2: q_{ij} = \pi_{n} s_{ij}, where n is	the nucleotide that the
	 subsitution is	to.
	 3: q_{ij} = s_{ij} / pi_i
	 Option	0 is the tradition method of incorporating equilibrium
	 into subsitution matrices (Felsenstein	1981; Goldman and Yang,	1994)
	 Option	1 is described by Goldman and Whelan (2002), in	this case with
	 additional parameter set to 0.5.
	 Option	2 was suggested	by Muse	and Gaut (1994).
	 Option	3 is included as an experiment,	originally suggested by	Bret
	 it does not appear to describe	evolution very successfully and	should
	 be used for analyses.

	 Kosakovsky-Pond has repeatedly	stated that he finds incorporating codon
	 frequencies in	the manner of option 2 to be superior to option	0. We find
	 that option 1 tends to	perform	better than either of these options.

       positive_only [0]
	 If only positively selected sites are of interest, set	this to	"1".
	 Calculation will be slightly faster, but information about sites
	 purifying selection is	lost.

       gencode [universal]
	 Which genetic code to use when	determining whether a given mutation
	 is synonymous or nonsynonymous. Currently only	"universal" and
	 "mammalian" mitochondrial are supported.

       nucleof [0]
	 Allow for empirical exchangabilities for nucleotide substitution.
	 0: No adjustment. All nucleotides treated the same, modulo
	 transition / transversion.
	 1: The	rate at	which a	substitution caused a mutation from nucleotide
	 a to nucleotide b is adjust by	a constant N_{ab}. This	adjustment is
	 in addition to	other adjustments (e.g.	transition / transversion or
	 base frequencies).

       aminof [0]
	 Incorporate amino acid	similarity parameters into substitution
	 adjusting omega for a change between amino acid i and amino acid j.
	 A_{ij}	is a symmetric matrix of constants representing	amino acid
	 0: Constant omega for all amino acid changes
	 1: omega_{ij} = omega^{A_{ij}}
	 2: omega_{ij} = a_{ij}	log(omega) / [ 1 - exp(-a_{ij} log(omega)) ]
	 Option	1 has the same form as the original codon subsitution model
	 proposed by Goldman and Yang (but with	potentially different
	 Option	2 has a	more population	genetic	derivtion, with	omega being
	 interpreted as	the ratio of fixation probabilities.

       nucfile [nuc.dat]
	 If nucleof is non-zero, read nucleotide substitution constants	from
	 nucfile. If this file does not	exist, hard coded constants are	used.

       aminofile [amino.dat]
	 If aminof is non-zero,	read amino acid	similarity constants from
	 aminofile. If this file does not exist, hard coded constants are

       timemem [0]
	 Print summary of real time and	CPU time used. Will eventually print
	 summary of memory use as well.

       ldiff [3.841459]
	 Twice log-likelihood difference used as a threshold for calculating
	 support (confidence) intervals	for sitewise omega estimates. This
	 value should be the quantile from a chi-square	distribution with one
	 degree	of freedom corresponding to the	support	required.
	 E.g. qchisq(0.95,1) = 3.841459
	    0.4549364 =	50% support
	    1.323304  =	75% support
	    2.705543  =	90% support
	    3.841459  =	95% support
	    6.634897  =	99% support
	    7.879439  =	99.5% support
	   10.82757   =	99.9% support

       paramin []
	 If not	blank, read in parameters from file given by the argument.

       paramout	[]
	 If not	blank, write out parameter estimates to	file given.

       skipsitewise [0]
	 Skip sitewise estimation of omega. Depending on other options given,
	 either	calculate maximum likelihood or	likelihood fixed at parameter
	 values	given.

       seed [0]
	 Seed for random number	generator. If seed is 0, then previously
	 produced seed file (~/.rng64) is used.	If this	does not exist,	the
	 random	number generator is initialised	using the clock.

       saveseed	[1]
	 If non-zero, save finial seed in file (~/.rng64) to be	used as
	 seed in future	runs of	program.

   Results Format
       Results file (default: slr.res) ------------ Results are	presented in
       nine columns

	 Number	of sites in alignment

	 (minus) Log-probability of observing site given that it was
	 evolving neutrally (omega=1)

	 (minus) Log-probability of observing site given that it was
	 evolving at the optimal value of omega.

	 The value of omega which maximizes the	log-probability	of observing

	 Log-likelihood	ratio statistic	for non-neutral	selection (or
	 positive selection if the positive_only option	is set to 1).
	 LRT_Stat = 2 *	(Neutral-Optimal)

	 P-value for non-neutral (or positive) selection at a site,
	 unadjusted for	multiple comparisons.

       Adj. Pval
	 P-value for non-neutral (or positive) selection at a site, after
	 adjusting for multiple	comparisons using the Hochberg procedure
	 (see the file "MultipleComparisons.txt" in the	doc directory).

	 A simple visual guide to the result. Sites detected as	having been
	 under positive	selection are marked with a '+', sites under
	 purifying selection are marked	with '-'. The number of	symbols
	   Number symbols      Threshold
		 1	       95%
		 2	       99%
		 3	       95% after adjustment
		 4	       99% after adjustment

	 Occasionally the result may also contain an exclamation mark. This
	 indicates that	the observation	at a site is not significantly
	 different from	random (equivalent to infinitely strong	positive
	 selection). This may indicate that the	alignment at that site is bad


	 The following events are flagged:
	 Synonymous	       All codons at a site code for the same amino
	 Single	character      Only one	sequence at the	site is	ungapped,
			       the result of a recent insertion	for example.
	 All gaps	       All sequences at	a site contain a gap

	 Sites marked "Single character" or "All gaps" are not counted
	 towards the number of sites for the purposes of correcting for
	 multiple comparisons since it is not possible to detect selection
	 from none or one observation under the	assumptions made by the
	 sitewise likelihood ratio test.

	Title	: program_name
	Usage	: $factory->program_name()
	Function: holds	the program name
	Returns:  string
	Args	: None

	Title	: program_dir
	Usage	: ->program_dir()
	Function: returns the program directory, obtained from ENV variable.
	Returns:  string
	Args	:

	Title	: new
	Usage	: my $obj = Bio::Tools::Run::Phylo::SLR->new();
	Function: Builds a new Bio::Tools::Run::Phylo::SLR object
	Returns	: Bio::Tools::Run::Phylo::SLR
	Args	: -alignment =>	the Bio::Align::AlignI object
		  -save_tempfiles => boolean to	save the generated tempfiles and
				     NOT cleanup after onesself	(default FALSE)
		  -tree	=> the Bio::Tree::TreeI	object
		  -params => a hashref of SLR parameters (all passed to	set_parameter)
		  -executable => where the SLR executable resides

       See also: Bio::Tree::TreeI, Bio::Align::AlignI

	Title	: prepare
	Usage	: my $rundir = $slr->prepare($aln);
	Function: prepare the SLR analysis using the default or	updated	parameters
		  the alignment	parameter must have been set
	Returns	: value	of rundir
	Args	: L<Bio::Align::AlignI>	object,
		  L<Bio::Tree::TreeI> object

	Title	: run
	Usage	: my ($rc,$parser) = $slr->run($aln,$tree);
	Function: run the SLR analysis using the default or updated parameters
		  the alignment	parameter must have been set
	Returns	: Return code, L<Bio::Tools::Phylo::SLR>
	Args	: L<Bio::Align::AlignI>	object,
		  L<Bio::Tree::TreeI> object

	Title	: error_string
	Usage	: $obj->error_string($newval)
	Function: Where	the output from	the last analysus run is stored.
	Returns	: value	of error_string
	Args	: newvalue (optional)

	Title	: alignment
	Usage	: $slr->align($aln);
	Function: Get/Set the L<Bio::Align::AlignI> object
	Returns	: L<Bio::Align::AlignI>	object
	Args	: [optional] L<Bio::Align::AlignI>
	Comment	: We could potentially add support for running directly	on a file
		  but we shall keep it simple
	See also: L<Bio::SimpleAlign>

	Title	: tree
	Usage	: $slr->tree($tree, %params);
	Function: Get/Set the L<Bio::Tree::TreeI> object
	Returns	: L<Bio::Tree::TreeI>
	Args	: [optional] $tree => L<Bio::Tree::TreeI>,

	Comment	: We could potentially add support for running directly	on a file
		  but we shall keep it simple
	See also: L<Bio::Tree::Tree>

	Title	: get_parameters
	Usage	: my %params = $self->get_parameters();
	Function: returns the list of parameters as a hash
	Returns	: associative array keyed on parameter names
	Args	: none

	Title	: set_parameter
	Usage	: $slr->set_parameter($param,$val);
	Function: Sets a SLR parameter,	will be	validated against
		  the valid values as set in the %VALIDVALUES class variable.
		  The checks can be ignored if one turns off param checks like this:
	Returns	: boolean if set was success, if verbose is set	to -1
		  then no warning will be reported
	Args	: $param => name of the	parameter
		  $value => value to set the parameter to
	See also: L<no_param_checks()>

	Title	: set_default_parameters
	Usage	: $slr->set_default_parameters(0);
	Function: (Re)set the default parameters from the defaults
		  (the first value in each array in the
		   %VALIDVALUES	class variable)
	Returns	: none
	Args	: boolean: keep	existing parameter values

Bio::Tools::Run::WrapperBase methods
	Title	: no_param_checks
	Usage	: $obj->no_param_checks($newval)
	Function: Boolean flag as to whether or	not we should
		  trust	the sanity checks for parameter	values
	Returns	: value	of no_param_checks
	Args	: newvalue (optional)

	Title	: save_tempfiles
	Usage	: $obj->save_tempfiles($newval)
	Returns	: value	of save_tempfiles
	Args	: newvalue (optional)

	Title	: outfile_name
	Usage	: my $outfile =	$slr->outfile_name();
	Function: Get/Set the name of the output file for this run
		  (if you wanted to do something special)
	Returns	: string
	Args	: [optional] string to set value to

	Title	: tempdir
	Usage	: my $tmpdir = $self->tempdir();
	Function: Retrieve a temporary directory name (which is	created)
	Returns	: string which is the name of the temporary directory
	Args	: none

	Title	: cleanup
	Usage	: $slr->cleanup();
	Function: Will cleanup the tempdir directory after an SLR run
	Returns	: none
	Args	: none

	Title	: io
	Usage	: $obj->io($newval)
	Function:  Gets	a L<Bio::Root::IO> object
	Returns	: L<Bio::Root::IO>
	Args	: none

perl v5.32.1			  2022-04-03	Bio::Tools::Run::Phylo::SLR(3)

NAME | SYNOPSIS | DESCRIPTION | FEEDBACK | AUTHOR - Albert Vilella | CONTRIBUTORS | APPENDIX | Bio::Tools::Run::WrapperBase methods

Want to link to this manual page? Use this URL:

home | help