var xSample = 30, ySample = 31;

lc.heatmap()
  .nrows(hData.sampleNames.length)
  .ncols(hData.sampleNames.length)
  .value((i, j) => hData.corrMat[i][j])
  .rowLabel(i => hData.sampleNames[i])
  .colLabel(i => hData.sampleNames[i])
  .paddings({left: 55, top: 55, right: 30, bottom: 30})  
  .clusterRows(true)
  .clusterCols(true)
  .on_click(function(row, col) {
    xSample = row;
    ySample = col;
    sch.update();
  })
  .place("#heatmap");

var sch = lc.scatter()
//expression values are normalized on-the-fly.
//raw counts are used as input data
  .x(i => Math.log10(maData.countMatrix[i][xSample]/
    maData.countSums[xSample] * 1000000 + 0.1))
  .y(i => Math.log10(maData.countMatrix[i][ySample]/
    maData.countSums[ySample] * 1000000 + 0.1))
  .axisTitleX(() => hData.sampleNames[xSample])
  .axisTitleY(() => hData.sampleNames[ySample])
  .label(i => maData.geneNames[i])    
  .size(1.5)
  .opacity(0.5);

lc.xLine("line", sch)
  .lineFun(x => x)
  .colour("red")
  .place("#corplot");