]> git.donarmstrong.com Git - biopieces.git/blobdiff - bp_bin/digest_seq
added crufty puts method to fastq.rb
[biopieces.git] / bp_bin / digest_seq
index 3fab531b4249cd144a5092cb58eb15c4d2b29d87..7399ae0621b9101210960a2c2946e90138175128 100755 (executable)
 
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DESCRIPTION <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
-# Splits sequences in the stream at a given restriction enzyme's cleavage points.
+# Split sequences in the stream at a given restriction enzyme's cleavage points.
 
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
-require 'fasta'
-require 'seq'
+require 'maasha/biopieces'
+require 'maasha/fasta'
+require 'maasha/seq'
 
 casts = []
 casts << {:long=>'pattern', :short=>'p', :type=>'string', :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil}
 casts << {:long=>'cut_pos', :short=>'c', :type=>'int',    :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil}
 
-bp = Biopieces.new
-
-options = bp.parse(ARGV, casts)
-
-bp.each_record do |record|
-  bp.puts record
-
-  if record.has_key? :SEQ_NAME and record.has_key? :SEQ
-    seq    = Seq.new(record[:SEQ_NAME], record[:SEQ])
-    digest = Digest.new(seq, options[:pattern].to_s, options[:cut_pos])
-
-    digest.each do |subseq|
-      new_record            = subseq.to_bp
-      new_record[:REC_TYPE] = "DIGEST"
-      bp.puts new_record
+options = Biopieces.options_parse(ARGV, casts)
+
+Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output|
+  input.each_record do |record|
+    if record.has_key? :SEQ_NAME and record.has_key? :SEQ
+      seq    = Seq.new(record[:SEQ_NAME], record[:SEQ])
+      digest = Digest.new(seq, options[:pattern].to_s, options[:cut_pos])
+
+      digest.each do |subseq|
+        new_record            = subseq.to_bp
+
+        if new_record[:SEQ_NAME] =~ /\[(\d+)-(\d+)\]$/
+          s_beg = $1
+          s_end = $2
+        end
+
+        new_record[:S_BEG]    = s_beg 
+        new_record[:S_END]    = s_end
+        new_record[:REC_TYPE] = "DIGEST"
+        output.puts new_record
+      end
+    else
+      output.puts record
     end
   end
 end