Skip to content

Commit

Permalink
Minor fixes to runcharts. Started adding code for problem KPIs (not u…
Browse files Browse the repository at this point in the history
…sed yet)
  • Loading branch information
nicjar committed Sep 25, 2013
1 parent d63955b commit 6220722
Show file tree
Hide file tree
Showing 4 changed files with 111 additions and 46 deletions.
31 changes: 31 additions & 0 deletions couchdb_views.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,34 @@ function(doc) {
emit(doc["open_date"], [ doc["project_name"], doc["details"]["queued"] ]);
}
};
/** A LOT OF VIEWS MISSING!!!! */

/**
* Problem KPI "3": Amount delivered / amount ordered per project
*
*/
// trying new variant KPI3_1
function(doc) {
if(doc["details"]["type"] != "Production") {exit;}

var pf = doc["details"]["sequencing_platform"];
var lanes = doc["details"]["sequence_units_ordered_(lanes)"];
var samples = doc["no_of_samples"];
var ordered = 0;
if(pf.indexOf("MiSeq") != -1) {
ordered = lanes * 10; // 10 million/lane for MiSeq
} else if (pf.indexOf("High Output") != -1) {
ordered = lanes * 143; // 143 million/lane for High Output
} else if (pf.indexOf("Rapid") != -1) {
ordered = lanes * 114; // 114 million/lane for Rapid
}

var delivered = 0;
for (sample in doc["samples"]) {
s = doc["samples"][sample];
delivered += parseFloat(s['m_reads_sequenced']);
}
var fraction = delivered / ordered;

emit([doc["sequencing_finished"],doc["project_name"]], [pf, lanes, ordered, samples, delivered, fraction ]);
}
53 changes: 43 additions & 10 deletions dashboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -482,7 +482,7 @@ function drawRunChart(dataset, divID, clines, width, height, padding, maxY) {
.attr("y", height - 20)
.attr("x", width)
.attr("class", "axis_label")
.text("# projects");
.text("project #");

}

