X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bp_bin%2Fdigest_seq;h=2aa9ff9837fded6ad832d44fffacf99b08f96742;hb=2f0fd91b461033529a4a72e161bd133252a22eb6;hp=34aebf089a8a064496b1a73b4456a515f05fb857;hpb=2d901e7bc53f21583f2585a0eec1b3180af97f36;p=biopieces.git diff --git a/bp_bin/digest_seq b/bp_bin/digest_seq index 34aebf0..2aa9ff9 100755 --- a/bp_bin/digest_seq +++ b/bp_bin/digest_seq @@ -24,39 +24,44 @@ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DESCRIPTION <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -# Splits sequences in the stream at a given restriction enzyme's cleavage points. +# Split sequences in the stream at a given restriction enzyme's cleavage points. # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< - -require 'biopieces' -require 'fasta' -require 'seq' +require 'maasha/biopieces' +require 'maasha/seq' casts = [] casts << {:long=>'pattern', :short=>'p', :type=>'string', :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil} casts << {:long=>'cut_pos', :short=>'c', :type=>'int', :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil} -bp = Biopieces.new +options = Biopieces.options_parse(ARGV, casts) + +Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output| + input.each_record do |record| + if record[:SEQ_NAME] and record[:SEQ] + seq = Seq.new_bp(record) -options = bp.parse(ARGV, casts) + seq.each_digest(options[:pattern].to_s, options[:cut_pos]) do |digest| + new_record = digest.to_bp -bp.each_record do |record| - if record.has_key? :SEQ_NAME and record.has_key? :SEQ - seq = Seq.new(record[:SEQ_NAME], record[:SEQ]) - digest = Digest.new(seq, options[:pattern].to_s, options[:cut_pos]) + if new_record[:SEQ_NAME] =~ /\[(\d+)-(\d+)\]$/ + s_beg = $1 + s_end = $2 + end - digest.each do |subseq| - new_record = subseq.to_bp - new_record[:REC_TYPE] = "DIGEST" - bp.puts new_record + new_record[:S_BEG] = s_beg + new_record[:S_END] = s_end + new_record[:REC_TYPE] = "DIGEST" + + output.puts new_record + end + else + output.puts record end - else - bp.puts record end end - # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<