From fec1736820626fd944188ec7105c17a20a162187 Mon Sep 17 00:00:00 2001 From: Colin Megill Date: Thu, 28 Jan 2021 15:07:31 -0800 Subject: [PATCH] prepopulate geneset with genes from modal --- .../src/components/categorical/annoDialog.js | 6 ++++ client/src/components/geneExpression/gene.js | 21 ++++++++------ .../src/components/geneExpression/geneSet.js | 11 ++++++-- client/src/components/geneExpression/index.js | 1 + .../menus/addGeneToGenesetDialogue.js | 3 +- .../menus/createGenesetDialogue.js | 28 +++++++++++++++++-- 6 files changed, 55 insertions(+), 15 deletions(-) diff --git a/client/src/components/categorical/annoDialog.js b/client/src/components/categorical/annoDialog.js index fdb07e77..59f9bfe5 100644 --- a/client/src/components/categorical/annoDialog.js +++ b/client/src/components/categorical/annoDialog.js @@ -18,6 +18,8 @@ class AnnoDialog extends React.PureComponent { validationError, annoSelect, annoInput, + secondaryInstructions, + secondaryInput, handleCancel, handleSubmit, primaryButtonText, @@ -46,6 +48,10 @@ class AnnoDialog extends React.PureComponent { > {errorMessage}

+

+ {secondaryInstructions || null} +

+ {secondaryInput || null} {annoSelect || null} diff --git a/client/src/components/geneExpression/gene.js b/client/src/components/geneExpression/gene.js index 0a57d5fc..98ad9599 100644 --- a/client/src/components/geneExpression/gene.js +++ b/client/src/components/geneExpression/gene.js @@ -74,6 +74,7 @@ class Gene extends React.Component { isColorAccessor, isScatterplotXXaccessor, isScatterplotYYaccessor, + isDiffexp, } = this.props; const { geneIsExpanded } = this.state; return ( @@ -127,15 +128,17 @@ class Gene extends React.Component { ) : null} - } - /> + {!isDiffexp ? ( + } + /> + ) : null} @@ -181,7 +181,14 @@ class GeneSet extends React.Component { {isOpen && !toggleSummaryHisto ? _.map(setGenes, (gene) => { - return ; + return ( + + ); }) : null} diff --git a/client/src/components/geneExpression/index.js b/client/src/components/geneExpression/index.js index c8ceee0a..05f6ad08 100644 --- a/client/src/components/geneExpression/index.js +++ b/client/src/components/geneExpression/index.js @@ -39,6 +39,7 @@ class GeneExpression extends React.Component { ) : null; diff --git a/client/src/components/geneExpression/menus/addGeneToGenesetDialogue.js b/client/src/components/geneExpression/menus/addGeneToGenesetDialogue.js index 862adc71..b94ef7e5 100644 --- a/client/src/components/geneExpression/menus/addGeneToGenesetDialogue.js +++ b/client/src/components/geneExpression/menus/addGeneToGenesetDialogue.js @@ -1,4 +1,5 @@ import React from "react"; +import _ from "lodash"; import { connect } from "react-redux"; import AnnoDialog from "../../categorical/annoDialog"; import LabelInput from "../../categorical/labelInput"; @@ -27,7 +28,7 @@ class AddGeneToGenesetDialogue extends React.PureComponent { dispatch({ type: "geneset: add genes", name: geneset, - genes: genesToAdd.split(","), + genes: _.pull(_.uniq(genesToAdd.split(/[ ,]+/)), ""), }); dispatch({ type: "geneset: disable add new genes mode", diff --git a/client/src/components/geneExpression/menus/createGenesetDialogue.js b/client/src/components/geneExpression/menus/createGenesetDialogue.js index 573218bd..dc69b447 100644 --- a/client/src/components/geneExpression/menus/createGenesetDialogue.js +++ b/client/src/components/geneExpression/menus/createGenesetDialogue.js @@ -1,3 +1,4 @@ +import _ from "lodash"; import React from "react"; import { connect } from "react-redux"; import AnnoDialog from "../../categorical/annoDialog"; @@ -24,6 +25,7 @@ class CreateGenesetDialogue extends React.PureComponent { const { dispatch } = this.props; this.setState({ genesetName: "", + genesToPopulateGeneset: "", }); dispatch({ type: "geneset: disable create geneset mode", @@ -33,9 +35,13 @@ class CreateGenesetDialogue extends React.PureComponent { createGeneset = (e) => { const { dispatch } = this.props; - const { genesetName } = this.state; + const { genesetName, genesToPopulateGeneset } = this.state; - dispatch({ type: "geneset: create", name: genesetName }); + dispatch({ + type: "geneset: create", + name: genesetName, + genes: _.pull(_.uniq(genesToPopulateGeneset.split(/[ ,]+/)), "") || null, + }); dispatch({ type: "geneset: disable create geneset mode", }); @@ -51,6 +57,10 @@ class CreateGenesetDialogue extends React.PureComponent { this.setState({ genesetName: e }); }; + handleGenesetInputChange = (e) => { + this.setState({ genesToPopulateGeneset: e }); + }; + instruction = () => { return "New, unique geneset"; /* todo genesets */ @@ -80,7 +90,7 @@ class CreateGenesetDialogue extends React.PureComponent { } + secondaryInstructions="Optionally add a list of comma separated genes to populate the geneset" + secondaryInput={ + + } handleSubmit={this.createGeneset} handleCancel={this.disableCreateGenesetMode} />