X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bp_bin%2Fclip_adaptor;h=1e722b28ba8f64c322006e566d61c00681bb70b9;hb=af282a65d141826c15944437b07a0353dd14e79c;hp=2056f2d31a1fadfe960931fcc16898a460a5d427;hpb=494dc53ebd515b1e3e9b91bbebf43059899ca4ce;p=biopieces.git diff --git a/bp_bin/clip_adaptor b/bp_bin/clip_adaptor index 2056f2d..1e722b2 100755 --- a/bp_bin/clip_adaptor +++ b/bp_bin/clip_adaptor @@ -30,21 +30,32 @@ 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