X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bp_bin%2Fscores_to_dec;h=b69f37c950fecc3afa0c24a494dd17283b100fd8;hb=8224b617aee82379d5bbbcb8285d28814aea32bd;hp=9c94454be65b7028b20f1f2113fb086b37db1e2a;hpb=4f11b77e8927625e3d5c8ae4f968412d5f44a534;p=biopieces.git diff --git a/bp_bin/scores_to_dec b/bp_bin/scores_to_dec index 9c94454..b69f37c 100755 --- a/bp_bin/scores_to_dec +++ b/bp_bin/scores_to_dec @@ -28,37 +28,24 @@ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< - -require 'biopieces' - -# Expading class Hash with possibly evil monkey patch. -class Hash - # Method to convert scores from ASCII encode string to - # a semi-colon seperated string of decimal values. - def scores2dec!(base) - if self.has_key? :SCORES - self[:SCORES].gsub! /./ do |score| - score = (score.ord - base).to_s + ";" - end - - self[:SCORES].chomp! ";" +require 'maasha/biopieces' +require 'maasha/seq' +require 'narray' + +options = Biopieces.options_parse(ARGV) + +Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output| + input.each_record do |record| + if record[:SCORES] + na = NArray.to_na(record[:SCORES], "byte") + na -= Seq::SCORE_BASE + record[:SCORES] = na.to_a.join("; ") end - self + output.puts record end end -casts = [] -casts << {:long=>'base', :short=>'b', :type=>'uint', :mandatory=>false, :default=>64, :allowed=>"33,59,64", :disallowed=>nil} - -bp = Biopieces.new - -options = bp.parse(ARGV, casts) - -bp.each_record do |record| - bp.puts record.scores2dec!(options[:base]) -end - # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<