From 16fc13604fd2c163eb4e691a786e52228470677b Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 7 Apr 2025 12:11:33 -0700 Subject: [PATCH 01/28] Improve data QC --- singlecell/resources/queries/singlecell/samples.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/singlecell/resources/queries/singlecell/samples.js b/singlecell/resources/queries/singlecell/samples.js index 1a0d6d8f7..0b78206ec 100644 --- a/singlecell/resources/queries/singlecell/samples.js +++ b/singlecell/resources/queries/singlecell/samples.js @@ -62,4 +62,12 @@ function beforeUpsert(row, oldRow, errors){ if (['Lung R', 'Lung Right', 'Lung-Right'].indexOf(row.tissue) !== -1){ row.tissue = 'Lung-R'; } + + if (['Bulk', 'bulk'].indexOf(row.assaytype) !== -1){ + row.assaytype = 'Bulk cells'; + } + + if (['Peptide Stim-BFA', 'Peptide stim-BFA'].indexOf(row.assaytype) !== -1){ + row.assaytype = 'Peptide Stim - BFA'; + } } \ No newline at end of file From a4f691d1c761ecc448ee3b3159b52a0518348f34 Mon Sep 17 00:00:00 2001 From: hextraza Date: Fri, 11 Apr 2025 13:09:50 -0700 Subject: [PATCH 02/28] Misc fixes (#325) * en localization for pagination, for commas * React-select for autocomplete on VariantSearch * Add share button to VariantTable * in set -> equals one of * Fix tests for new autocomplete input --------- Co-authored-by: Sebastian Benjamin --- .../VariantSearch/components/FilterForm.tsx | 49 +++++---- .../VariantSearch/components/ShareButton.tsx | 25 +++++ .../components/VariantTableWidget.tsx | 31 ++---- .../VariantTable/components/ShareButton.tsx | 25 +++++ .../components/VariantTableWidget.tsx | 35 +++++- jbrowse/src/client/JBrowse/utils.ts | 4 +- .../external/labModules/JBrowseTest.java | 101 +++++++++--------- 7 files changed, 173 insertions(+), 97 deletions(-) create mode 100644 jbrowse/src/client/JBrowse/VariantSearch/components/ShareButton.tsx create mode 100644 jbrowse/src/client/JBrowse/VariantTable/components/ShareButton.tsx diff --git a/jbrowse/src/client/JBrowse/VariantSearch/components/FilterForm.tsx b/jbrowse/src/client/JBrowse/VariantSearch/components/FilterForm.tsx index 1752cabcf..f24b2e857 100644 --- a/jbrowse/src/client/JBrowse/VariantSearch/components/FilterForm.tsx +++ b/jbrowse/src/client/JBrowse/VariantSearch/components/FilterForm.tsx @@ -2,6 +2,7 @@ import React, { useState } from 'react'; import TextField from '@mui/material/TextField'; import Button from '@mui/material/Button'; import Select from '@mui/material/Select'; +import ReactSelect from 'react-select'; import AsyncSelect from 'react-select/async'; import MenuItem from '@mui/material/MenuItem'; import FormControl from '@mui/material/FormControl'; @@ -109,7 +110,7 @@ const FilterForm = (props: FilterFormProps ) => { updatedFilter.value = ''; } - if (value === "in set" || filter.operator === "in set") { + if (value === "equals one of" || filter.operator === "equals one of") { updatedFilter.value = ''; } } @@ -211,25 +212,33 @@ const FilterForm = (props: FilterFormProps ) => { {filters.map((filter, index) => ( - - Field - + value={ + filter.field + ? { + value: filter.field, + label: fieldTypeInfo.find(f => f.name === filter.field)?.label ?? filter.field + } + : null + } + isClearable + /> @@ -259,7 +268,7 @@ const FilterForm = (props: FilterFormProps ) => { - {filter.operator === "in set" ? ( + {filter.operator === "equals one of" ? ( Value - handleFilterChange(index, "operator", event.target.value) - } - > - - None - - - {getOperatorsForField(fieldTypeInfo.find(obj => obj.name === filter.field)) ? ( - getOperatorsForField(fieldTypeInfo.find(obj => obj.name === filter.field)).map((operator) => ( - - {operator} - - )) - ) : ( - - )} - - + + Operator + - {filter.operator === "equals one of" ? ( + {filter.operator.key === OperatorKey.EqualsOneOf ? ( Value