Expand Down Expand Up @@ -547,7 +547,7 @@ function drawRunChart(dataset, divID, clines, width, height, padding, maxY) {
* @param {String} divID Id of DOM div to where plot should reside
* @param plotHeight plot height
*/
function drawBoxPlot(dataset, divID, plotHeight, maxY) {
function drawBoxPlot(dataset, divID, plotHeight, maxY, bottom_margin) {
var margin = {top: 30, right: 50, bottom: 30, left: 50},
width = 120 - margin.left - margin.right,
//height = 450 - margin.top - margin.bottom;
Expand Down Expand Up @@ -677,12 +677,14 @@ function drawBarchartPlot(dataset, divID, width, height, bottom_padding, maxY) {
//})
;

var smallFormat = d3.format(".00r");
//Create labels
svg.selectAll("text")
.data(dataset, key) //Bind data with custom key function
.enter()
.append("text")
.text(function(d) {
if(d.value < 1) { return smallFormat(d.value); }
return d.value;
})
.attr("class", "bar_label")
Expand All @@ -695,7 +697,38 @@ function drawBarchartPlot(dataset, divID, width, height, bottom_padding, maxY) {
return (height - bottom_padding) - yScale(d.value) + 19;
})
;

// Check if there is info about total data set size, and if so add text to show that
var hasTotal = function(dSet) {
for (var i = 0; i < dSet.length; i++) {
if(dSet[i].total) { return true; }
}
return false;
}
if(hasTotal(dataset)) {
console.log("We have total");
svg.selectAll("text")
.data(dataset, key) //Bind data with custom key function
.enter()
.append("text")
.text(function(d) {
//if(d.value < 1) { return smallFormat(d.value); }
var totStr = "(" + d.total + ")";
console.log("TotStr: " + totStr);
return totStr;
})
.attr("class", "bar_label")
.attr("text-anchor", "middle")
.attr("x", function(d, i) {
return xScale(i) + xScale.rangeBand() / 2;
})
.attr("y", function(d) {
//return (height - bottom_padding) - yScale(d.value) + 14;
return (height - bottom_padding) - yScale(d.value) + 19;
})
.attr("dy", 10)
;

}
//Define X axis
var xAxis = d3.svg.axis()
.scale(xScale)
Expand Down Expand Up @@ -739,7 +772,7 @@ function drawProcessPanels(appl_json, pf_json, plotDate, startDate, height, rc_w
//console.log(pf_json);
var totalRcDataset = generateRunchartDataset(appl_json, startDate, plotDate, startKey, endKey);
//console.log(totalRcDataset);
drawRunChart(totalRcDataset, "total_rc", [6, 10], rc_width, height, 30);
drawRunChart(totalRcDataset, "total_rc", [6, 4, 10], rc_width, height, 30);
var totalBpDataset = generateBoxDataset(appl_json, startDate, plotDate, startKey, endKey);
//console.log(totalBpDataset);
drawBoxPlot(totalBpDataset, "total_bp", height);
Expand All @@ -761,7 +794,7 @@ function drawProcessPanels(appl_json, pf_json, plotDate, startDate, height, rc_w
var recCtrlBpDataset = generateBoxDataset(appl_json, startDate, plotDate, "Arrival date", "Queue date");
drawBoxPlot(recCtrlBpDataset, "rec_ctrl_bp", height, maxStepY);

drawRunChart(libPrepDataset, "lib_prep_rc", [3], rc_width, height, 30, maxStepY);
drawRunChart(libPrepDataset, "lib_prep_rc", [2.5], rc_width, height, 30, maxStepY);
var libPrepBpDataset = generateBoxDataset(appl_json, startDate, plotDate, "Queue date", "QC library finished", "Finished library", true);
drawBoxPlot(libPrepBpDataset, "lib_prep_bp", height, maxStepY);

Expand Down Expand Up @@ -805,7 +838,7 @@ function drawProcessPanels(appl_json, pf_json, plotDate, startDate, height, rc_w
window.setInterval(function(){
switch(setNo) {
case 1:
drawRunChart(totalRcDataset, "total_rc", [6, 10], rc_width, height, 30);
drawRunChart(totalRcDataset, "total_rc", [6, 4, 10], rc_width, height, 30);
drawBoxPlot(totalBpDataset, "total_bp", height);
d3.select("#total_legend").attr("style", "color: default").text("All projects");

Expand All @@ -816,20 +849,20 @@ function drawProcessPanels(appl_json, pf_json, plotDate, startDate, height, rc_w
setNo++;
break;
case 2:
drawRunChart(totalRcLPDataset, "total_rc", [6, 10], rc_width, height, 30);
drawRunChart(totalRcLPDataset, "total_rc", [6, 4, 10], rc_width, height, 30);
drawBoxPlot(totalBpLPDataset, "total_bp", height);
d3.select("#total_legend").attr("style", "color: orange").text("Lib prep projects");
setNo++;
break;
case 3:
drawRunChart(totalRcFLDataset, "total_rc", [6, 10], rc_width, height, 30);
drawRunChart(totalRcFLDataset, "total_rc", [6, 4, 10], rc_width, height, 30);
drawBoxPlot(totalBpFLDataset, "total_bp", height);
d3.select("#total_legend").attr("style", "color: green").text("Finished library projects");
setNo++;
//setNo = 1;
break;
case 4:
drawRunChart(totalRcMiSeqDataset, "total_rc", [6, 10], rc_width, height, 30);
drawRunChart(totalRcMiSeqDataset, "total_rc", [6, 4, 10], rc_width, height, 30);
drawBoxPlot(totalBpMiSeqDataset, "total_bp", height);
d3.select("#total_legend").attr("style", "color: orange").text("MiSeq projects");

Expand All @@ -840,7 +873,7 @@ function drawProcessPanels(appl_json, pf_json, plotDate, startDate, height, rc_w

break;
case 5:
drawRunChart(totalRcHiSeqDataset, "total_rc", [6, 10], rc_width, height, 30);
drawRunChart(totalRcHiSeqDataset, "total_rc", [6, 4, 10], rc_width, height, 30);
drawBoxPlot(totalBpHiSeqDataset, "total_bp", height);
d3.select("#total_legend").attr("style", "color: green").text("HiSeq projects");

Expand Down
62 changes: 32 additions & 30 deletions dashboard_all.html
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,12 @@ <h3>Variability</h3>
<br class="clear">

<!--"Problem panels"-->
<div id="fs_prog_bc" class="barchart_panel">
<div id="fs_prog_bc" class="barchart_panel" style="display: none">
<h2>Rec control</h2>
<p>fraction failed samples progressed</p>
</div>

<div id="failed_samples_per_workset" class="times_panel">
<div id="failed_samples_per_workset" class="times_panel" style="display: none">
<h2>Lib prep - #failed samples/workset</h2>
<div id="fs_ws_rc">
<h3>Run chart</h3>
Expand All @@ -84,7 +84,7 @@ <h3>Variability</h3>
<!--<h3 id="seq_bp_legend">All projects</h3>-->
</div>
</div>
<div id="data_delivered" class="times_panel">
<div id="data_delivered" class="times_panel" style="display: none">
<h2>Seq - data delivered / data ordered</h2>
<div id="data_del_rc">
<h3>Run chart</h3>
Expand Down Expand Up @@ -138,33 +138,35 @@ <h3>Variability</h3>
// drawProcessPanels(appl_json, today, twelveWeeks, panelHeights, rcWidth);
});
// trying out stuff for problem KPIs.
var failedProgUrl = "getCouchDbData.php?db=projects&design=kpi_external&view=KPI1&reduce=false";
d3.json(failedProgUrl, function(json){
var fpDataset = generateFailedProgressedDataset(json, today);
drawBarchartPlot(fpDataset, "fs_prog_bc", 500, panelHeights, 30);
});

var wsFailRateUrl = "getCouchDbData.php?db=projects&design=kpi_external&view=KPI2&reduce=false";
d3.json(wsFailRateUrl, function(json){
console.log("Workset failrate dataset:");
console.log(json);
var d = generateWorksetFailureDataset (json, twelveWeeks, today);
console.log(d);
drawFailedLpRunChart(d, "fs_ws_rc", [], rcWidth, panelHeights, 30);
var bd = generateGenericBoxDataset(d, 1);
console.log(bd);
drawBoxPlot(bd, "fs_ws_bp", panelHeights);
});

var delDataUrl = "getCouchDbData.php?db=projects&design=kpi_external&view=KPI3_1&reduce=false";
d3.json(delDataUrl, function(json){
var delDataDataset = generateDeliveredDataDataset (json, twelveWeeks, today);
console.log("Data del dataset");
console.log(delDataDataset);
drawDeliveredDataRunChart(delDataDataset, "data_del_rc", [], rcWidth, panelHeights, 30);
var bd = generateGenericBoxDataset(delDataDataset, 1);
drawBoxPlot(bd, "data_del_bp", panelHeights);
});
//var failedProgUrl = "getCouchDbData.php?db=projects&design=kpi_external&view=KPI1&reduce=false";
//d3.json(failedProgUrl, function(json){
// //console.log(json);
// var fpDataset = generateFailedProgressedDataset(json, today);
// console.log(fpDataset);
// drawBarchartPlot(fpDataset, "fs_prog_bc", 500, panelHeights, 30);
//});
//
//var wsFailRateUrl = "getCouchDbData.php?db=projects&design=kpi_external&view=KPI2&reduce=false";
//d3.json(wsFailRateUrl, function(json){
// //console.log("Workset failrate dataset:");
// //console.log(json);
// var d = generateWorksetFailureDataset (json, twelveWeeks, today);
// //console.log(d);
// drawFailedLpRunChart(d, "fs_ws_rc", [], rcWidth, panelHeights, 30);
// var bd = generateGenericBoxDataset(d, 1);
// //console.log(bd);
// drawBoxPlot(bd, "fs_ws_bp", panelHeights);
//});
//
//var delDataUrl = "getCouchDbData.php?db=projects&design=kpi_external&view=KPI3_1&reduce=false";
//d3.json(delDataUrl, function(json){
// var delDataDataset = generateDeliveredDataDataset (json, twelveWeeks, today);
// //console.log("Data del dataset");
// //console.log(delDataDataset);
// drawDeliveredDataRunChart(delDataDataset, "data_del_rc", [], rcWidth, panelHeights, 30);
// var bd = generateGenericBoxDataset(delDataDataset, 1);
// drawBoxPlot(bd, "data_del_bp", panelHeights);
//});
</script>


Expand Down
11 changes: 5 additions & 6 deletions dashboard_problems.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,8 @@ function generateFailedProgressedDataset (jsonview, cmpDate) {
var k = rows[i]["key"];
var openDate = new Date(k[0]);
var failed = rows[i]["value"] == "False";

//console.log("in rows");
//if ((arrivalDate > cmpDate) || (finishedDate < cmpDate)) {
if(rows[i]["value"] == null) { continue; }

if ((openDate > cmpDate) || (openDate < week12Date)) {
continue;
}
Expand Down Expand Up @@ -118,7 +117,7 @@ function generateWorksetFailureDataset (jsonview, dateRangeStart, dateRangeEnd,
var date = new Date(keys[2]);
var ws = keys[0];
if (date < dateRangeStart || date > dateRangeEnd) {
console.log("skipping ws: " + ws + ", date: " + date);
//console.log("skipping ws: " + ws + ", date: " + date);
continue;
}
if(ws != currWS) {
Expand Down Expand Up @@ -244,7 +243,7 @@ function drawFailedLpRunChart(dataset, divID, clines, width, height, padding, ma
if(maxY == undefined) {
maxY = d3.max(dataset, function(d) { return d[1]; });
}
console.log("maxY val: " + maxY)
//console.log("maxY val: " + maxY)
var xScale = d3.scale.linear()
.domain([0, dataset.length])
.range([padding, width - padding * 2]);
Expand Down Expand Up @@ -493,7 +492,7 @@ function drawDeliveredDataRunChart(dataset, divID, clines, width, height, paddin
if(maxY == undefined) {
maxY = d3.max(dataset, function(d) { return d[1]; });
}
console.log("maxY val: " + maxY)
//console.log("maxY val: " + maxY)
var xScale = d3.scale.linear()
.domain([0, dataset.length])
.range([padding, width - padding * 2]);
Expand Down

0 comments on commit 6220722

Please sign in to comment.