From 2fa19c756c8e81174dc623fdd8c642ff3548a01d Mon Sep 17 00:00:00 2001 From: Bruce Martin Date: Wed, 31 Mar 2021 12:23:38 -0700 Subject: [PATCH] propagate diffexp state through component tree (#2135) --- .../components/brushableHistogram/index.js | 1 + client/src/components/geneExpression/gene.js | 24 +++++++++-- .../src/components/geneExpression/geneSet.js | 41 +++++++++++++------ client/src/components/geneExpression/index.js | 19 ++++----- 4 files changed, 58 insertions(+), 27 deletions(-) diff --git a/client/src/components/brushableHistogram/index.js b/client/src/components/brushableHistogram/index.js index f349e1d3..277b1c01 100644 --- a/client/src/components/brushableHistogram/index.js +++ b/client/src/components/brushableHistogram/index.js @@ -452,6 +452,7 @@ class HistogramBrush extends React.PureComponent { {!mini ? ( {!geneIsExpanded ? ( - + isDiffExp ? ( + + ) : ( + + ) ) : null}
- {!isDiffexp ? ( + {!isDiffExp ? (
- {geneIsExpanded ? : null} + {geneIsExpanded && + (isDiffExp ? ( + + ) : ( + + ))} ); } diff --git a/client/src/components/geneExpression/geneSet.js b/client/src/components/geneExpression/geneSet.js index 26067c7c..073f94c5 100644 --- a/client/src/components/geneExpression/geneSet.js +++ b/client/src/components/geneExpression/geneSet.js @@ -1,5 +1,4 @@ import React from "react"; -import _ from "lodash"; import { connect } from "react-redux"; import { Tooltip, Position, Switch } from "@blueprintjs/core"; import { FaChevronRight, FaChevronDown } from "react-icons/fa"; @@ -85,8 +84,35 @@ class GeneSet extends React.Component { this.setState({ toggleSummaryHisto: !toggleSummaryHisto }); }; + renderGenes() { + const { setName, setGenes, isDiffExp, diffExp } = this.props; + + if (isDiffExp) { + // [ [gene, logfoldchange, pval, pval_adj], ...] + return setGenes.map((gene, idx) => { + const logFoldChange = diffExp[idx][1]; + const pvalAdj = diffExp[idx][3]; + return ( + + ); + }); + } + + // otherwise... + return setGenes.map((gene) => { + return ; + }); + } + render() { - const { setName, setGenes, isDiffexp } = this.props; + const { setName, setGenes } = this.props; const { isOpen, toggleSummaryHisto } = this.state; const genesetNameLengthVisible = 120; /* this magic number determines how much of a long geneset name we see */ return ( @@ -166,16 +192,7 @@ class GeneSet extends React.Component { {isOpen && (!toggleSummaryHisto - ? _.map(setGenes, (gene) => { - return ( - - ); - }) + ? this.renderGenes() : setGenes.length > 0 && ( { const { differential } = this.props; + const { diffExp } = differential; + if (!diffExp) return null; - const setGenes = []; - - if (differential.diffExp) { - differential.diffExp.forEach((diffexpGene) => { - setGenes.push(diffexpGene[0]); - }); - } - - return differential.diffExp ? ( + // [ [gene, logfoldchange, pval, pval_adj], ...] + const setGenes = diffExp.map((diffExpGene) => diffExpGene[0]); + return ( - ) : null; + ); }; handleActivateCreateGenesetMode = () => {