Class Bio::Meme::Mast
In: lib/bio/appl/meme/mast.rb
lib/bio/appl/meme/mast/report.rb
Parent: Object

Description

Bio::Meme::Mast is a wrapper for searching a database using sequence motifs. The code will read options from a Hash and run the program. Parsing of the output is provided by Bio::Meme::Mast::Report. Before running, options[:mfile] and options[:d] must be set in the constructor or Mast.config(options = {})

Usage

  mast = Mast.new('/path/to/mast')
  or with options
  mast = Mast.new('/path/to/mast', {:mfile => 'meme.out', :d => '/shared/db/nr'})

  report = Mast::Report.new(mast.run)
  report.each do |motif|
    puts motif.length
  end

Methods

check_options   config   new   run  

Included Modules

Bio::Command

Classes and Modules

Class Bio::Meme::Mast::Report

Constants

DEFAULT_OPTIONS = { # required :mfile => nil, :d => nil, # optional :stdin => nil, # may not work as expected :count => nil, :alphabet => nil, :stdout => true, :text => false, :sep => false, :norc => false, :dna => false, :comp => false, :rank => nil, :smax => nil, :ev => nil, :mt => nil, :w => false, :bfile => nil, :seqp => false, :mf => nil, :df => nil, :minseqs => nil, :mev => nil, :m => nil, :diag => nil, :best => false, :remcorr => false, :brief => false, :b => false, :nostatus => true, :hit_list => true, }

Attributes

cmd  [R]  The command line String to be executed
options  [RW]  A Hash of options for Mast

Public Class methods

Create a mast instance

  m = Mast.new('/usr/local/bin/mast')

Arguments:

  • (required) mast_location: String
Raises:ArgumentError if mast program is not found
Returns:a Bio::Meme::Mast object

[Source]

     # File lib/bio/appl/meme/mast.rb, line 96
 96:     def initialize(mast_location, options = {})
 97:       unless File.exists?(mast_location)
 98:         raise ArgumentError.new("mast: command not found : #{mast_location}")
 99:       end
100:       @binary = mast_location
101:       options.empty? ? config(DEFAULT_OPTIONS) : config(options)
102:     end

Public Instance methods

Checks if input/database files exist and options are valid

Raises:ArgumentError if the motifs file does not exist
Raises:ArgumentError if the database file does not exist
Raises:ArgumentError if there is an invalid option

[Source]

     # File lib/bio/appl/meme/mast.rb, line 136
136:     def check_options
137:       @options.each_key do |k|
138:         raise ArgumentError.new("Invalid option: #{k}") unless DEFAULT_OPTIONS.has_key?(k)
139:       end
140:       raise ArgumentError.new("Motif file not found: #{@options[:mfile]}") if @options[:mfile].nil? or !File.exists?(@options[:mfile])
141:       raise ArgumentError.new("Database not found: #{@options[:d]}") if @options[:d].nil? or !File.exists?(@options[:d])
142:     end

Builds the command line string any options passed in will be merged with DEFAULT_OPTIONS Mast usage: mast <mfile> <opts> <flags>

  mast.config({:mfile => "meme.out", :d => "/path/to/fasta/db"})

Arguments:

  • (required) options: Hash (see DEFAULT_OPTIONS)
Returns:the command line string

[Source]

     # File lib/bio/appl/meme/mast.rb, line 114
114:     def config(options)
115:       @options = DEFAULT_OPTIONS.merge(options)
116:       mfile, opts, flags = "", "", ""
117:       @options.each_pair do |opt, val|
118:         if val.nil? or val == false
119:           next
120:         elsif opt == :mfile
121:           mfile = val
122:         elsif val == true
123:           flags << " -#{opt}"
124:         else
125:           opts << " -#{opt} #{val}"
126:         end
127:       end
128:       @cmd = "#{@binary} #{mfile + opts + flags}"
129:     end

Run the mast program


Returns:Bio::Meme::Mast::Report object

[Source]

     # File lib/bio/appl/meme/mast.rb, line 148
148:     def run
149:       check_options
150:       call_command(@cmd) {|io| @output = io.read }
151:       Report.new(@output)
152:     end

[Validate]