]> git.donarmstrong.com Git - biopieces.git/blobdiff - bp_bin/analyze_seq
adding bzip2 support in ruby
[biopieces.git] / bp_bin / analyze_seq
index 81ad0e16aa20393fad2662eb930c950e97d81822..c2b96a5070b252bbe89f9e2e1c1fbd63055432a0 100755 (executable)
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
-require 'seq'
+require 'maasha/biopieces'
+require 'maasha/seq'
 
 casts = []
 
-bp = Biopieces.new
+options = Biopieces.options_parse(ARGV, casts)
 
-options = bp.parse(ARGV, casts)
+Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output|
+  input.each_record do |record|
+    if record[:SEQ]
+      seq  = Seq.new(record[:SEQ_NAME], record[:SEQ], record[:SEQ_TYPE], record[:SCORE])
+      comp = seq.composition
 
-bp.each_record do |record|
-  if record.has_key? :SEQ
-    seq  = Seq.new(record[:SEQ_NAME], record[:SEQ], record[:SEQ_TYPE], record[:SCORE])
-    comp = seq.composition
+      comp.each_pair do |key,val|
+        record["RES[#{key}]"] = val
+      end
 
-    comp.each_pair do |key,val|
-      record["RES_#{key}"] = val
+      record["SOFT_MASK%"] = seq.soft_mask
+      record["HARD_MASK%"] = (comp["N"].to_f / (seq.len - seq.indels).to_f * 100.0).round(2)
+      record["GC%"]        = ((comp["G"] + comp["C"]).to_f / (seq.len - seq.indels).to_f * 100.0).round(2)
     end
 
-    record["HARD_MASK"] = seq.hard_mask
-    record["SOFT_MASK"] = seq.soft_mask
-    record["GC"]        = ((comp["G"] + comp["C"]).to_f / (seq.len - seq.indels).to_f * 100.0).round(2)
+    output.puts record
   end
-
-  bp.puts record
 end