Sha256: bd911dc95f1e78642772a1e4e44a046238d82b7fb5c06e4eec37a9bd350296d8

Contents?: true

Size: 1.22 KB

Versions: 31

Compression:

Stored size: 1.22 KB

Contents

# A layout instance
circosJS.Layout = (conf, data) ->
  unless data?
    circosJS.log 2, 'no layout data', ''

  @conf = circosJS.mixConf conf, JSON.parse JSON.stringify @defaultConf

  # this refers the layout instance
  @data = data
  @blocks = {} #data dictonary key=blockId
  @size = 0

  # compute block offset
  offset = 0
  for k,v of @data
    @blocks[v.id] =
      label: v.label
      len: v.len
      color: v.color
      offset: offset
    v.offset = offset
    offset += v.len
  @size = offset

  # thanks to sum of blocks' length, compute start and end angles in radian
  gap = @conf.gap
  size = @size
  block_nb = @data.length
  for k,v of @data
    @blocks[v.id].start = v.offset/size *(2*Math.PI-block_nb*gap)  + k*gap
    @blocks[v.id].end = (v.offset + v.len)/size *(2*Math.PI-block_nb*gap)  + k*gap
    v.start = v.offset/size *(2*Math.PI-block_nb*gap)  + k*gap
    v.end = (v.offset + v.len)/size *(2*Math.PI-block_nb*gap)  + k*gap

  @getAngle = (blockId, unit) ->
    block = @blocks[blockId].start/@_size
    if unit == 'deg' then block*360
    else if unit == 'rad' then block*2*Math.PI
    else null

  @summary = ->
    layoutSummary = {}
    for d in @_data
      layoutSummary[d.id] = d.len
    layoutSummary

  return @

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
sequenceserver-3.1.3 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-3.1.2 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-3.1.1 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-3.1.0 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-3.0.1 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-3.0 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.2.0 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.1.0 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.0.0 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.0.0.rc8 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.0.0.rc7 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.0.0.rc6 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.0.0.rc5 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.0.0.rc4 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.0.0.rc3 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.0.0.rc2 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.0.0.rc1 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.0.0.beta4 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.0.0.beta3 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee
sequenceserver-2.0.0.beta1 public/vendor/github/nicgirault/circosJs@1.7.0/src/layout.coffee