        .attr("width", w[j])
        .attr("class", "innerBox")
 
-  # calculate X and Y scales, using cM positions
-  totalChrLength = 0;
-  for c in data.chrnames
-    totalChrLength += (data.chr[c].end_cM - data.chr[c].start_cM)
-  console.log("totalChrLength: #{totalChrLength}")
+  # add dark gray rectangles to define chromosome boundaries as checkerboard
+  checkerboard = svg.append("g").attr("id", "checkerboard")
+  for ci,i in data.chrnames
+    for cj,j in data.chrnames
+      if((i + j) % 2 == 0)
+        checkerboard.append("rect")
+           .attr("x", data.chr[ci].start_Xpixel)
+           .attr("width", data.chr[ci].end_Xpixel - data.chr[ci].start_Xpixel)
+           .attr("y", data.chr[cj].end_Ypixel)
+           .attr("height", data.chr[cj].start_Ypixel - data.chr[cj].end_Ypixel)
+           .attr("stroke", "none")
+           .attr("fill", darkGray)
+           .style("pointer-events", "none")
 
-#  peaks = svg.selectAll("empty")
-#             .data(
+  # only use peaks with LOD > 6
+  tmp = []
+  for i in data.peaks
+    tmp.push(i) if i.lod > 6
+  data.peaks = tmp
+
+  # rectangles at eQTL peaks
+  peaks = svg.append("g").attr("id", "peaks")
+             .selectAll("empty")
+             .data(data.peaks)
+             .enter()
+             .append("circle")
+             .attr("cx", (d) -> chrXScale[d.chr](d.pos_cM))
+             .attr("cy", (d) -> chrYScale[data.probes[d.probe].chr](data.probes[d.probe].pos_cM))
+             .attr("r", peakRad)
+             .attr("stroke", "none")
+             .attr("fill", "darkslateblue")
+             .on "mouseover", (d) ->
+                 d3.select(this).attr("r", bigRad)
+                                .attr("fill", "hotpink")
+                                .attr("stroke", "darkslateblue")
+                                .attr("stroke-width", 1)
+             .on "mouseout", (d) ->
+                 d3.select(this).attr("r", peakRad)
+                                .attr("fill", "darkslateblue")
+                                .attr("stroke", "none")
 
   # black borders
   for j of left

  pink = "#E9CFEC"
  purple = "#8C4374"

  # create SVGs
  svg = d3.select("div#cistrans").append("svg")
          .attr("width", totalw)

  totalw = right[2] + pad.right
  totalh = bottom[1] + pad.bottom

  # Size of rectangles in top-left panel
  peakRad = 2
  bigRad = 4

  # height of marker ticks in lower-left panel
  tickHeight = (bottom[1] - top[1])*0.02

