diff --git a/.gitignore b/.gitignore index cd52f01f..755f2a8b 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,39 @@ npm-debug.log .vscode data + + +*.idea* + +__pycache__ +*.DS_Store* + +# Elastic Beanstalk Files +.elasticbeanstalk/* +!.elasticbeanstalk/*.cfg.yml +!.elasticbeanstalk/*.global.yml + +GBM +venv +extesting + +Dockerfile-* +*-data/* +data/* +runServer.py +templates/favicon.png +templates/index.html +templates/service-worker.js +templates/static/* +Graph.dot* + +server/app/web/static/css/ +server/app/web/static/img/ +server/app/web/static/js/ +server/app/web/templates/index\.html + + +*.egg-info +dist/* +build/* + diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..6fb222c1 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,19 @@ +language: python +python: + - "3.6" +node_js: + - "8" +cache: + pip: true +install: + - set -eo pipefail + - pip install flake8 httpie + - ./bin/build-client + - python setup.py install +script: + - set -eo pipefail + - flake8 server/app/ + - pytest -s server/test/test_filter.py server/test/test_scanpy_engine.py + - cellxgene & + - for i in {1..90}; do if http :5005/api/v0.1/initialize > /dev/null; then break; else echo "Waiting for server..."; sleep 1; fi; done + - pytest server/test/test_api.py diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000..b881e298 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,3 @@ +recursive-include server/app/web/templates * +recursive-include server/app/web/static * + diff --git a/README.md b/README.md index 6a645a93..43c249ed 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,37 @@ A React + Redux web application for exploring large scale single cell RNA sequence data. -##### Quickstart: +### Requirements +- OS: OSX, Windows, Linux +- python 3.6 +- npm +- Google Chrome -* `npm install` -* `npm start` -* `localhost:3000` + +## Installation + +#### clone project + + git clone https://github.com/chanzuckerberg/cellxgene.git + +#### install client + + cd cellxgene + ./bin/build-client + +#### To use with virtual env for python (optional, but recommended) + + ENV_NAME=cellxgene + python3 -m venv ${ENV_NAME} + source ${ENV_NAME}/bin/activate + +#### install server + + python3 setup.py install + +#### run (with demo data) + + cellxgene + + +*Thanks to Alex Wolf his help with test data* diff --git a/bin/build-client b/bin/build-client new file mode 100755 index 00000000..8e51b8db --- /dev/null +++ b/bin/build-client @@ -0,0 +1,10 @@ +#!/bin/bash + +npm install --prefix client/ client +npm run --prefix client build +mkdir -p server/app/web/static/img +cp client/build/index.html server/app/web/templates/ +cp -r client/build/static server/app/web/ + +cp client/build/favicon.png server/app/web/static/img +cp client/build/service-worker.js server/app/web/static/js/ diff --git a/__tests__/util/bitArray.test.js b/client/__tests__/util/bitArray.test.js similarity index 100% rename from __tests__/util/bitArray.test.js rename to client/__tests__/util/bitArray.test.js diff --git a/__tests__/util/positiveInterval.test.js b/client/__tests__/util/positiveInterval.test.js similarity index 100% rename from __tests__/util/positiveInterval.test.js rename to client/__tests__/util/positiveInterval.test.js diff --git a/__tests__/util/typedCrossfilter.test.js b/client/__tests__/util/typedCrossfilter.test.js similarity index 100% rename from __tests__/util/typedCrossfilter.test.js rename to client/__tests__/util/typedCrossfilter.test.js diff --git a/configuration/babel/babel.dev.js b/client/configuration/babel/babel.dev.js similarity index 100% rename from configuration/babel/babel.dev.js rename to client/configuration/babel/babel.dev.js diff --git a/configuration/babel/babel.prod.js b/client/configuration/babel/babel.prod.js similarity index 100% rename from configuration/babel/babel.prod.js rename to client/configuration/babel/babel.prod.js diff --git a/configuration/babel/babel.test.js b/client/configuration/babel/babel.test.js similarity index 100% rename from configuration/babel/babel.test.js rename to client/configuration/babel/babel.test.js diff --git a/configuration/eslint/eslint.js b/client/configuration/eslint/eslint.js similarity index 100% rename from configuration/eslint/eslint.js rename to client/configuration/eslint/eslint.js diff --git a/configuration/polyfills/polyfills.js b/client/configuration/polyfills/polyfills.js similarity index 100% rename from configuration/polyfills/polyfills.js rename to client/configuration/polyfills/polyfills.js diff --git a/configuration/webpack/webpack.config.dev.js b/client/configuration/webpack/webpack.config.dev.js similarity index 100% rename from configuration/webpack/webpack.config.dev.js rename to client/configuration/webpack/webpack.config.dev.js diff --git a/configuration/webpack/webpack.config.prod.js b/client/configuration/webpack/webpack.config.prod.js similarity index 100% rename from configuration/webpack/webpack.config.prod.js rename to client/configuration/webpack/webpack.config.prod.js diff --git a/favicon.png b/client/favicon.png similarity index 100% rename from favicon.png rename to client/favicon.png diff --git a/index.html b/client/index.html similarity index 97% rename from index.html rename to client/index.html index db192aec..332616c9 100644 --- a/index.html +++ b/client/index.html @@ -3,7 +3,7 @@
-