]> git.donarmstrong.com Git - biopieces.git/blobdiff - bp_bin/scores_to_dec
refactoring of assemble_pairs
[biopieces.git] / bp_bin / scores_to_dec
index ecf214848923f7ff08d149dc38e83ad363f42b1b..b69f37c950fecc3afa0c24a494dd17283b100fd8 100755 (executable)
 
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
-
-require 'biopieces'
-
-ILLUMINA_BASE = 64
-
-# 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 - ILLUMINA_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 = []
-
-bp = Biopieces.new
-
-options = bp.parse(ARGV, casts)
-
-bp.each_record do |record|
-  bp.puts record.scores2dec!
-end
-
 
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<