Commit Graph
214 Commits
Author SHA1 Message Date
Matt Weiden 4c1ecf9e52 Specify histogram thresholds in fixed-length array (#1086)
* Specify histogram thresholds in fixed-length array

Fixes https://github.com/chanzuckerberg/cellxgene/issues/1082

For background, see the following:
* https://github.com/d3/d3-array/issues/46
* https://stackoverflow.com/questions/15880058/d3-js-ticks-function-giving-more-elements-than-needed

* Oops, off by one!
2020-01-06 11:13:02 -08:00
Matt Weiden b172ff7f15 Add margins to histogram SVGs (#1085)
* Add a left margin to histogram SVGs

Fixes https://github.com/chanzuckerberg/cellxgene/issues/1042

1. Added "margins" to the SVG as in https://bl.ocks.org/mbostock/3019563
2. Tailored the brushable area to be just where the data is and locked
   puppeteerUtils to use that in e2e testing.

* Dial in margins to avoid y-axis clipping
2020-01-06 10:46:06 -08:00
Sidney Bell 97738e5c2d Remove FAQ link from info menu (#1084) 2020-01-02 16:04:38 -08:00
Matt Weiden 29947e25c3 Serve Roboto Condensed font from the app directly (#1077)
* Serve Roboto Condensed font from the app directly

Fixes https://github.com/chanzuckerberg/cellxgene/issues/344

* Remove second google fonts reference
2019-12-31 17:07:16 -08:00
Bruce Martin f8cef71eed help text changes (#1061)
* requested CLI help changes for launch sub-command

* update file name prose

* more wording changes

* more PR requests
2019-11-26 13:35:01 -08:00
Bruce Martin d2171b9a2f fix perf regression introduced by user anno changes (#1060) 2019-11-25 18:16:49 -08:00
Bruce Martin a593e95ab3 annotations CLI and file UX rework (#1049)
* rename config param label-file

* annotations rework - CLI params, file naming and backups

* lint

* improve cli option error checks

* enable session cookies

* enable session cookies

* add session id

* name annotations file in multi-dataset and multi-user safe manner

* pass data user hash to front-end

* add annotation collection name support to front-end

* add constant for annotation data collection name

* parameterize annotation collection name; make it sticky in the session

* clarify comments

* hard wire a temporary data collection name for testing

* prettier

* test comment

* package command

* set annotations  filename dialog

* name  and hash are visible

* wire up data collection capture
2019-11-25 15:28:28 -08:00
Bruce Martin 5713aa8792 category and label name validation updates (#1056)
* update label validation with new schema

* add new error messages for new label errors; general cleanup
2019-11-22 10:32:00 -08:00
Severiano Badajoz 9aaaad6709 tweak allotted width for value name + occupancy and tweak truncating (#1051) 2019-11-21 20:14:11 -08:00
Colin Megill c2ededfc62 Anno editing label/category error states (#1048)
* anno error states

* label validation should not treat empty string as error

* disable Submit if no label or category entered

* edit category name error states

* flex start

* pr cleanup

* label name validation fixes

* PR comment responses
2019-11-21 19:08:29 -05:00
Bruce Martin ee62dd355f [WIP] JS lint and dead code removal (#1053)
* lint and dead code removal

* fix regressions
2019-11-21 14:10:02 -08:00
Bruce Martin 9a540a4f0a fix erroneous state clearing (#1052) 2019-11-19 11:11:19 -08:00
Severiano Badajoz 5968da18b4 fix inconsistent sidebar value height(#1039) 2019-11-18 12:43:16 -08:00
Severiano Badajoz bd5f816d58 fix dataset title clipping (#1040) 2019-11-18 12:42:55 -08:00
Severiano Badajoz cf8f1a710d add padding to scatterplot shift (#1043) 2019-11-18 12:41:58 -08:00
Bruce Martin a52e86a69b improve category and label name validation (#1034) 2019-11-13 09:40:37 -08:00
Bruce Martin 04c83993d2 clear color-by mode when current category is deleted (#1033) 2019-11-12 15:31:06 -08:00
Colin Megill cadf710bf8 remove duplicate handler (#1027) 2019-11-08 11:18:29 -05:00
Colin Megill 84900bad0e Warnings on anno textfields (#1023)
*  Warning for creating new label with an existing name

* category dup

* italics
2019-11-07 18:57:15 -05:00
Colin Megill 4c3d783fc8 Continuous data in right sidebar (#985)
* Create right sidebar files, move histos over

* restructure continuous legend + all padding

* right sidebar file

* proper graph positioning and resize

* new lasso values since right sidebar

* fix autosave position
2019-11-05 20:29:21 -05:00
Bruce Martin 461084eca1 Pin the 'unassigned' annotation value/label to bottom of list (#1018)
* pin unassigned label to bottom of category list

* pin unassigned label to bottom of category list
2019-11-05 09:22:39 -08:00
Bruce Martin 341d3015f0 fix typo (#1016) 2019-11-05 09:21:48 -08:00
Bruce Martin 7599af451f add context sensitivity to annotation "label" menu item (#1015)
* cache common results to reduce jank

* add util function in support of annotation labelling

* enable/disable annotation edit menus per issue 972; improve formatting

* PR review requests
2019-11-04 14:22:38 -08:00
Bruce Martin a16c2e2747 crossfilter immutability error (#1009)
* add rename immutability test

* make rename immutable
2019-11-04 14:14:17 -08:00
Colin Megill e50fd8b881 Animate list items on name change (#1008)
* animate list items

* fix comment
2019-11-04 14:09:16 -05:00
Colin Megill 3f0567c59f disable editing if already editing (#999) 2019-10-31 13:46:59 -04:00
Colin Megill 934f61f2a1 categoryAddingNewLabel (#995) 2019-10-24 22:02:38 -04:00
Bruce Martin 711f3b7048 Add support for anndata backed mode (#943)
* initial cut at backed mode

* make flask multithreading conditional on debug flag

* update X access to support backed mode

* lint

* improve help message for backed mode

* fix tests

* add MatrixProxy to normalize supported matrix types

* add FAQ entry for --backed

* remove use of matrix.T

* clean up

* add ability to disable diffexp from CLI; add hueristic to detect likely slow diffexp calculation, and warn user

* fix tests

* do not print diffexp speed warning if diffexp is disabled

* tweak wording of diffexp speed messages

* add FAQ entry on --disable-diffexp

* revise heuristic for warning about slow diffexp

* use quick tooltip delay on diffexp button
2019-10-08 11:16:07 -07:00
Colin Megill 1467357db5 re-label (#973) 2019-10-07 16:02:09 -04:00
Colin Megill 296352b620 remove modal for inline edit category name, and autofocus (#962)
* remove modal for inline edit category name, and autofocus

* remove comment, rename to categorybeingedited
2019-10-04 13:41:05 -04:00
Bruce Martin 3f2811d9da rendering performance improvements (#968)
* freeze objects

* component rendering perf work

* use PureComponent where safe

* remove obsolete WorldUtil code

* make brushable histogram a pure component
2019-10-04 07:59:22 -07:00
Bruce Martin 700c871e6d reduce dot scaling upon zoom (#963)
* remove obsolete code

* change point scaling with zoom distance
2019-10-04 07:58:38 -07:00
Severiano Badajoz f865187a5d fix long values in sidebar (#911)
* tweak overflow and add truncation

* remove log

* alter char limit to evenly space around occupancy

* use global hover delay

* create constants for truncation lengths and fix truncation on self color

* create globals for short and long sidebar value length

* fix alignment

* create quick delay global
2019-10-02 11:01:22 -07:00
Bruce Martin ad290b3630 scale scatterplot point rendering size with overall app size, not scatterplot canvas size (#956) 2019-10-01 12:25:21 -07:00
Severiano Badajoz d94508d534 fix bulk add failing on first gene in world (#954) 2019-09-30 15:21:21 -07:00
Severiano Badajoz 44cb276cdf Add configurable about this dataset links (#907)
* add about arg

* add simple url validator

* attach about link to config api

* add links to configDefaults

* add conditional link in top left and menu item

* whitespace

* change to lower case

* move --about arg before click.command()

if this fixes it I have no idea why

* change link>URL

* be more descriptive about URL

* Make error more explicit

* refactor attach_data to accept about

* format

* change icon

* add trailing parenthesis

* whitespace
2019-09-25 19:23:49 -07:00
Colin Megill e64f4f06fb enter submits modals (#945) 2019-09-25 15:18:33 -07:00
Severiano Badajoz 32feb36172 better handle long dataset titles (#909)
* truncate middle of long title names

* remove width

* In the case of VERY long titles, hide overflow

* align bottom of title with cellxgene

* add character length global and shrink length
2019-09-23 16:31:54 -07:00
Severiano Badajoz c983e878e9 fix incorrect gene add error on empty query (#910)
* fix add gene button

* make bulk add case insensitive

* increase performance, incl memoizing

* change which lists are memoized

* improve hash to use ID from dataframe column

* Add requested fixes, and actually make bulk add work

* add default result to empty gene query

* replace with unicode ellipses

* change empty message
2019-09-23 16:31:07 -07:00
Severiano Badajoz 077541c762 fix bugs surrounding gene adding (#919)
* fix add gene button

* make bulk add case insensitive

* increase performance, incl memoizing

* change which lists are memoized

* improve hash to use ID from dataframe column

* Add requested fixes, and actually make bulk add work
2019-09-23 16:30:53 -07:00
Bruce Martin 109c9e70ec Add obs index to label file (#928)
* remove debug logging

* load and save obs/row index in label file

* lint

* update tests
2019-09-19 09:16:01 -07:00
Colin Megill 197ea9214a fix italic (#935) 2019-09-18 19:36:49 -04:00
Colin Megill 81e57afe29 Anno fixes (easy) (#925)
* change wording from value to label

* tooltip position

* Padding for text & code whitespace
2019-09-18 19:22:51 -04:00
Bruce Martin 3660a6cc27 Experimental - manual annotations (#837)
* icons, partway

* redux for values

* onChange

* cancel

* annotations lifecycle for category names

* copy categorical

* edit category

* add Dataframe.withColsFrom

* render user annotations; default add/delete annotation category

* add label name to actions

* category name edit

* error checking improvements

* change schema field isUserAnnotation to writable

* always have an unassigned label; implement delete label

* implement add new label and edit label name

* label current cell selection

* fix select exact bug in crossfilter

* clean up categorical reducer

* fix tests

* remove debugging printf

* implement subset/reset for user annotations

* undo redo support for user annotations

* remove duplicate button from categories

* add modal

* remove obsolete duplicate annotation reducers

* remove old debugging printf

* connect modal to annotation create and dup

* initial full-stack wiring

* finish up end-to-end wiring

* fix existing unit tests

* fix pytests to match new schema API

* remove debugging printfs

* add label file rotation

* remove obsolete comment

* add fbs encode/decode tests

* add tests for writable annotations

* simplify code

* fix hashing bug with FBS encoding

* lint

* fix smoke tests

* improve error checking in Dataframe.withColsFrom

* add unit test for Dataframe.withColsFrom

* add unit test for Dataframe.columns and Dataframe.renameCol

* fix bug in FBS encode, add better error checks, refactor

* add FBS encode/decode test

* add clarifying comment

* clean up action type names; fix state inconsistency in crossfilter update

* change autosave timer to 2.5sec

* sort categorical metadata render order so it remains consistent

* add temporary autogenerated label for add-new-label operation

* fix hover-over label menu interference with cell highlighting

* remove debugging code

* add missing reducer cases & fix typo

* make dataframe memoize more general purpose

* add dev mode for annos

* fix error on select duplicate

* handle zero occupancy categories

* correctly maintain unclipped AND clipped world

* correctly handle zero length FBS matrix and label files

* ensure all writable categorical schema contains an unassigned category

* handle case where building occupancy stack for category with no members

* dialog for creating label, disable button if duplicate or empty

* visually separate writeable

* edit category

* fix edit category name

* remove debugging code

* fix edit annotation label

* visually define unassigned, change options

* Pull in requirements.txt from `master`

* label currently selected cells

* duplicate label

* lint

* fix pytest merge issues

* rename --label-file to --experimental-label-file

* remove debugging console log

* spelling error fix; fix bug found in PR review.

* lint
2019-09-18 07:33:41 -04:00
Bruce Martin 922c375333 Rename "layout" to "embedding" in the UI (#921)
* rename "layout" to "embedding" in the UI

* docs changes for layout

* fix typo in data docs

* new help text, per PR review
2019-09-16 15:34:14 -07:00
Colin Megill ec4da63408 Format histogram axes: 200,000 --> 200k (#913)
* remove dead file

* tickformat
2019-09-16 17:07:51 -04:00
Bruce Martin c35f94fe6d add constraints on pan and zoom-over point (#904) 2019-08-28 17:56:46 -07:00
Bruce Martin b0562a11fd scale point size for graph and scatter plots (#903)
* scale point size for graph and scatter plots

* improve comments
2019-08-27 14:12:53 -07:00
Bruce Martin b309367bb0 Add hover-over highlighting to the scatterplot (#900)
* small perf improvement - do not recreate functions each time component is updated

* add hover-over highlighting to scatterplot
2019-08-27 14:01:30 -07:00
Bruce Martin b359a610da tooltips improvements (#896)
* add and fix tooltips on toolbar

* move tooltips below buttons

* add global definition for tooltip hover over delay
2019-08-22 20:56:33 -07:00