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, graphInteractionMode: state.controls.graphInteractionMode,
colors: state.colors, colors: state.colors,
pointDilation: state.pointDilation, pointDilation: state.pointDilation,
genesets: state.genesets.genesets,
})) }))
class Graph extends React.Component { class Graph extends React.Component {
static createReglState(canvas) { static createReglState(canvas) {
@@ -526,6 +527,7 @@ class Graph extends React.Component {
colorsProp, colorsProp,
pointDilation pointDilation
); );
const { currentDimNames } = layoutChoice; const { currentDimNames } = layoutChoice;
const X = layoutDf.col(currentDimNames[0]).asArray(); const X = layoutDf.col(currentDimNames[0]).asArray();
const Y = layoutDf.col(currentDimNames[1]).asArray(); const Y = layoutDf.col(currentDimNames[1]).asArray();
@@ -782,10 +784,11 @@ class Graph extends React.Component {
} }
createColorByQuery(colors) { createColorByQuery(colors) {
const { annoMatrix } = this.props; const { annoMatrix, genesets } = this.props;
const { schema } = annoMatrix; const { schema } = annoMatrix;
const { colorMode, colorAccessor } = colors; const { colorMode, colorAccessor } = colors;
return createColorQuery(colorMode, colorAccessor, schema);
return createColorQuery(colorMode, colorAccessor, schema, genesets);
} }
renderPoints( renderPoints(
+25 -1
View File
@@ -12,7 +12,7 @@ import { range } from "../range";
given a color mode & accessor, generate an annoMatrix query that will given a color mode & accessor, generate an annoMatrix query that will
fulfill it fulfill it
*/ */
export function createColorQuery(colorMode, colorByAccessor, schema) { export function createColorQuery(colorMode, colorByAccessor, schema, genesets) {
if (!colorMode || !colorByAccessor || !schema) return null; if (!colorMode || !colorByAccessor || !schema) return null;
switch (colorMode) { switch (colorMode) {
case "color by categorical metadata": 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: { default: {
return null; return null;
} }
@@ -86,6 +105,11 @@ function _createColorTable(
const { min, max } = col.summarize(); const { min, max } = col.summarize();
return createColorsByContinuousMetadata(col.asArray(), min, max); 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: { default: {
return defaultColors(schema.dataframe.nObs); return defaultColors(schema.dataframe.nObs);
} }