]> git.donarmstrong.com Git - biopieces.git/blobdiff - bp_bin/clip_adaptor
adding bzip2 support in ruby
[biopieces.git] / bp_bin / clip_adaptor
index 5cb2fa5ae083756c629849d08502c3ce9711386a..1e722b28ba8f64c322006e566d61c00681bb70b9 100755 (executable)
@@ -30,6 +30,7 @@
 
 
 require 'maasha/biopieces'
+require 'maasha/seq'
 
 casts = []
 
@@ -37,10 +38,20 @@ 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 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
+    if record[:SEQ] and (record[:ADAPTOR_POS_LEFT] or record[:ADAPTOR_POS_RIGHT])
+      entry = Seq.new_bp(record)
+
+      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
+
+      record.merge! entry.to_bp
     end
 
     output.puts record