Sha256: 560041bf1756d07daaf50e31475cd1627011b30416da0a8fa7afc2b659e9dc8a

Contents?: true

Size: 934 Bytes

Versions: 7

Compression:

Stored size: 934 Bytes

Contents

module BioInterchange::Genomics

class Locations

  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

  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

end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
biointerchange-1.0.8 lib/biointerchange/genomics/locations.rb
biointerchange-1.0.7 lib/biointerchange/genomics/locations.rb
biointerchange-1.0.6 lib/biointerchange/genomics/locations.rb
biointerchange-1.0.5 lib/biointerchange/genomics/locations.rb
biointerchange-1.0.4 lib/biointerchange/genomics/locations.rb
biointerchange-1.0.2 lib/biointerchange/genomics/locations.rb
biointerchange-1.0.1 lib/biointerchange/genomics/locations.rb