Class: BioInterchange::Genomics::Locations

Inherits:
Object
  • Object
show all
Defined in:
lib/biointerchange/genomics/locations.rb

Class Method Summary collapse

Class Method Details

.reg2bin(region_begin, region_end) ⇒ Object



5
6
7
8
9
10
11
12
13
# 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) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# 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