class Bio::PAML::Codeml
Description¶ ↑
Bio::PAML::Codeml
is a wrapper for estimating evolutionary rate using the CODEML tool. The class provides methods for generating the necessary configuration file, and running codeml with the specified binary. Codeml
output is returned when codeml is run. Bio::PAML::Codeml::Report
and Bio::PAML::Codeml::Rates
provide simple classes for parsing and accessing the Codeml
report and rates files respectively.
Examples¶ ↑
Example 1:
require 'bio' # Reads multi-fasta formatted file and gets a Bio::Alignment object. alignment = Bio::FlatFile.open(Bio::Alignment::MultiFastaFormat, 'example.fst').next_entry.alignment # Reads newick tree from a file tree = Bio::FlatFile.open(Bio::Newick, 'example.tree').next_entry.tree # Creates a Codeml object codeml = Bio::PAML::Codeml.new # Sets parameters codeml.parameters[:runmode] = 0 codeml.parameters[:RateAncestor] = 1 # You can also set many parameters at a time. codeml.parameters.update({ :alpha => 0.5, :fix_alpha => 0 }) # Executes codeml with the alignment and the tree report = codeml.query(alignment, tree)
Example 2 (Obsolete usage):
# Create a control file, setting some Codeml options # Default parameters are used otherwise, see RDoc for defaults # The names of the parameters correspond to those specified # in the Codeml documentation control_file = Tempfile.new('codeml_ctl') control_file.close(false) # Prepare output file as a temporary file output_file = Tempfile.new('codeml_test') output_file.close(false) Bio::PAML::Codeml.create_control_file(config_file.path, { :model => 1, :fix_kappa => 1, :aaRatefile => TEST_DATA + '/wag.dat', :seqfile => TEST_DATA + '/abglobin.aa', :treefile => TEST_DATA + '/abglobin.trees', :outfile => output_file.path, }) # Create an instance of Codeml specifying where the codeml binary is codeml = Bio::PAML::Codeml.new('/path/to/codeml') # Run codeml using a control file # Returns the command line output codeml_output = codeml.run(control_file)
Constants
- DEFAULT_PARAMETERS
Default parameters when running codeml.
The parameters whose values are different from the codeml defalut value (described in pamlDOC.pdf) in
PAML
4.1 are:seqfile, outfile, treefile, ndata, noisy, verbose, cleandata
- DEFAULT_PROGRAM
Default program name
Public Class Methods
OBSOLETE. This method will soon be removed. Instead, use create_control_file
(parameters, filename).
# File lib/bio/appl/paml/codeml.rb 160 def self.create_config_file(parameters, filename) 161 warn "The method Codeml.create_config_file(parameters, filename) will soon be removed. Instead, use Codeml.create_control_file(filename, parameters)." 162 create_control_file(parameters, filename) 163 end
Obsolete. This method will be removed in the future. Helper method for creating a codeml control file. Note that default parameters are automatically merged.
# File lib/bio/appl/paml/codeml.rb 148 def self.create_control_file(parameters, filename) 149 parameters = DEFAULT_PARAMETERS.merge(parameters) 150 File.open(filename, 'w') do |file| 151 parameters.each do |key, value| 152 file.puts "#{key.to_s} = #{value.to_s}" if value 153 end 154 end 155 filename 156 end
Public Instance Methods
OBSOLETE. This method should not be used. Instead, use parameters.
# File lib/bio/appl/paml/codeml.rb 133 def options 134 warn 'The method Codeml#options will be changed to be used for command line arguments in the future. Instead, use Codeml#parameters.' 135 parameters 136 end
OBSOLETE. This method should not be used. Instead, use parameters=(hash).
# File lib/bio/appl/paml/codeml.rb 140 def options=(hash) 141 warn 'The method Codeml#options=() will be changed to be used for command line arguments in the future. Instead, use Codeml#parameters=().' 142 self.parameters=(hash) 143 end
Runs the program on the internal parameters with the specified sequence alignment and tree.
Note that parameters and parameters are always modified, and parameters and parameters are modified when tree and aarate are specified respectively.
For other important information, see the document of Bio::PAML::Common#query
.
Arguments:
-
(required) alignment:
Bio::Alignment
object or similar object -
(optional) tree:
Bio::Tree
object -
(optional) aarate: String or nil
- Returns
-
Report
object
# File lib/bio/appl/paml/codeml.rb 183 def query(alignment, tree = nil, aarate = nil) 184 begin 185 aaratefile = prepare_aaratefile(aarate) 186 ret = super(alignment, tree) 187 ensure 188 finalize_aaratefile(aaratefile) 189 end 190 ret 191 end
Runs the program on the internal parameters with the specified sequence alignment data string and tree data string.
Note that parameters is always modified, and parameters, parameters, and parameters are modified when alignment, tree, and aarate are specified respectively.
It raises RuntimeError if seqfile is not specified in the argument or in the parameter.
For other important information, see the document of query method.
Arguments:
-
(optional) alignment: String
-
(optional) tree: String or nil
-
(optional) aarate: String or nil
- Returns
-
contents of output file (String)
# File lib/bio/appl/paml/codeml.rb 212 def query_by_string(alignment = nil, tree = nil, aarate = nil) 213 begin 214 aaratefile = prepare_aaratefile(aarate) 215 ret = super(alignment, tree) 216 ensure 217 finalize_aaratefile(aaratefile) 218 end 219 ret 220 end