class BioInterchange::Genomics::Locations

Public Class Methods

reg2bin(region_begin, region_end) click to toggle source
# File lib/biointerchange/genomics/locations.rb, line 5
def self.reg2bin(region_begin, region_end)
  region_end -= 1
  return ((1 << 15) - 1) / 7 + (region_begin >> 14) if (region_begin >> 14 == region_end >> 14)
  return ((1<<12)-1)/7 + (region_begin >> 17) if (region_begin >> 17 == region_end >> 17)
  return ((1<<9)-1)/7  + (region_begin >> 20) if (region_begin >> 20 == region_end >> 20)
  return ((1<<6)-1)/7  + (region_begin >> 23) if (region_begin >> 23 == region_end >> 23)
  return ((1<<3)-1)/7  + (region_begin >> 26) if (region_begin >> 26 == region_end >> 26)
  return 0
end
reg2bins(region_begin, region_end) click to toggle source
# File lib/biointerchange/genomics/locations.rb, line 15
def self.reg2bins(region_begin, region_end)
  bins = [ 0 ]
  region_end -= 1
  [[26, 1], [23, 9], [20, 73], [17, 585], [14, 4681]].each { |pair|
    power, offset = pair
    ((offset + (region_begin >> power))..(offset + (region_end >> power))).each { |k|
      bins << k
    }
  }
  return bins
end