mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-27 20:18:12 +08:00
color graph by mean expression
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user