X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bp_bin%2Fscores_to_dec;h=b69f37c950fecc3afa0c24a494dd17283b100fd8;hb=48bea5c28b89dc5586d0bddb338ccd6ba23aa1f9;hp=2d91c2bda001f24767f1208d5930291fe24d014b;hpb=dfe922540177aeaad25c2da595b9bac1a2205c27;p=biopieces.git diff --git a/bp_bin/scores_to_dec b/bp_bin/scores_to_dec index 2d91c2b..b69f37c 100755 --- a/bp_bin/scores_to_dec +++ b/bp_bin/scores_to_dec @@ -30,29 +30,19 @@ require 'maasha/biopieces' require 'maasha/seq' - -# 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! - if self.has_key? :SCORES - self[:SCORES].gsub! /./ do |score| - score = (score.ord - Seq::SCORE_BASE).to_s + ";" - end - - self[:SCORES].chomp! ";" - end - - self - end -end +require 'narray' options = Biopieces.options_parse(ARGV) Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output| input.each_record do |record| - output.puts record.scores2dec! + if record[:SCORES] + na = NArray.to_na(record[:SCORES], "byte") + na -= Seq::SCORE_BASE + record[:SCORES] = na.to_a.join("; ") + end + + output.puts record end end