# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-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
-
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<