Commit Graph

38 Commits

Author SHA1 Message Date
Bruce Martin
aea934bb6d remove dead code and lint (#310)
remove dead code from client/src/frameworks
delint various files
2018-10-10 18:04:43 -07:00
Bruce Martin
a0aae2e266 bkmartinjr/#294 rest sort (#300)
REST API now requires that the server sort all dataframe responses by dimension index (var or obs index), allowing the client (front-end) to assume responses will be sorted. Given that the dataframe usually has a natural ordering, and the server gets to arbitrarily assign indices, this is the most computationally efficient design.

This PR includes changes to the REST API spec, and removing the explicit sort in the front-end code.
2018-10-08 12:57:06 -07:00
Bruce Martin
19f2728a18 Bkmartinjr/state mgr tests (#298)
Jest tests for part of util/stateManager

* reorganize test directories

* lint

* add Jest config to eslint

* add Jest config to eslint

* lint

* fix babel configuration for tests

* start at kvCache tests

* reorganize test directories

* lint

* add Jest config to eslint

* add Jest config to eslint

* lint

* fix babel configuration for tests

* start at kvCache tests

* fix cache flush bug manifest by new test cases

* new kvCache tests

* skeletal universe test

* fix race in test case

* more universe test cases
2018-10-04 17:41:26 -07:00
Bruce Martin
467ae94faf more lint (#291)
* disable function-paren-newline warning

* fix misc lint

* lint

* remove noop exponentiation
2018-10-03 09:18:02 -07:00
Bruce Martin
eeec842ad0 Restv2 feature branch merge to master (#284)
Move to new REST v0.2 communication between front and back-end.   This is a first cut implementation which is functional, but will need follow-up enhancements for performance, error checking, etc.    Protocol spec is in docs directory.

* Add filtering via indexing

* Using new filter specs

Indexing working

* Added filtering by annotation value

* factor out common methods

* Documentation

* create enum for axis (obs/var)

* Better description for filter's return

* Add boolean to enumerated types

* Augmented enum for scanpy axis

* Create schema for annotations

Based on datatype within scanpy/anndata
+ tests

* remove obsolete schema parse script

* Update rest api to remove old routes and add schema route

* Separate development requirements

* Warning for unsupported datatypes

* include -r requirements.txt in dev

* Merged downcast warnings

* Fixed bug where names were NaNs

Needed to include the index too when creating the series

* Add config endpoint

* Generate app features from CLI selections

* Move features to driver

* Add tests for schema

* Clearer version wording

* python3 version of super

* version from engine to package level

* move features to driver

* Revise layout function to match the new spec

* GET for layout/obs

* PUT Layout (#211)

* PUT Layout

* Csweaver/annotations (#212)


* Update scanpy engine to support the rest v0.2 annotation requests

* GET endpoint for obs annotations + tests

* Documentation

* Test annotations in scanpy engine

* Description for annotation-keys param

* annotation->annotations

* clarified return for annotations

* Use URL query list for annotations fields

* parse_filter parses v0.2 GET filters (#215)

* parse_filter parses v0.2 GET filters

* Don't allow index filters from query params

* Better variable conversion

* Parse filter improvements

- uses default dict
- renamed filter -> query_filter

* Cleanup Tasks (#216)

* Add test_api back into travis build

* Do custom JSON encoding the correct way

* Run cellxgene server in test setup

* Cleanup new tests too

* Option to bind to all interfaces (#225)

app.run("0.0.0.0") instead of app.run("127.0.0.1") binds to all interfaces.

Note: There are comments on the internet that says that the flask server is not up to the task of production serving.  I don't think that such scalability concerns apply here, but I was able to get cellxgene working with twistd relatively easily, and we could switch to that if there are scalability concerns.

Test plan: browsed to <ip>:5005/api/v0.2/config on a different host.

* Add filtering via indexing

* Using new filter specs

Indexing working

* Added filtering by annotation value

* factor out common methods

* Documentation

* create enum for axis (obs/var)

* Better description for filter's return

* Add boolean to enumerated types

* Augmented enum for scanpy axis

* Create schema for annotations

Based on datatype within scanpy/anndata
+ tests

* remove obsolete schema parse script

* Update rest api to remove old routes and add schema route

* Separate development requirements

* Warning for unsupported datatypes

* include -r requirements.txt in dev

* Merged downcast warnings

* Fixed bug where names were NaNs

Needed to include the index too when creating the series

* Add config endpoint

* Generate app features from CLI selections

* Move features to driver

* Add tests for schema

* Clearer version wording

* python3 version of super

* version from engine to package level

* move features to driver

* Revise layout function to match the new spec

* GET for layout/obs

* PUT Layout (#211)

* PUT Layout

* Csweaver/annotations (#212)


* Update scanpy engine to support the rest v0.2 annotation requests

* GET endpoint for obs annotations + tests

* Documentation

* Test annotations in scanpy engine

* Description for annotation-keys param

* annotation->annotations

* clarified return for annotations

* Use URL query list for annotations fields

* parse_filter parses v0.2 GET filters (#215)

* parse_filter parses v0.2 GET filters

* Don't allow index filters from query params

* Better variable conversion

* Parse filter improvements

- uses default dict
- renamed filter -> query_filter

* Cleanup Tasks (#216)

* Add test_api back into travis build

* Do custom JSON encoding the correct way

* Run cellxgene server in test setup

* Cleanup new tests too

* Option to bind to all interfaces (#225)

app.run("0.0.0.0") instead of app.run("127.0.0.1") binds to all interfaces.

Note: There are comments on the internet that says that the flask server is not up to the task of production serving.  I don't think that such scalability concerns apply here, but I was able to get cellxgene working with twistd relatively easily, and we could switch to that if there are scalability concerns.

Test plan: browsed to <ip>:5005/api/v0.2/config on a different host.

* Fix merge errors

- import warnings was improperly deleted
- scanpy engine tests were totally wrong

* Fix merge error with driver

* PUT /annotations (#235)

* Add query param for annotation name

* fix descriptions, eliminate else clause

* first cut at initial data load on rest 0.2 api

* Annotation var (#248)

* Fix bug strings are always objects in pandas

* Add axis to annotation method

* Add /annotation/var to REST api

* Csweaver/expressiondata (#242)

* Refactor expression method for REST v2

* Add message to QueryStringError

* Fix range filters

* Add GET route for /data

* /data PUT route

* rename expression to data_frame

* clarification of error

* Improve accept type handling

* support all schema types for 0.2 REST API

* remove REST 0.1 code; connect var annotations loading

* config reducer; use config to set data set title; remove obsolete templating code for data set title

* REST 0.2 expression conversion support

* partial port of expression to REST 0.2

*  diffexp (#273)

* Add diffexp method to scanpy

and test

* Minor tweaks to diffexp

Get a minimal working version to unblock FE development

* Fixing things git deleted

* cleanup print statements

* Add index test

* additional, partial REST 0.2 bring up of diffexp

* Ignore unstructured annotations for data (#275)

This is a temp hack, need to figure out how to include data.uns if there is only one gene

* diffexp REST 0.2 port finish

* ignore unstructured annotaitons on all routes except layout

* correctly use varDataCache; maintain state during world rebuild

* correct varDataCache use

* temporarily disable all memoization

* refinements to expression data caching

* clear cell sets upon regraph/reset

* update version of REST to 0.2

* Travis build fixes

- comment out cache import
- fix duplicate test name

* Remove dependency from travis

* clarify semantics of config variables

* move generic action helpers into util
2018-10-01 14:58:46 -07:00
Bruce Martin
f0d9d873be Fix jest test suites (#268)
* CRLF to LF

* add babel-jest

* use ES6 style imports

* fix bugs manifest by test suite

* add babel test config
2018-09-27 17:52:17 -07:00
bkmartinjr
967ea21d8a delint components/graph 2018-09-21 15:28:06 -04:00
bkmartinjr
4543b002e3 lint fixes 2018-09-20 14:52:17 -04:00
bkmartinjr
d9a75fcd10 more linting 2018-09-19 10:30:14 -04:00
bkmartinjr
b2c42b6379 delint 2018-09-19 10:30:14 -04:00
Bruce Martin
d4e850d18f #130 redux refactor (#208)
* mocks for redux refactor - for discussion

* more API design on redux refactor

* add new reuqired dependencies for build

* change babel target to use modern browser

* remove dead code

* remove dead code - joy plots

* checkpoint on redux refactoring

* checkpoint on redux refactoring

* fix mistaken rebase conflict resolution

* dead code removal; add name to dataframe backmap

* rename dataframe to universe

* update eslint config to more closely match prettier

* lint

* more eslint updates to match prettier

* additional config to make eslint match prettier

* add expression data to Universe/World

* remove obsolete reducers

* lint fixes

* more eslint cleanup

* lint

* lint

* fix but in countAllOnes when dimensions gt 1

* lint; do not display name metadata field

* lint; colors refactor

* lint; colors refactor

* update comments

* first cut at regraph and reset

* enable object-curly-braces consistent mode

* lint, handle regraph with no selection

* fix expression scatterplot bugs

* fix regression legend display

* add expression data cache

* remove console logging

* reset cell color on regraph/reset

* remove obsolete server URLs

* rename UniverseV01 to Universe_REST_API_v01

* add additional comments on the varDataCache

* merge universe reducer into controls reducer; simplify initialization-related actions

* use spread operator

* fix erroneous comment

* convert universe and world state to plain objects, and functionalize supporting code (remove ES6 classes)

* use spread operator

* lint

* improve variable names

* rename obsCrossfilter to crossfilter and obsDimensionMap to dimensionMap

* rename controls2 to controls
2018-09-17 20:43:39 -07:00
Colin Megill
f7abee5156 kill logging 2018-08-19 19:57:43 -04:00
Colin Megill
fddf114076 don't render anything until everything loads 2018-08-19 19:57:26 -04:00
Colin Megill
d550b5503d graph needs to know about first time rendering 2018-08-19 19:57:11 -04:00
Colin Megill
743eee3d78 maximize space for heatmap 2018-08-19 19:20:57 -04:00
Colin Megill
d492e129d0 standardize buttons, move diffexp to lower right 2018-08-19 19:19:22 -04:00
Colin Megill
6fd7f23364 dead code cleanup 2018-08-16 10:13:13 -04:00
Colin Megill
3c9de7be9e add d3 and scale chromatic imports 2018-08-16 10:11:18 -04:00
Colin Megill
3087c173e6 remove import for joyplots 2018-08-16 10:07:26 -04:00
Colin Megill
e4cd873b21 better positioning of continuous paintbrushes 2018-08-16 10:07:08 -04:00
bkmartinjr
4417e8f3da clean up CRLF 2018-08-09 10:50:54 -07:00
bkmartinjr
8119962c28 revert the module change reversion 2018-08-08 10:45:48 -07:00
bkmartinjr
72afb3510c Merge branch 'master' of https://github.com/chanzuckerberg/cellxgene into bkmartinjr-crossfiltergroups 2018-08-06 09:49:00 -07:00
bkmartinjr
ff07bb1ebb fix for _.get typo 2018-08-04 15:14:40 -07:00
bkmartinjr
60238f61c4 Merge branch 'master' of https://github.com/chanzuckerberg/cellxgene into bkmartinjr-crossfiltergroups 2018-08-04 13:06:08 -07:00
bkmartinjr
8f56f0ce6e crossfilters: reverse ES6 module change; add group support for enumerated dimensions 2018-08-04 13:05:50 -07:00
Colin Megill
dfea46eff0 Merge pull request #144 from chanzuckerberg/#41-get-fixes
_.get instead of ternary
2018-08-03 15:22:08 -04:00
Colin Megill
cb6b784dfd final component conversions 2018-08-03 15:18:40 -04:00
Colin Megill
7ae1db627c continuous legend conversion 2018-08-02 15:32:26 -04:00
bkmartinjr
993057b79c Merge branch 'master' of https://github.com/chanzuckerberg/cellxgene into bkmartinjr-crossfiltergroups 2018-08-01 16:32:56 -07:00
Colin Megill
20331313e0 move to componentDidUpdate 2018-07-31 16:50:48 -04:00
Colin Megill
ee2b7fc13f stub getDerivedStateFromProps 2018-07-31 11:07:53 -04:00
Colin Megill
78077ad566 pulse loader doesn't work with 16 2018-07-30 14:29:54 -04:00
Colin Megill
b574542a60 _.get fixes 2018-07-23 17:06:32 -04:00
Charlotte Weaver
fdd9b1d0bd Updated obvious areas to cellxgene branding 2018-07-19 17:37:40 -07:00
Charlotte Weaver
d375c48b6a Merge branch 'master' into webgl-pause 2018-07-16 11:10:51 -07:00
Charlotte Weaver
85506db971 Updating to latest cellxgene client code
Fixes the build error in the old version. 

Reverted the API version since we changed directions from updating the API to refactoring the server structure instead.
2018-07-05 13:37:26 -07:00
Charlotte Weaver
dd5fa57259 renaming backend, cellxgene to server, client respectively 2018-06-26 11:41:32 -07:00