require 'maasha/biopieces'
require 'maasha/seq'
-require 'pp'
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.has_key? :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["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)
+ output.puts record
end
-
- bp.puts record
end
-
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<