Commit Graph
100 Commits
Author SHA1 Message Date
Bruce Martin a9189017c7 first draft of release process (#408)
* first draft of release process

* additional release process changes

* specify semver
2018-11-06 07:17:35 -08:00
Bruce Martin 2d5bc9d0c9 Performance work, plus fix #405 (#406)
* remove memoization

* update to flash 1.0.2; turn on threading

* stand-alone helper routines for array slicing

* fix issue #405

* reset diffexp state when world changes

* performance work in dimension creation; fix world slicing bug

* update tests to match new state mgmt api

* update flask

* do not make dimensions for useless annotations

* update test to match optimizations
2018-11-05 13:57:58 -08:00
Bruce Martin 24a8a23355 add acknowledgements to README (#407) 2018-11-05 10:17:40 -08:00
Bruce Martin 6e46a65c32 fix add gene action format bug (#398) 2018-11-01 14:24:49 -07:00
Bruce Martin 9d7754e31e Improve front-end HTTP error handling (#397)
* UI for HTTP error handing in diffexp route

* HTTP error handling for other routes

* clean up toasters
2018-10-30 19:02:11 -07:00
Bruce Martin b181751493 add --obs-names and --var-names CLI params (#371)
* add --obs-names and --var-names CLI params

* fix lint

* performance improvements in scanpy engine

* fix lint

* fix typo

* correctly handle sparse formats in diffexp

* fix diffexp and 1d slicing

* diffexp uses t-stat, not pval; clean up arg handling

* make _slice a static method

* revise scanpy tests to match new API
2018-10-30 14:07:38 -07:00
Bruce Martin 01369801fc Docs: add parameters to /config (#357)
* add parameters to /config

* add real parameters
2018-10-30 11:04:30 -07:00
Bruce Martin bc15e9229f update config params to match REST API spec (#393) 2018-10-30 11:03:40 -07:00
Bruce Martin 3556bd11f5 fix lint (#369) 2018-10-24 07:12:51 -07:00
Bruce Martin b74c9e15c6 build fixes (#362)
* add production web build to travis tests

* remove old builds before starting new build
2018-10-22 13:54:11 -07:00
Bruce Martin 0c271bc815 categorical metadata performance work (#356)
* do not create unecessary option state for categories we will not display

* performance improvements for categorical metadata handling
2018-10-22 09:56:41 -07:00
Bruce Martin 5dea303bcd handle case of excessively large number of options in categorical met… (#350)
* handle case of excessively large number of options in categorical metadata
* move max category options count into globals
2018-10-18 18:07:39 -07:00
Bruce Martin 2616b5c185 finish tests for world (#340)
* Create Release_Validation_Recipe.md

* nameCreators test and better error handling

* add test for createObsDimensionMap

* add last set of tests for world module
2018-10-18 09:54:57 -07:00
Bruce Martin f9f43c42c0 more lint - components (#336)
* more lint

* fix typo introduced in delinting

* more lint

* remove dead code

* lint fixes

* lint
2018-10-17 07:17:51 -07:00
Bruce Martin 76ec29734a Performance work (#334)
* range encode filter range lists

* speed up data load

* add comment on scanpy read params

* update to latest scanpy/anndata

* performance improvments in data loading

* fix typo

* work around scanpy bug

* remove debugging print statements
2018-10-16 15:49:40 -07:00
Bruce Martin 6b0aafd27c package dependency cleanup (#330)
* update npm packages.  babel 7, redux 4, etc

* remove obsolete babel config file

* use correct icons
2018-10-15 17:36:13 -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
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
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 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