X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=bp_bin%2Fclip_adaptor;h=1bf6bf5240a61f374ec4ac9bed8d7e6e51aa001f;hb=5de6112b70b59420b245ce636a8b2e3c90acbe00;hp=43997436e2e714129b2d544933e439e07661d0ed;hpb=553bbe1c3745e009c8914017d6ae202828c5fcef;p=biopieces.git diff --git a/bp_bin/clip_adaptor b/bp_bin/clip_adaptor index 4399743..1bf6bf5 100755 --- a/bp_bin/clip_adaptor +++ b/bp_bin/clip_adaptor @@ -29,22 +29,33 @@ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -require 'biopieces' +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 = entry[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 = entry[record[:ADAPTOR_POS_LEFT].to_i + record[:ADAPTOR_LEN_LEFT].to_i .. -1] + end + end - bp.puts record + record.merge! entry.to_bp + end + + output.puts record + end end