Module: Exodb::GenomeLocationField::ClassMethods
- Defined in:
- lib/exodb/datamodel/locationfield.rb
Instance Method Summary collapse
Instance Method Details
#cover?(loc_str) ⇒ Boolean
27 28 29 30 31 32 33 34 35 |
# File 'lib/exodb/datamodel/locationfield.rb', line 27 def cover?(loc_str) dat = loc_str.split(/(:|\.\.|-)/) if dat[4] querystr = {:'location.chromosome' => dat[0], :'location.start'.lte => dat[2].to_i, :'location.stop'.gte => dat[4].to_i} else querystr = {:'location.chromosome' => dat[0], :'location.start'.lte => dat[2].to_i, :'location.stop'.gte => dat[2].to_i} end return self.where(querystr) end |
#in?(loc_str) ⇒ Boolean
43 44 45 46 47 |
# File 'lib/exodb/datamodel/locationfield.rb', line 43 def in?(loc_str) dat = loc_str.split(/(:|\.\.|-)/) querystr = {:'location.chromosome' => dat[0], :'location.start'.gte => dat[2].to_i, :'location.stop'.lte => dat[4].to_i} return self.where(querystr) end |
#intersect?(loc_str) ⇒ Boolean
37 38 39 40 41 |
# File 'lib/exodb/datamodel/locationfield.rb', line 37 def intersect?(loc_str) dat = loc_str.split(/(:|\.\.|-)/) querystr = {:'$or' => [{:'location.chromosome' => dat[0], :'location.start'.lte => dat[2].to_i, :'location.stop'.gte => dat[2].to_i}, {:'location.chromosome' => dat[0], :'location.start'.lte => dat[4].to_i, :'location.stop'.gte => dat[4].to_i}]} return self.where(querystr) end |