               .attr("fill", labelcolor)
       pxgXaxis.selectAll("text.PXGgeno")
               .data(genotypes)
-              .transition().duration(250)
+              .transition().duration(fasttime)
               .text((d) -> d)
               .attr("x",  (d,i) -> return if(chr is "X") then pxgXscaleX(i) else pxgXscaleA(i))
       pxgXaxis.selectAll("text.PXGgeno")

               d3.selectAll("#indtip").remove()
               d3.select(this).attr("r", peakRad)

      # add line segments
      svg.append("g").attr("id", "pxgmeans").attr("class", "probe_data").attr("class", "plotPXG")
         .selectAll("empty")
         .data(means)
         .enter()
         .append("line")
         .attr("class", "PXGmeans")
         .attr("x1", (d,i) ->
            return if chr is "X" then pxgXscaleX(i)-jitterAmount*2 else pxgXscaleA(i)-jitterAmount*2)
         .attr("x2", (d,i) ->
            return if chr is "X" then pxgXscaleX(i)+jitterAmount*2 else pxgXscaleA(i)+jitterAmount*2)
         .attr("y1", (d) -> pxgYscale(d))
         .attr("y2", (d) -> pxgYscale(d))
         .attr("stroke", (d,i) -> return if male[i] then darkblue else darkred)
         .attr("stroke-width", 4)
         .on("mouseover", efftip)
         .on("mouseout", -> d3.selectAll("#efftip").remove())


    revPXG = (marker) ->

      for i of means
        means[i] /= n[i]

      draw_pxgXaxis(means, genotypes, chr, sexcenter, male)

      svg.selectAll("circle.plotPXG")
         .transition().duration(slowtime)
         .attr("cx", (d,i) -> 
              g = Math.abs(data.geno[marker][i])
              sx = data.sex[i]
