Commit Graph
83 Commits
Author SHA1 Message Date
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 67fc20b69a add Jest tests to travis (#287)
* add Jest tests to travis

* run npm test from client dir

* use correct npm args
2018-10-01 15:25:27 -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
Bruce Martin 2d218fa099 fix bugs in diffexp docs (#274) 2018-09-25 11:26:54 -07:00
Bruce Martin 7a39642593 Docs (#265)
* initial commit of REST API doc in MD

* clarify PUT/POST; improve footnote formatting

* change anchor name to endnote
2018-09-24 14:15:50 -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 9ee8781f32 disable react/prop-types 2018-09-19 10:30:14 -04:00
bkmartinjr b2c42b6379 delint 2018-09-19 10:30:14 -04:00
bkmartinjr f8b00af011 move redbox-react to depenedencies 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
Bruce Martin 18e1b0f2fb Merge pull request #195 from chanzuckerberg/layout-ui-changes
Layout changes
2018-08-20 08:43:02 -07:00
bkmartinjr f8bf32656c outdated package update; update to babel-preset-env in test config 2018-08-14 13:42:21 -07:00
Bruce Martin a7f728a9e8 Merge pull request #187 from chanzuckerberg/webpack4-replay
Webpack4 port
2018-08-14 13:12:25 -07:00
bkmartinjr b2619354c5 remove unused babel preset 2018-08-13 17:07:54 -07:00
bkmartinjr fbf798f4c4 update istanbul devDependency 2018-08-13 17:07:54 -07:00
bkmartinjr de5a6b1d29 remove polyfills 2018-08-13 17:07:53 -07:00
bkmartinjr 831ef283a0 switch to babel-polyfill 2018-08-13 17:07:53 -07:00
bkmartinjr 113cf17183 update package versions; upgrade webpack-dev-middleware options for dev server 2018-08-13 17:07:53 -07:00
bkmartinjr a03f4bcdd9 move Promise to dependencies 2018-08-13 17:07:53 -07:00
bkmartinjr 34561a3b08 further webpack config cleanup 2018-08-13 17:07:53 -07:00
bkmartinjr 4e80ed6c5d clean up babel config - remove deprecated options and extraneous package loads 2018-08-13 17:07:53 -07:00
bkmartinjr 73b6658d29 formatting of package.json 2018-08-13 17:07:53 -07:00
bkmartinjr 2cda3fb68f add jest config 2018-08-13 17:07:47 -07:00
bkmartinjr 2bf8b273d3 continued webpack4 port: update to recent build packages, remove unused packages, production webpack port 2018-08-13 17:07:01 -07:00
bkmartinjr 563b1c34c9 additional webpack4 migration steps: add mode to webpack config; add webpack-cli to package.json 2018-08-13 17:07:01 -07:00
Bruce Martin 5917dd1fb4 Merge pull request #181 from chanzuckerberg/csweaver/favicon
Serving favicon correctly
2018-08-10 08:28:49 -07:00
Bruce Martin d01792f22b Merge pull request #178 from chanzuckerberg/bkmartinjr/crlf-cleanup
clean up CRLF
2018-08-09 11:31:18 -07:00
bkmartinjr 4417e8f3da clean up CRLF 2018-08-09 10:50:54 -07:00
Bruce Martin 585d51e9cf Merge pull request #164 from chanzuckerberg/bkmartinjr-crossfiltergroups
add groups functionality to crossfilter
2018-08-08 14:33:29 -07:00
bkmartinjr 8119962c28 revert the module change reversion 2018-08-08 10:45:48 -07:00
bkmartinjr b2add5f2ce Merge branch 'master' of https://github.com/chanzuckerberg/cellxgene into bkmartinjr-crossfiltergroups 2018-08-08 08:44:02 -07:00
bkmartinjr 736ad2ca20 Merge branch 'master' of https://github.com/chanzuckerberg/cellxgene into bkmartinjr-crossfiltergroups 2018-08-07 15:46:43 -07:00
Bruce Martin 77f6e918b4 Merge pull request #163 from chanzuckerberg/csweaver/api-base
api host 0.0.0.0 -> 127.0.0.1
2018-08-07 15:46:13 -07:00
bkmartinjr 7ac8d31a96 Merge branch 'master' of https://github.com/chanzuckerberg/cellxgene into bkmartinjr-crossfiltergroups 2018-08-07 13:52:12 -07:00
bkmartinjr 957c1a9f20 Merge branch 'master' of https://github.com/chanzuckerberg/cellxgene into bkmartinjr-crossfiltergroups 2018-08-07 08:23:11 -07:00
bkmartinjr 00be4b710e Merge branch 'master' of https://github.com/chanzuckerberg/cellxgene into bkmartinjr-crossfiltergroups 2018-08-06 12:32:12 -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 c69a730e12 remove duplicates dependencies 2018-08-06 08:40:15 -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
bkmartinjr f839653c00 add Jest tests for new crossfilter group functions 2018-08-04 13:04:09 -07:00
bkmartinjr a39e0c79a6 add Jest configuration for node-based testing 2018-08-04 13:03:43 -07:00
bkmartinjr 993057b79c Merge branch 'master' of https://github.com/chanzuckerberg/cellxgene into bkmartinjr-crossfiltergroups 2018-08-01 16:32:56 -07:00
bkmartinjr 5400df25ca finish group() implementation 2018-08-01 16:32:31 -07:00
bkmartinjr cc354d7d61 Merge branch 'master' of https://github.com/chanzuckerberg/cellxgene into bkmartinjr-crossfiltergroups 2018-07-12 11:46:31 -07:00
bkmartinjr 2970189397 Merge branch 'master' of https://github.com/chanzuckerberg/cellxgene into bkmartinjr-crossfiltergroups 2018-07-10 13:52:35 -07:00
bkmartinjr 76446ca7d4 start at groups implementation for typedCrossfilter 2018-07-10 13:52:22 -07:00
bkmartinjr a0d5f1bf86 Merge branch 'master' of https://github.com/chanzuckerberg/cellxgene into bkmartinjr-addjest 2018-05-30 10:36:21 -07:00
bkmartinjr 9e8d48d630 more Jest tests for TypedCrossfilter 2018-05-30 10:35:49 -07:00
bkmartinjr 0b50f02d55 fix id() bug in ScalarDimension 2018-05-30 09:23:25 -07:00
bkmartinjr a0c6e3102b fix bug in fillBySelection 2018-05-30 09:03:03 -07:00
bkmartinjr bf6ebd5741 reset all cells on graph reset 2018-05-29 21:40:51 -07:00
bkmartinjr 9c2870e995 fix logic inversion on regraph 2018-05-29 21:38:47 -07:00
bkmartinjr 92dfc5f2ee add Jest tests 2018-05-29 21:16:48 -07:00
bkmartinjr eaa4e6c7a4 fix bug in selectOne and deselectOne 2018-05-29 20:34:59 -07:00
bkmartinjr 20756764f9 add comments 2018-05-29 11:58:57 -07:00
bkmartinjr 2f23e8675f fix typo generating exception 2018-05-29 10:01:33 -07:00
bkmartinjr 089d04ea9f move schema sniffer to util 2018-05-28 16:52:32 -07:00
bkmartinjr cfd13cad41 refactor regraph functionality to use crossfilter; add reset graph 2018-05-27 11:49:50 -07:00
bkmartinjr 2c79e98809 reorganize TypedCrossfilter code 2018-05-27 08:02:47 -07:00
bkmartinjr 7874e6a68b better caching of graph regl data 2018-05-25 17:27:50 -07:00
bkmartinjr 007e1d3a66 remove detritus 2018-05-23 21:01:28 -07:00
bkmartinjr cc661f31e1 first cut at high performance crossfilter 2018-05-23 20:59:13 -07:00
bkmartinjr 87958af6db merge with Colin responsive edits 2018-05-14 16:18:18 -07:00
bkmartinjr 1e88764132 move initializer to constructor 2018-05-14 16:04:31 -07:00
bkmartinjr fe655135e4 fix incorrect inequality check in caching code 2018-05-14 15:57:39 -07:00
bkmartinjr 156fb5c100 performance - improve caching in histogram and graph 2018-05-14 11:56:44 -07:00
bkmartinjr 7d79bc9e48 small cleanup requests from recent PR 2018-05-10 16:44:46 -07:00
bkmartinjr 06a5eedd0e performance - remove scaling from inner render loop 2018-05-09 21:10:59 -07:00
bkmartinjr 93920d9a72 performance - graph, scatterplot and brush select 2018-05-09 08:13:37 -07:00
bkmartinjr 783b7a46f1 use Object rather than Map to store color cache 2018-05-08 10:31:42 -07:00
bkmartinjr bb61d116d5 Remove dead code canvas rendering code 2018-05-07 16:26:24 -07:00
bkmartinjr c9ff8b35c2 Perf - cache parsed color descriptions 2018-05-07 15:13:50 -07:00
bkmartinjr 90c7daf571 Prettier 2018-05-05 13:15:10 -07:00
bkmartinjr 71c2a3ab43 do not use lodash get() 2018-05-02 17:20:43 -07:00
bkmartinjr 1bca48cde3 dont use lodash get() 2018-05-02 16:52:08 -07:00
bkmartinjr b3ee24d7c7 Merge branch 'regl-playground' of https://github.com/chanzuckerberg/cellxgene into regl-playground 2018-05-02 16:36:22 -07:00
bkmartinjr 56e66088bf performance - speed up categorical metadata deselection 2018-05-01 14:54:55 -07:00
bkmartinjr 118248446e performance - parse color descriptions once 2018-04-30 20:20:50 -07:00