Skip to content

Commit

Permalink
Choose counts as the default assay if available for new analysis (#259
Browse files Browse the repository at this point in the history
)
  • Loading branch information
jkanche committed Apr 24, 2024
1 parent 3cd9463 commit a296398
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 45 deletions.
7 changes: 5 additions & 2 deletions src/components/NewAnalysis/H5ADCard.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {
import "./index.css";

import { MODALITIES } from "../../utils/utils";
import { getDefaultFeature } from "./utils";
import { getDefaultFeature, getDefaultAssayName } from "./utils";

export function H5AD({
resource,
Expand Down Expand Up @@ -50,7 +50,10 @@ export function H5AD({
preflight.all_features
);

tmpOptions["countMatrixName"] = preflight.all_assay_names[0];
// Default assignment to
tmpOptions["countMatrixName"] = getDefaultAssayName(
preflight.all_assay_names
);

setOptions(tmpOptions);
setInit2(false);
Expand Down
55 changes: 34 additions & 21 deletions src/components/NewAnalysis/RDSSECard.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@ import "./index.css";

import { MODALITIES } from "../../utils/utils";

import { getDefaultFeature, reportFeatureTypes } from "./utils";
import {
getDefaultFeature,
reportFeatureTypes,
getDefaultAssayName,
} from "./utils";

export function RDSSE({
resource,
Expand Down Expand Up @@ -66,8 +70,9 @@ export function RDSSE({
options["adtExperiment"] !== null &&
options["adtExperiment"] !== undefined
) {
tmpOptions["adtCountAssay"] =
preflight.modality_assay_names[options?.["adtExperiment"]][0];
tmpOptions["adtCountAssay"] = getDefaultAssayName(
preflight.modality_assay_names[options?.["adtExperiment"]]
);

tmpOptions["primaryAdtFeatureIdColumn"] = getDefaultFeature(
preflight.modality_features[options?.["adtExperiment"]]
Expand All @@ -88,8 +93,9 @@ export function RDSSE({
options["crisprExperiment"] !== null &&
options["crisprExperiment"] !== undefined
) {
tmpOptions["crisprCountAssay"] =
preflight.modality_assay_names[options?.["crisprExperiment"]][0];
tmpOptions["crisprCountAssay"] = getDefaultAssayName(
preflight.modality_assay_names[options?.["crisprExperiment"]]
);

tmpOptions["primaryCrisprFeatureIdColumn"] = getDefaultFeature(
preflight.modality_features[options?.["crisprExperiment"]]
Expand All @@ -110,8 +116,9 @@ export function RDSSE({
options["rnaExperiment"] !== null &&
options["rnaExperiment"] !== undefined
) {
tmpOptions["rnaCountAssay"] =
preflight.modality_assay_names[options?.["rnaExperiment"]][0];
tmpOptions["rnaCountAssay"] = getDefaultAssayName(
preflight.modality_assay_names[options?.["rnaExperiment"]]
);

tmpOptions["primaryRnaFeatureIdColumn"] = getDefaultFeature(
preflight.modality_features[options?.["rnaExperiment"]]
Expand Down Expand Up @@ -141,6 +148,10 @@ export function RDSSE({
return `${mod.toLowerCase()}Experiment`;
};

const getAssayNameKey = (mod) => {
return `${mod.toLowerCase()}CountAssay`;
};

const resetModality = (mod, val) => {
let tmpOptions = { ...options };

Expand All @@ -164,19 +175,25 @@ export function RDSSE({
for (const [k, v] of Object.entries(preflight.modality_features)) {
if (k === "" || k.toLowerCase().indexOf("gene") > -1) {
tmpOptions["rnaExperiment"] = k;
tmpOptions["rnaCountAssay"] = preflight.modality_assay_names[k][0];
tmpOptions["rnaCountAssay"] = getDefaultAssayName(
preflight.modality_assay_names[k]
);

tmpOptions["primaryRnaFeatureIdColumn"] = getDefaultFeature(v);
} else if (
k.toLowerCase().indexOf("antibody") > -1 ||
k.toLowerCase().indexOf("adt") > -1
) {
tmpOptions["adtExperiment"] = k;
tmpOptions["adtCountAssay"] = preflight.modality_assay_names[k][0];
tmpOptions["adtCountAssay"] = getDefaultAssayName(
preflight.modality_assay_names[k]
);
tmpOptions["primaryAdtFeatureIdColumn"] = getDefaultFeature(v);
} else if (k.toLowerCase().indexOf("crispr") > -1) {
tmpOptions["crisprExperiment"] = k;
tmpOptions["crisprCountAssay"] = preflight.modality_assay_names[k][0];
tmpOptions["crisprCountAssay"] = getDefaultAssayName(
preflight.modality_assay_names[k]
);
tmpOptions["primaryCrisprFeatureIdColumn"] = getDefaultFeature(v);
}
}
Expand Down Expand Up @@ -275,24 +292,16 @@ export function RDSSE({
<strong>{mod} count assay</strong>
</Text>
<HTMLSelect
defaultValue={
options?.[getFTypeKey(mod)]
? dsMeta.modality_assay_names[
options?.[getFTypeKey(mod)]
][0]
: null
}
onChange={(e) => {
if (
e.target.value !== undefined &&
e.target.value !== null
) {
let tmpOptions = { ...options };
if (e.target.value === "none") {
tmpOptions[`${mod.toLowerCase()}CountAssay`] =
null;
tmpOptions[getAssayNameKey(mod)] = null;
} else {
tmpOptions[`${mod.toLowerCase()}CountAssay`] =
tmpOptions[getAssayNameKey(mod)] =
e.target.value;
}
setOptions(tmpOptions);
Expand All @@ -305,7 +314,11 @@ export function RDSSE({
dsMeta.modality_assay_names[
options[getFTypeKey(mod)]
].map((x, i) => (
<option key={i} value={x}>
<option
key={i}
value={x}
selected={x === options?.[getAssayNameKey(mod)]}
>
{x}
</option>
))}
Expand Down
4 changes: 4 additions & 0 deletions src/components/NewAnalysis/TenxHDF5Card.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ export function TenxHDF5({
return `featureType${getCamelCaseKey(mod)}Name`;
};

const getAssayNameKey = (mod) => {
return `${mod.toLowerCase()}CountAssay`;
};

const resetModality = (mod, val) => {
let tmpOptions = { ...options };

Expand Down
55 changes: 33 additions & 22 deletions src/components/NewAnalysis/ZippedADBCard.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import "./index.css";

import { MODALITIES } from "../../utils/utils";

import { reportFeatureTypes } from "./utils";
import { reportFeatureTypes, getDefaultAssayName } from "./utils";

export function ZippedADB({
resource,
Expand Down Expand Up @@ -66,8 +66,10 @@ export function ZippedADB({
options["adtExperiment"] !== null &&
options["adtExperiment"] !== undefined
) {
tmpOptions["adtCountAssay"] =
preflight.modality_assay_names[options?.["adtExperiment"]][0];
tmpOptions["adtCountAssay"] = getDefaultAssayName(
preflight.modality_assay_names[options?.["adtExperiment"]]
);

tmpOptions["primaryAdtFeatureIdColumn"] = Object.keys(
preflight.modality_features[options?.["adtExperiment"]].columns
)[0];
Expand All @@ -87,8 +89,10 @@ export function ZippedADB({
options["crisprExperiment"] !== null &&
options["crisprExperiment"] !== undefined
) {
tmpOptions["crisprCountAssay"] =
preflight.modality_assay_names[options?.["crisprExperiment"]][0];
tmpOptions["crisprCountAssay"] = getDefaultAssayName(
preflight.modality_assay_names[options?.["crisprExperiment"]]
);

tmpOptions["primaryCrisprFeatureIdColumn"] = Object.keys(
preflight.modality_features[options?.["crisprExperiment"]].columns
)[0];
Expand All @@ -108,8 +112,10 @@ export function ZippedADB({
options["rnaExperiment"] !== null &&
options["rnaExperiment"] !== undefined
) {
tmpOptions["rnaCountAssay"] =
preflight.modality_assay_names[options?.["rnaExperiment"]][0];
tmpOptions["rnaCountAssay"] = getDefaultAssayName(
preflight.modality_assay_names[options?.["rnaExperiment"]]
);

tmpOptions["primaryRnaFeatureIdColumn"] = Object.keys(
preflight.modality_features[options?.["rnaExperiment"]].columns
)[0];
Expand Down Expand Up @@ -138,6 +144,10 @@ export function ZippedADB({
return `${mod.toLowerCase()}Experiment`;
};

const getAssayNameKey = (mod) => {
return `${mod.toLowerCase()}CountAssay`;
};

const resetModality = (mod, val) => {
let tmpOptions = { ...options };

Expand All @@ -161,18 +171,24 @@ export function ZippedADB({
for (const [k, v] of Object.entries(preflight.modality_features)) {
if (k === "" || k.toLowerCase().indexOf("gene") > -1) {
tmpOptions["rnaExperiment"] = k;
tmpOptions["rnaCountAssay"] = preflight.modality_assay_names[k][0];
tmpOptions["rnaCountAssay"] = getDefaultAssayName(
preflight.modality_assay_names[k]
);
tmpOptions["primaryRnaFeatureIdColumn"] = Object.keys(v.columns)[0];
} else if (
k.toLowerCase().indexOf("antibody") > -1 ||
k.toLowerCase().indexOf("adt") > -1
) {
tmpOptions["adtExperiment"] = k;
tmpOptions["adtCountAssay"] = preflight.modality_assay_names[k][0];
tmpOptions["adtCountAssay"] = getDefaultAssayName(
preflight.modality_assay_names[k]
);
tmpOptions["primaryAdtFeatureIdColumn"] = Object.keys(v.columns)[0];
} else if (k.toLowerCase().indexOf("crispr") > -1) {
tmpOptions["crisprExperiment"] = k;
tmpOptions["crisprCountAssay"] = preflight.modality_assay_names[k][0];
tmpOptions["crisprCountAssay"] = getDefaultAssayName(
preflight.modality_assay_names[k]
);
tmpOptions["primaryCrisprFeatureIdColumn"] = Object.keys(v.columns)[0];
}
}
Expand Down Expand Up @@ -271,25 +287,16 @@ export function ZippedADB({
<strong>{mod} count assay</strong>
</Text>
<HTMLSelect
defaultValue={
options?.[getFTypeKey(mod)]
? dsMeta.modality_assay_names[
options?.[getFTypeKey(mod)]
][0]
: null
}
onChange={(e) => {
if (
e.target.value !== undefined &&
e.target.value !== null
) {
let tmpOptions = { ...options };
if (e.target.value === "none") {
tmpOptions[`${mod.toLowerCase()}CountAssay`] =
null;
tmpOptions[getAssayNameKey] = null;
} else {
tmpOptions[`${mod.toLowerCase()}CountAssay`] =
e.target.value;
tmpOptions[getAssayNameKey] = e.target.value;
}
setOptions(tmpOptions);
}
Expand All @@ -301,7 +308,11 @@ export function ZippedADB({
dsMeta.modality_assay_names[
options[getFTypeKey(mod)]
].map((x, i) => (
<option key={i} value={x}>
<option
key={i}
value={x}
selected={x === options?.[getAssayNameKey(mod)]}
>
{x}
</option>
))}
Expand Down
11 changes: 11 additions & 0 deletions src/components/NewAnalysis/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,14 @@ export function getDefaultFeature(obj) {

return Object.keys(obj.columns)[0];
}

export function getDefaultAssayName(assaynames) {
let _defname = assaynames[0];
for (let _aname of assaynames) {
if (_aname.toLowerCase() == "counts") {
_defname = _aname;
}
}

return _defname;
}

0 comments on commit a296398

Please sign in to comment.