Commit Graph
589 Commits
Author SHA1 Message Date
Colin Megill fff331e1f0 stub additional validation for gene name 2018-10-15 11:20:52 -07:00
Colin Megill 8d07b400be adding and removing user defined genes 2018-10-15 11:20:52 -07:00
Colin Megill 5b2c07f105 clear differential reducer 2018-10-15 11:20:52 -07:00
Colin Megill ca35ae0b40 cleanup in histogram 2018-10-15 11:20:52 -07:00
Colin Megill 1cf9fc76b0 break out differential genes from user defined 2018-10-15 11:20:52 -07:00
Colin Megill a42f9f83f5 clear differential expression button interface 2018-10-15 11:20:52 -07:00
Colin Megill 9de44e6fd4 clear differential expression reducer 2018-10-15 11:20:52 -07:00
Colin Megill ca37483447 remove old heatmap webgl code 2018-10-15 11:20:52 -07:00
Colin Megill dd1b9229fc access varDataCache with kvCache.get 2018-10-15 11:20:52 -07:00
Colin Megill 73f55cb9f8 obs index to index 2018-10-15 11:20:52 -07:00
Colin Megill 8aa75458ed brushable histogram renders genes 2018-10-15 11:20:52 -07:00
Colin Megill 0c8f4ed824 rename to createVarDimension 2018-10-15 11:20:52 -07:00
Colin Megill 5165297e2a position tweak 2018-10-15 11:20:52 -07:00
Colin Megill 9c8e0e76ad remove export 2018-10-15 11:20:52 -07:00
Colin Megill 693dc7be12 switch to roboto condensed for space 2018-10-15 11:20:52 -07:00
Colin Megill 090bad040e worldIndex returns NaN 2018-10-15 11:20:52 -07:00
Colin Megill a297956e69 add world helper method for var 2018-10-15 11:20:52 -07:00
Colin Megill b0603dbed7 create dimension for arbitrary gene 2018-10-15 11:20:52 -07:00
Colin Megill 30069c0e66 export request genes action for use from components 2018-10-15 11:20:52 -07:00
Colin Megill 2c74291ee9 add gene expression section to left sidebar 2018-10-15 11:20:52 -07:00
Bruce Martin 329cf64a49 remove webpack hot load, react hot load and react redbox (#326)
Fixes #176 and #290
2018-10-15 08:47:15 -07:00
Bruce Martin c7e6f54450 cleanup middleware pre-ship (mostly lint) (#329)
Fixes #180

URL middleware unused, but retained in expectation that we will need it shortly.
Fixed a bit of lint, mostly by reformatting or commenting out currently unused code.
2018-10-15 08:45:34 -07:00
Bruce Martin bf0154ada6 add current front-end dependencies to documentation (#328)
Add current front-end dependencies to document, highlighting minimum required support for routes.
2018-10-14 08:06:51 -07:00
Bruce Martin dcb3f6e901 fix inconsistent definition of layout route; update intro to match state of spec (#324)
Pre-release cleanup

intro updated to match state of spec
fix PUT/POST inconsistency for /layout route
bug/errata request process defined

Fixes #127
2018-10-12 11:44:21 -07:00
Charlotte Weaver 2e9d576890 Correct capitalization in swagger template (#320) 2018-10-11 16:43:26 -07:00
Charlotte Weaver 3229babd14 Add caching back in (#312)
* Add caching back in

Works now against filter instead of dataframe view

* Layout cache and move post->put

* Fix tests
2018-10-11 16:29:46 -07:00
Charlotte Weaver b90292ce4c Bump interactive limits (#319) 2018-10-11 15:56:58 -07:00
Charlotte Weaver 210787cb5d Filter in engine (#307)
* Add empty filter case

* Filtering dataframes moved to engine instead of rest

* minor changes from PR review

* Minor fixes from PR review

Pass {} instead of none if no filter
chain exceptions
typos
2018-10-11 15:23:31 -07:00
Bruce Martin ee0b066eb6 remove obsolete schema from example data (#315) 2018-10-11 13:02:28 -07:00
Bruce Martin ab76c57fdb updated anndata dependency version (#314)
Update Python requirements.txt to include correct anndata version
2018-10-11 13:02:07 -07:00
Bruce Martin b77d7b14b5 bkmartinjr/world tests (#306)
First cut at test for stateManager/world. Test data for REST responses factored out into separate file for shared use by Universe and World tests. Also cleaned up some debugging code.
2018-10-10 18:05:19 -07:00
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
Charlotte Weaver eb3b3fc59a Reorganize order of methods in engine and rest (#305) 2018-10-10 16:44:05 -07:00
Charlotte Weaver dce778f658 Config file is obsolete (#303) 2018-10-09 11:19:19 -07:00
Charlotte Weaver 11ef5ae51b REST Error handling (#299)
* Use HTTPStatus for all responses

More informative than just the code as an int

* Fill out REST error handling

* Test error routes

* Use HTTP Status for tests too

* factor mime type request into function

* Better mimetype errors

* 404 -> 400 error for bad key
2018-10-08 14:17:56 -07:00
Charlotte Weaver 8be0833d23 /layout put-> post (#301) 2018-10-08 13:38:13 -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
Philipp A 8674ad1f7f CLI improvements (#221)
* CLI improvements

* Circumvent apparent bug with subparsers.required
2018-10-04 16:41:14 -07:00
Charlotte Weaver 187bbfdcf7 /data/var (#295)
* Upgrade version of scanpy

* /data/var

This works for everything except the case where there is only one gene. Anndata flattens X when there is only one var thus causing the transpose to fail.

* Fix edge case when an axis (obs/var) only contains 1 element
2018-10-03 15:09:46 -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
Charlotte Weaver d09c820c1b Commit package-lock.json (#289) 2018-10-02 13:12:57 -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
Charlotte Weaver 023fd01957 Added "filter" level for var filter to match other filters (#267) 2018-09-24 15:09:34 -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