* revert all commits to before Typescript migration
* update compat workflow to match latest deps (#2335)
* update compat workflow to match latest deps
* attempt to debug
* attempt to debug
* remove debugging code
* typo
* update deps to match desktop (#2340)
* fix: don't run lint with `--fix` on push tests (#2273)
* fix: don't run lint with `--fix` on push tests
* npx
Co-authored-by: maniarathi <mani.arathi@gmail.com>
Co-authored-by: Madison Dunitz <madison.dunitz@chanzuckerberg.com>
* rename X_approx_distribution to X_approximate_distribution (#2337)
* Correctly handle non-finite numbers in heuristic determination of X distribution (#2342)
* handle non-finites explicitly
* improve and test edge case handling for distribution estimation
* revert debugging changes
* code readability
* clean up type inferencing (#2332)
* unit tests for 64 bit conversion
* clean up type handling
* type inference tests
* more type inference fixes
* use schema to determine user intent for data typing
* stop using deprecated API
* fbs type encoding test
* add missing test
* add more tests
* correctly infer X type for CXG adaptor
* lint
* fix typo
* ts migration
* cleanup from PR review
* lint
* PR review changes
* remove unused packages from client (#2359)
* remove unused packages from client
* add missing peer dep
* fix: disable FE auth testing on compatibility tests (#2377)
* update: release process (#2277)
Co-authored-by: maniarathi <mani.arathi@gmail.com>
* fix: remove spaces in param setup (#2380)
* delete deploy workflow (#2396)
* undo reformatting which now does not pass lint
* fix snapshots which changed due to npm dep changes
* add missing quoting to snapshot
* another snapshot typo fix
* TS Revert (2) - replay PR #2347 and #2354 (#2403)
* replay edits from PR 2347
* TS Revert (3) - replay edits in PR #2327 (#2404)
* replay edits in PR 2327
* TS Revert (4) - replay PR #2355 (#2405)
* replay edits in PR 2355
* add additional babel config
* reformat with new prettier config
Co-authored-by: Severiano Badajoz <sbadajoz@chanzuckerberg.com>
Co-authored-by: maniarathi <mani.arathi@gmail.com>
Co-authored-by: Madison Dunitz <madison.dunitz@chanzuckerberg.com>
* type camera
* type reducer store
* type actionhelpers
* type catchErrorsWrap callsite
* missed camera member var
* type nameCreators
* type makeContinousDimensionName callsite
* type promise limit
* type quantile
* type range
* introduce TypedArray + NumericArray
* type range
* cleanup test
* fix call sites
* type plimit call site
* finish typing camera
* use our TypedArray
* type scientific and sigFig utils and callsites
* simple typings
* type catLabelSort
* type callsite
* type
* callsites
* type camera methods
* swap back to strings, set defaults accordingly
* partially type centroid
* explicit tuple and undefined check
* fix references to this
* call constructor with new and casting
* Revert "introduce TypedArray + NumericArray"
This reverts commit cf21538717.
* explicit tuple
* generics and import fixes
* add unsigned 8 clamped arrray
* back to literals
* use arraytypes
* fix return state
* type more actions
* Update client/src/util/actionHelpers.ts
Co-authored-by: Timmy Huang <tihuan@users.noreply.github.com>
* properly type dispatch
* properly type thunk
* use new dispatch
* remove nullish coallescer
* use AppDispatch
* generic jsonrequest
* use dispatch again
* lint
Co-authored-by: Timmy Huang <tihuan@users.noreply.github.com>
* disable formatting rules for eslint and add prettier in lint-staged
* update npm modules
* set plugin-proposal-private-methods to loose
* update snapshots due to popover package update
* add missing quotes
Co-authored-by: bkmartinjr <bruce@chanzuckerberg.com>
* update package lock
* allow falsey vals
* remove old diff exp handling
* save diff exp results as geneset
* delete test
* check for undefined or null
* use global geneset description for diffexp
* remove diffexp special code, no longer showing adjpval + logfoldchange
* remove differential map to state
* remove clear from FSM, since we no longer support those actions
* restore controlHelpers test with todo
* refactor categorical controls state
* lint
* fix race condition in tests
* fix typo
* add missing update on subset
* remove obsolete code
* update jest and puppeteer major version; update all minors
* update when label changes
* remove lint from tests; increase timeouts in e2e tests
* initial refactoring to new async annomatrix
* refine error handling
* fix bad merge
* add continuous legend
* lint
* fix memoization in color table creators
* partial implementation of user defined annotations
* add new annotations action creator file
* first pass at user annotations
* additional user annotation bug fixes
* user annotation auto-save
* unit test cleanup
* lint
* refactor into multiple files
* cleanup
* add column GC
* fix several bugs in user annotations
* remove debug code
* no anonymous functions
* undo redo cleanup
* file cleanup
* scatterplot
* performance
* cleanup
* remove old code
* render in parallel with load
* fix race condition
* simply graph rendering
* render throttle DRY
* fix category label order
* fix typo in e2e test setup
* re-fix the e2e test setup
* be more tolerant of races
* anno matrix unit tests
* temp disable reembedding
* pilot port continuous histo to react-async
* name change
* lint
* fix repaint bug
* typo fix
* update snap to match new ids
* world/universe name cleanup
* move annoMatrix to src dir
* use private underscore naming convention
* fix corner case in all selected
* name cleanup
* add layout control
* init edge case
* lint
* port scatterplot
* fix label indexing bug and improve tests
* port category to react-async
* fix user annotation labelling while subset
* select all of prev layout on layout switch
* fix race with crossfilter update
* prettier lint
* fix misleading comment
* fix url composition in loader
* first pass at crossfilter tests
* lint
* lint
* fix typo
* improved error handling for network errors
* fix memoization bug
* add memo
* refactor for performnce
* add missing single-value handling in select exact parser
* small bugs discovered by tests
* lint
* additional crossfilter unit tests
* remove extraneous comment
* add support for automatic category determination
* lint
* fix render bug in category
* take advantage of schema categories guarantee
* lint
* do not clear history when resetting
* enhanced annomatrix gc
* lint
* finish renaming to follow conventions; fix clone race bug
* lint
* add priority based loading to improve initial data load UX
* crossfilter cache perf
* perf tuning
* remove timers
* documentation
* PR review changes
* PR review changes
* more PR review edits
* improve clarity of comment
* more PR review fixes
* port centroidLabels to use react-async
* remove dead code
* pr review updates
* oops, remove logging
* 1510-smoke-test
* config default
* update tests
* update test config
* fix linter errors
* more comments
* address comments
* use npm install in push_tests.yml
* use environment.default.json
* adding docs
* Take care of @mweiden's nits
* Save screenshots in the __tests__/screenshots/ directory
* typo
* docs
* Add chart tests (#1580)
* merge tests
* check if bin creation returned null before rendering charts (#1576)
* check if bin creation returned null before rendering charts
* refactor chart rendering into functions (#1577)
* little fixes from PR
* reintroduce fix to check for null values
* change getAllByClass to return element
* slice instead
* new stackedbar test
* feedback-1573-test (#1579)
* feedback-1573-test
* enable whole test set
* revert tests
Co-authored-by: Timmy Huang <tihuan@users.noreply.github.com>
* tweak test to actually render chart
* include snapshot
* remove async
* fix getAllHistograms
* properly grab id
Co-authored-by: Timmy Huang <tihuan@users.noreply.github.com>
Co-authored-by: Matt Weiden <538456+mweiden@users.noreply.github.com>
Co-authored-by: Severiano Badajoz <sbadajoz@chanzuckerberg.com>
* run eslint --fix
* camelcase
* camelCase config part 1
* part 2
* part 3 - removing subscripts
* fix "class-methods-use-this"
* fix "class-methods-use-this"
* fix eslint ignores
* add eslint ignore for set state in update
* reformat comments to appease eslint
* add a11y features
* sort-comp fix
* a11y fix
* add ignore for set state in update
* add a11y htmlFor
* remove unused toast
* remove unnecessary bind
* add ignore for set state in update
* add rel="noopener noreferrer"
Using target="_blank" without rel="noopener noreferrer" is a security risk: see https://mathiasbynens.github.io/rel-noopener
* use arrow function to bind
* remove unused definitions/declarations
* prettier
* remove unused state
* add comments to empty catch blocks remove curly brackets
* escape '
* use eqeqeq
* switch from default export
* remove ignore log
* remove static
* fix import
* revert subscripting config
* clean-up
* remove unnecessary subscript
* fix new errors from master
* change category click handler to a class property
* fix camelcase changes that slipped by
* unused import
* Fix newly introduced ESLint errors from addGenes
* first cut at re-embedding route and back-end support
* update and expand config route tests
* add scanpy_umap
* add reembedding to config route parameters
* front-end support for reembedding fetch and UI
* remove unused imports
* add loading state
* save reembedding in reducer state
* improve withColsFrom
* transmit reembed schema to client; pick unique embedding names
* display embeddings
* format
* lint
* spaces, tab size 2
* lint
* test hack for smoke-test race
* back out hack sleep
* add check for backed mode
* add unit test for reembedding
* lint
* hide re-embedding CLI param from help
* Undo selection appends diffExp genes to user gene list
Fixes https://github.com/chanzuckerberg/cellxgene/issues/1171
Need: When a user performs a differential expression from within
a sub-selection (world) of the data and then resets the selection to all
cells (universe), the differential expression results are no longer
valid.
Approach:
* When the selection is reset, move the top (maxUserDefinedGenes
- len(userDefinedGenes) from the differential expression results to the
list of user defined genes
* Raise maxUserDefinedGenes to 25 to give users more room and
accommodate the extra genes transferred in from differential expression
Other commits:
* Choose different button icons
* Add diff exp genes to user defined genes on subset too
* Respond to feedback from @liaprins-czi and @bkmartinjr
* load annotations individually
* fix type check to be more general
* update node CI version from 10 to 12
* node 11
* debug print node version
* travis node version to latest
* try nvm
* remove extraneous node_js statement
* remove node version debugging printf
* incrementally load all annotations and layout
* process annotations and layout as they are loaded
* fix tests
* sort categories incrementally
* incrementally build category view summary; add category loading spinner
* add spinner to continuous metadata
* configure undoable reducer
* incremental crossfilter creation
* improve busy layout
* more layout cleanup
* correctly reconcile categories in schema
* refine layout of lsb spinners
* more spinner layout work
* more spinner layout
* always load layout before obs annotations
* freeze objects
* component rendering perf work
* use PureComponent where safe
* remove obsolete WorldUtil code
* make brushable histogram a pure component
* comment
* add histogram functionality to Dataframe; port category occupancy to use it
* fix binning and create histogram for continous by catagorical
* Remove unnecessary logs
* Begin work on KDE
* Replace broken KDE with working histogram
* Define domain and range based on data from histogram
* Fix occupancy
* Add continuous obs and switch to canvas
* Stop value from always rerendering
* clear before render
* Clear canvas on render
* refactor categorical occupancy to canvas
* Remove log
* simplify finding max
* refactor kde->histogram and occupancy->bins
* refactor svg -> canvas
* rename to occupancy stack
* create popup
* add metadata and categorical values to popup
* fix overflow
* remove zeros info
* style graph
* fix shouldComponentUpdate to look for world changes
* change categorySelected -> categoryValueSelected
* refactor out render
* remove comment
* conditionally have bottom border
* remove diff comp
* remove comments
* remove unnecessary mapping
* Add comments describing drawing functions
* comments
* flip comparison order
* remove logging
* move default to parameter
* move defaults to parameter
* disable popover if not showing histogram
* fix wording and styling
* add line break
* enforce column name uniqueness for obs and var
* parameterize the column name containing obs and var user-readable names
* use the new annotation index value from schema
* update f/e unit tests
* PR review suggestions
* lint
* add own range() function
* lodash cleanup
* remove redundant fill range implementations
* remove use of _.get
* sync test babel config with build
* update tests to match new range implementation
* Add numeric inputs for percentiles
* Define initial values for percentile cutoffs in world reducer
* add percentil to crossfilter dimensions
* worldEqUniverse now handles cloned worlds
* add Dataframe.mapColumns
* Wire up handlers for percentile inputs
* World reducer and stateManager know about continuousPercentileMin/Max
* Create world as universe clone (not pointer) to avoid clobbering vals
* Define basic actions for setting continuousPercentileMin/Max
* Under the hood, deal with percentiles between 0 and 1
* Move percentile inputs to visualization settings menu
* Fix padding for undo/redo buttons
* Trigger world rebuild from percentile actions
* BROKEN - pseudocode for clamping dataframe by percentiles upon world rebuild
* fix error handling on clip quantiles; start world clipping implementation
* more unclipped reorg
* rename crossfilter.percentile to quantile
* simplify schema access
* update continuous legend when scale changes
* update color cache when clip changes
* clip obs annotations and var data when clip quantile changes
* use own fromEntries
* fix tests
* stable non-finite float sort/search
* clarify comments
* fix syntax typo
* use new stand-alone clip
* clip expresssion data
* add select tests for non-finite scalars
* basic styles
* clip UI now requires explicit commit
* reset enable/disable accounts for clip percentiles
* better error messages
* fix bug in undo interaction with programatic min brush selection
* small refactoring
* support clipping of int data
* do not perform unnecessary summarizations
* improve caching of dataframe compiled columns
* add percentile precompute to Dataframe.summarize
* use Dataframe.summarize for clip percentiles
* remove obsolete quantile code from corssfilter
* histogram scale and label Y axis, add unclipped X range labels
* layout tweaks
* scatterplot now updates when clip changes
* improve comments
* remove debugging comment
* rework clip number entry validation for usability
* ui tweaks to histogram colors and layout
* enable undo/redo for clip user action
* refine UI on clip value entry
* api cleanup
* update confusing comment
* clarify purpose of isValidDigitKeyEvent
* fix misleading comment
* apply appropriate button-group classes; do not mix span and div
* variable name and comment changes suggested in PR review
* rename sort to sortArray; remove unused and dead code path
* naming changes suggested in PR review
* code review improvements for clarity
* more small changes from PR review
* lint fixes for PR review
* fix spelling error
* clarify that function performs in-place modification of world
* add comment to clarify intent of range operation
* fix bad indents in comments
* clean up __columnsAccessor comments and code
* improve comments around clipPredicate
* field name consistency
* improve comment on quantiles params
* save graph selection in redux state
* fix old graph brush select regressions
* refactor graph brush selection to work with undo/redo
* update tests to match new crossfilter spatial select API
* graph selection state now in redux
* remove dead code
* sync graph selection with redux state; improvements to undoable machinery
* fix regression in undoable
* differentiate graph selection cancel from deselect action
* simplify calculation
* remove debugging code
* fix responsive repaint bug in graph selection tool
* undoable debugging and code cleanliness
* undoable action filter state now merges, rather than replaces
* improve comments
* add debounce to undoable action filter; improve comments and debug sanity check code
* comments
* fix undoable bug with clear scatterplot actions
* disable undoable debug flag
* cleanup API and comments around statemachine
* add test id attribute to lasso
* add better error handling for gene fetch requests
* initial dataframe commit
* initial dataframe port of core app
* rename variables for clarity
* remove unused import
* comment out unused code
* fix array handling bug in crossfilter dimension creation
* allow creation of empty dataframes
* handle non-existent columns
* handle non-existent columns
* revise tests for new dataframe
* comments for clarity
* comments for clarity
* generate bulk add placeholder with real gene names
* fix bug in gene name adding
* more dataframe unit tests
* fix bug - subset from current world, not universe
* put cut and pasted code into a single function
* improve caching of crossfilter
* remove cascading update bug from graph
* more performance work
* improve state handling for scatterplot
* performance optimization of critical path
* add column summarization
* dataframe utils
* add callOnceLazy
* fix tests
* minor updates found during review
* fix misspelling
* remove RESTv02 from function names
* comment cleanup
* cut/icut col parameter defaults to null
* break up large test
* improve tests and comments on dataframe at/has functions
* add Dataframe withCol/dropCol
* expression varData now stored in a dataframe
* dead code cleanup
* use dataframe.summarize()
* test cases for Dataframe.col.summarize
* update test cases for new dataframe summarize
* improve naming
* use new hasCol API
* add comments
* add more Dataframe.withCol tests
* add ability to specify row index in cut operation
* retire subsetVarData function
* correctly handle expression subsetting
* lint and improve comments
* rename cut to subset
* changes based on PR review
* initial dataframe commit
* initial dataframe port of core app
* rename variables for clarity
* remove unused import
* comment out unused code
* fix array handling bug in crossfilter dimension creation
* allow creation of empty dataframes
* handle non-existent columns
* handle non-existent columns
* revise tests for new dataframe
* comments for clarity
* comments for clarity
* generate bulk add placeholder with real gene names
* fix bug in gene name adding
* more dataframe unit tests
* fix bug - subset from current world, not universe
* put cut and pasted code into a single function
* improve caching of crossfilter
* remove cascading update bug from graph
* more performance work
* improve state handling for scatterplot
* performance optimization of critical path
* add column summarization
* dataframe utils
* add callOnceLazy
* fix tests
* minor updates found during review
* fix misspelling
* remove RESTv02 from function names
* comment cleanup
* cut/icut col parameter defaults to null
* break up large test
* improve tests and comments on dataframe at/has functions
* lasso working
* break out invert into own function
* action
* add spatial dimension to crossfilter, in support of polygon lasso
* improve comments on new dimension API
* lasso vs zoom