X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bp_bin%2Fclip_adaptor;h=1e722b28ba8f64c322006e566d61c00681bb70b9;hb=2f0fd91b461033529a4a72e161bd133252a22eb6;hp=5cb2fa5ae083756c629849d08502c3ce9711386a;hpb=c4f14c511655d92281b6d70363de57b77a9b6045;p=biopieces.git diff --git a/bp_bin/clip_adaptor b/bp_bin/clip_adaptor index 5cb2fa5..1e722b2 100755 --- a/bp_bin/clip_adaptor +++ b/bp_bin/clip_adaptor @@ -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