]> git.donarmstrong.com Git - biopieces.git/blobdiff - bp_bin/join_seq
refactoring of assemble_pairs
[biopieces.git] / bp_bin / join_seq
index de80ad2a53246c67385bc4c3a0d28a9f721e87f4..5804624df40bbacc26feea12c16919ca0febd594 100755 (executable)
@@ -33,29 +33,33 @@ require 'maasha/fasta'
 require 'maasha/seq'
 
 casts = []
+casts << {:long=>'delimiter', :short=>'d', :type=>'string', :mandatory=>true, :default=>"", :allowed=>nil, :disallowed=>nil}
 
-bp = Biopieces.new
+options = Biopieces.options_parse(ARGV, casts)
 
-options = bp.parse(ARGV, casts)
+sequences = []
+seq = Seq.new(seq: "")
 
-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[: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
 
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<