features.each do |record|
keys.each_pair { |key,val| record[key] = val }
loc = Locator.new(record[:LOCATOR], seq)
- record[:SEQ] = loc.subseq.seq
+ record[:SEQ] = loc.subseq.seq
+ record[:STRAND] = loc.strand
+ record[:S_BEG] = loc.s_beg
+ record[:S_END] = loc.s_end
yield record
end
parse_locator
end
- def to_s
- @locator
+ def strand
+ if @locator.match "complement"
+ return "-"
+ else
+ return "+"
+ end
+ end
+
+ def s_beg
+ if @locator =~ /(\d+)/
+ return $1.to_i - 1
+ end
+ end
+
+ def s_end
+ if @locator.reverse =~ /(\d+)/
+ return $1.reverse.to_i - 1
+ end
end
private