color graph by mean expression

This commit is contained in:
Colin Megill
2021-04-16 01:59:20 -07:00
parent f162f980bf
commit a86a5398ec
2 changed files with 30 additions and 3 deletions
+5 -2
View File
@@ -76,6 +76,7 @@ function createModelTF() {
graphInteractionMode: state.controls.graphInteractionMode,
colors: state.colors,
pointDilation: state.pointDilation,
genesets: state.genesets.genesets,
}))
class Graph extends React.Component {
static createReglState(canvas) {
@@ -526,6 +527,7 @@ class Graph extends React.Component {
colorsProp,
pointDilation
);
const { currentDimNames } = layoutChoice;
const X = layoutDf.col(currentDimNames[0]).asArray();
const Y = layoutDf.col(currentDimNames[1]).asArray();
@@ -782,10 +784,11 @@ class Graph extends React.Component {
}
createColorByQuery(colors) {
const { annoMatrix } = this.props;
const { annoMatrix, genesets } = this.props;
const { schema } = annoMatrix;
const { colorMode, colorAccessor } = colors;
return createColorQuery(colorMode, colorAccessor, schema);
return createColorQuery(colorMode, colorAccessor, schema, genesets);
}
renderPoints(
+25 -1
View File
@@ -12,7 +12,7 @@ import { range } from "../range";
given a color mode & accessor, generate an annoMatrix query that will
fulfill it
*/
export function createColorQuery(colorMode, colorByAccessor, schema) {
export function createColorQuery(colorMode, colorByAccessor, schema, genesets) {
if (!colorMode || !colorByAccessor || !schema) return null;
switch (colorMode) {
case "color by categorical metadata":
@@ -33,6 +33,25 @@ export function createColorQuery(colorMode, colorByAccessor, schema) {
},
];
}
case "color by geneset mean expression": {
const varIndex = schema?.annotations?.var?.index;
if (!varIndex) return null;
const _geneset = genesets.get(colorByAccessor);
const _setGenes = Array.from(_geneset.genes.keys());
return [
"X",
{
summarize: {
method: "mean",
field: "var",
column: varIndex,
values: _setGenes,
},
},
];
}
default: {
return null;
}
@@ -86,6 +105,11 @@ function _createColorTable(
const { min, max } = col.summarize();
return createColorsByContinuousMetadata(col.asArray(), min, max);
}
case "color by geneset mean expression": {
const col = colorByData.icol(0);
const { min, max } = col.summarize();
return createColorsByContinuousMetadata(col.asArray(), min, max);
}
default: {
return defaultColors(schema.dataframe.nObs);
}