# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 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.
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
options = bp.parse(ARGV, casts)
bp.each_record do |record|
- bp.puts 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])
digest.each do |subseq|
new_record = subseq.to_bp
+
+ if new_record[:SEQ_NAME] =~ /\[(\d+)-(\d+)\]$/
+ s_beg = $1
+ s_end = $2
+ end
+
+ new_record[:S_BEG] = s_beg
+ new_record[:S_END] = s_end
new_record[:REC_TYPE] = "DIGEST"
bp.puts new_record
end
+ else
+ bp.puts record
end
end