require 'maasha/seq'
casts = []
+casts << {:long=>'delimiter', :short=>'d', :type=>'string', :mandatory=>true, :default=>"", :allowed=>nil, :disallowed=>nil}
-bp = Biopieces.new
-
-options = bp.parse(ARGV, casts)
+options = Biopieces.options_parse(ARGV, casts)
+sequences = []
seq = Seq.new(nil, "")
-bp.each_record do |record|
- if record.has_key? :SEQ
- unless seq.seq_name
- seq.seq_name = record[:SEQ_NAME]
+Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output|
+ input.each_record do |record|
+ if record.has_key? :SEQ
+ unless seq.seq_name
+ seq.seq_name = record[:SEQ_NAME]
+ end
+ sequences << record[:SEQ]
end
- seq.seq << record[:SEQ]
+
+ output.puts record
end
- bp.puts record
+ unless sequences.empty?
+ seq.seq = sequences.join(options[:delimiter].to_s)
+ new_record = seq.to_bp
+ new_record[:REC_TYPE] = "JOIN"
+ output.puts new_record
+ end
end
-if seq.seq != ""
- new_record = seq.to_bp
- new_record[:REC_TYPE] = "JOIN"
- bp.puts new_record
-end
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<