class Mizlab::Blast
Public Instance Methods
query(q, opts = {})
click to toggle source
Execute blast+ @param [Bio::Sequence, Bio::Sequence::NA, Bio::Sequence::AA] q Query sequence @param [Hash] opts commandline arguments optionaly @return [Bio::Blast::Report] Result for blast+
# File lib/mizlab.rb, line 294 def query(q, opts = {}) # NOTE: I dont use **kwargs for compatibility case q when Bio::Sequence q = q.output(:fasta) when Bio::Sequence::NA, Bio::Sequence::AA, Bio::Sequence::Generic q = q.to_fasta("query", 70) else q = q.to_s end stdout, _ = exec_local(q, opts) return parse_result(stdout) end
Private Instance Methods
exec_local(query_string, opts = {})
click to toggle source
Execute blast on local @param [string] query_string Query string, fasta etc @param [Hash] opts commandline arguments optionaly @return [Array] Array [stdout, stderr] as string TODO: compatibility with original
# File lib/mizlab.rb, line 315 def exec_local(query_string, opts = {}) # NOTE: I dont use **kwargs for compatibility cmd = [] cmd << @program if @program cmd += ["-db", @db] if @program cmd += ["-outfmt", "5"] opts.each do |kv| cmd += kv.map(&:to_s) end return execute_command(cmd, stdin: query_string) end
execute_command(cmd, stdin)
click to toggle source
Execute command on shell @param [Array] cmd Array of command strings that splited by white space @param [String] stdin String of stdin @return [Array] String of stdout and stderr @raise [IOError] Command finished without status 0
# File lib/mizlab.rb, line 332 def execute_command(cmd, stdin) stdout, stderr, status = Open3.capture3(cmd.join(" "), stdin_data: stdin) raise IOError, stderr unless status == 0 return [stdout, stderr] end