X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bp_bin%2Fusearch_seq;h=20752854a1e2ef281bc3d2c0e7559a72313cedee;hb=7f343b6f3e0240183f8002aafd485ade5d149417;hp=9bd3d46469b5fb9aacd910356a4e6335c0d83464;hpb=8c572d5e8bf807c65a7b08383dab3b644aa14842;p=biopieces.git diff --git a/bp_bin/usearch_seq b/bp_bin/usearch_seq index 9bd3d46..2075285 100755 --- a/bp_bin/usearch_seq +++ b/bp_bin/usearch_seq @@ -30,67 +30,7 @@ require 'maasha/biopieces' require 'maasha/fasta' - -class Usearch - include Enumerable - - def initialize(infile, outfile, options) - @infile = infile - @outfile = outfile - @options = options - @command = [] - end - - # Method to execute database search. - def usearch - @command << "usearch --query #{@infile} --db #{@options[:database]} --userout #{@outfile}" - @command << "--userfields target+tloz+thiz+query+bits+strand" - @command << "--id #{@options[:identity]}" if @options.has_key? :identity - @command << "--evalue #{@options[:e_val]}" if @options.has_key? :e_val - - execute - end - - # Method to parse a Useach .uc file and for each line of data - # yield a Biopiece record. - def each - record = {} - - File.open(@outfile, mode="r") do |ios| - ios.gets # skip comment line - ios.each_line do |line| - fields = line.chomp.split("\t") - - record[:REC_TYPE] = "USEARCH" - record[:S_ID] = fields[0] - record[:S_BEG] = fields[1].to_i - record[:S_END] = fields[2].to_i - record[:Q_ID] = fields[3] - record[:SCORE] = fields[4].to_f - record[:STRAND] = fields[5] - - yield record - end - end - - self # conventionally - end - - private - - # Method to execute a command using a system() call. - # The command is composed of bits from the @command variable. - def execute - @command.unshift "nice -n 19" - @command << "--rev" - @command << "> /dev/null 2>&1" unless @options[:verbose] - command = @command.join(" ") - system(command) - raise "Command failed: #{command}" unless $?.success? - - @command = [] - end -end +require 'maasha/usearch' casts = [] casts << {:long=>'database', :short=>'d', :type=>'file!', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil} @@ -116,11 +56,11 @@ Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output| end end - uc = Usearch.new(infile, outfile, options) + us = Usearch.new(infile, outfile, options) - uc.usearch + us.usearch - uc.each do |record| + us.each_hit do |record| output.puts record end end