]> git.donarmstrong.com Git - biopieces.git/blobdiff - bp_bin/clip_adaptor
fixed seq qual length check
[biopieces.git] / bp_bin / clip_adaptor
index 2056f2d31a1fadfe960931fcc16898a460a5d427..1e722b28ba8f64c322006e566d61c00681bb70b9 100755 (executable)
 
 
 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.subseq!(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.subseq!(record[:ADAPTOR_POS_LEFT].to_i + record[:ADAPTOR_LEN_LEFT].to_i)
+        end
+      end
 
-  bp.puts record
+      record.merge! entry.to_bp
+    end
+
+    output.puts record
+  end
 end