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}
/>