add world helper method for var

This commit is contained in:
Colin Megill
2018-10-15 11:20:52 -07:00
parent b0603dbed7
commit a297956e69
+30 -1
View File
@@ -6,7 +6,7 @@ import * as kvCache from "./keyvalcache";
/*
World is a subset of universe. Most code should use world, and should
(generally) not use Universe. World contains any per-obs or per-var data
that must be consisstent acorss the app when we view/manipulate subsets
that must be consistent acorss the app when we view/manipulate subsets
of Universe.
Private API indicated by leading underscore in key name (eg, _foo). Anything else
@@ -278,6 +278,35 @@ function deduceDimensionType(attributes, fieldName) {
return dimensionType;
}
/*
Return a crossfilter dimension for the specified world & named gene.
NOTE: this assumes that the expression data was already loaded,
by calling an appropriate action creator.
Caller needs to *save* this dimension somewhere for it to be later used.
Dimension must be destroyed by calling dimension.dispose()
when it is no longer needed
(it will not be garbage collected without this call)
*/
export function createVarDimensionsMap(
world,
_worldVarDataCache,
crossfilter,
geneName
) {
const { varDataCache, worldObsIndex } = world;
const varData = _worldVarDataCache[geneName];
const worldIndex = worldObsIndex ? idx => worldObsIndex[idx] : idx => idx;
console.log("in createVarDataCrossfilterDimensionsForGeneName!", varData);
return crossfilter.dimension(r => {
varData[r.__obsIndex__];
}, Float32Array);
}
export function createObsDimensionMap(crossfilter, world) {
/*
create and return a crossfilter dimension for every obs annotation