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] and (record[:ADAPTOR_POS_LEFT] or record[:ADAPTOR_POS_RIGHT])
+ entry = Seq.new_bp(record)
-bp.each_record do |record|
- if record.has_key? :SEQ and record.has_key? :ADAPTOR_POS
- record[:SEQ] = record[:SEQ][0 ... record[:ADAPTOR_POS].to_i]
- record[:SCORES] = record[:SCORES][0 ... record[:ADAPTOR_POS].to_i] if record[:SCORES]
- record[:SEQ_LEN] = record[:SEQ].length
- end
+ if record[:ADAPTOR_POS_RIGHT]
+ entry = entry[0 ... record[:ADAPTOR_POS_RIGHT].to_i]
+ end
+
+ if record[:ADAPTOR_POS_LEFT]
+ if record[:ADAPTOR_POS_LEFT].to_i + record[:ADAPTOR_LEN_LEFT].to_i < entry.length
+ entry = entry[record[:ADAPTOR_POS_LEFT].to_i + record[:ADAPTOR_LEN_LEFT].to_i .. -1]
+ end
+ end
- bp.puts record
+ record.merge! entry.to_bp
+ end
+
+ output.puts record
+ end
end