a2a021905196ddc79f605ee081113e5eb00fd6ca kate Tue Apr 10 22:17:31 2012 -0700 hgEncodeApi cleanup - retire encodeExpId request. Merge functionality into experiments request (it now filters on db= parameter) diff --git src/hg/js/encodeDataMatrix.js src/hg/js/encodeDataMatrix.js index 868572b..549b924 100644 --- src/hg/js/encodeDataMatrix.js +++ src/hg/js/encodeDataMatrix.js @@ -3,86 +3,78 @@ Pulls experiment table and metadata from server and displays in matrix of assay vs. cell type NOTE: $variables are jQuery objects Formatted: jsbeautify.py -j Syntax checked: jslint indent:4, plusplus: true, continue: true, unparam: true, sloppy: true, browser: true */ /*global $, encodeProject */ $(function () { var requests = [ // requests to server API encodeProject.serverRequests.experiment, encodeProject.serverRequests.dataType, - encodeProject.serverRequests.cellType, - encodeProject.serverRequests.expId + encodeProject.serverRequests.cellType ]; var $matrixTable = $('#matrixTable'); function handleServerData(responses) { // Main actions, called when loading data from server is complete // NOTE: ordering of responses is based on request order var experiments = responses[0], dataTypes = responses[1], - cellTypes = responses[2], - expIds = responses[3]; + cellTypes = responses[2]; - var dataGroups, cellTiers, expIdHash; + var dataGroups, cellTiers; var dataType, cellType; var matrix, dataTypeExps = {}; // hide spinner and show table encodeMatrix.show($matrixTable); // set up structures for data types and their groups // data type labels tucked into their tiers dataGroups = encodeProject.getDataGroups(dataTypes); // set up structures for cell types and their tiers cellTiers = encodeProject.getCellTiers(cellTypes); - // use to filter out experiments not in this assembly - expIdHash = encodeProject.getExpIdHash(expIds); - // gather experiments into matrix // NOTE: dataTypeExps is populated here - matrix = makeExperimentMatrix(experiments, expIdHash, dataTypeExps); + matrix = makeExperimentMatrix(experiments, dataTypeExps); // fill in table using matrix encodeMatrix.tableOut($matrixTable, matrix, cellTiers, dataGroups, dataTypeExps, tableHeaderOut, rowAddCells); } - function makeExperimentMatrix(experiments, expIdHash, dataTypeExps) { + function makeExperimentMatrix(experiments, dataTypeExps) { // Populate dataType vs. cellType array with counts of experiments var dataType, cellType; var matrix = {}; $.each(experiments, function (i, exp) { // exclude ref genome annotations if (exp.cellType === 'None') { return true; } - // exclude experiments lacking an expID (not in this assembly) - if (expIdHash[exp.ix] === undefined) { - return true; - } + // count experiments per dataType so we can prune those having none // (the matrix[cellType] indicates this for cell types // so don't need hash for those dataType = exp.dataType; if (dataTypeExps[dataType] === undefined) { dataTypeExps[dataType] = 0; } dataTypeExps[dataType]++; cellType = exp.cellType; if (!matrix[cellType]) { matrix[cellType] = {}; } if (!matrix[cellType][dataType]) { matrix[cellType][dataType] = 0;