mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-16 05:07:55 +08:00
* icons, partway * redux for values * onChange * cancel * annotations lifecycle for category names * copy categorical * edit category * add Dataframe.withColsFrom * render user annotations; default add/delete annotation category * add label name to actions * category name edit * error checking improvements * change schema field isUserAnnotation to writable * always have an unassigned label; implement delete label * implement add new label and edit label name * label current cell selection * fix select exact bug in crossfilter * clean up categorical reducer * fix tests * remove debugging printf * implement subset/reset for user annotations * undo redo support for user annotations * remove duplicate button from categories * add modal * remove obsolete duplicate annotation reducers * remove old debugging printf * connect modal to annotation create and dup * initial full-stack wiring * finish up end-to-end wiring * fix existing unit tests * fix pytests to match new schema API * remove debugging printfs * add label file rotation * remove obsolete comment * add fbs encode/decode tests * add tests for writable annotations * simplify code * fix hashing bug with FBS encoding * lint * fix smoke tests * improve error checking in Dataframe.withColsFrom * add unit test for Dataframe.withColsFrom * add unit test for Dataframe.columns and Dataframe.renameCol * fix bug in FBS encode, add better error checks, refactor * add FBS encode/decode test * add clarifying comment * clean up action type names; fix state inconsistency in crossfilter update * change autosave timer to 2.5sec * sort categorical metadata render order so it remains consistent * add temporary autogenerated label for add-new-label operation * fix hover-over label menu interference with cell highlighting * remove debugging code * add missing reducer cases & fix typo * make dataframe memoize more general purpose * add dev mode for annos * fix error on select duplicate * handle zero occupancy categories * correctly maintain unclipped AND clipped world * correctly handle zero length FBS matrix and label files * ensure all writable categorical schema contains an unassigned category * handle case where building occupancy stack for category with no members * dialog for creating label, disable button if duplicate or empty * visually separate writeable * edit category * fix edit category name * remove debugging code * fix edit annotation label * visually define unassigned, change options * Pull in requirements.txt from `master` * label currently selected cells * duplicate label * lint * fix pytest merge issues * rename --label-file to --experimental-label-file * remove debugging console log * spelling error fix; fix bug found in PR review. * lint
148 lines
5.0 KiB
JSON
148 lines
5.0 KiB
JSON
{
|
|
"name": "cellxgene",
|
|
"version": "0.11.0",
|
|
"license": "MIT",
|
|
"description": "cellxgene is a web application for the interactive exploration of single cell sequence data.",
|
|
"repository": "https://github.com/chanzuckerberg/cellxgene",
|
|
"scripts": {
|
|
"backend-dev": "python3.6 -m venv cellxgene && source cellxgene/bin/activate && yes | pip uninstall cellxgene || true && pip install -e .. && cellxgene launch ",
|
|
"backend-dev-anno": "python3.6 -m venv cellxgene && source cellxgene/bin/activate && yes | pip uninstall cellxgene || true && pip install -e .. && cellxgene launch --experimental-label-file labels.csv ",
|
|
"build": "npm run clean && webpack --config configuration/webpack/webpack.config.prod.js",
|
|
"clean": "rimraf build",
|
|
"dev": "npm run clean && webpack --config configuration/webpack/webpack.config.dev.js",
|
|
"e2e": "node node_modules/jest/bin/jest.js --verbose false --config __tests__/e2e/e2eJestConfig.json e2e/e2e.test.js",
|
|
"lint": "eslint src",
|
|
"smoke-test": "start-server-and-test start-server-for-test :5000 e2e",
|
|
"start": "node server/development.js",
|
|
"start-server-for-test": "cellxgene launch -p 5000 ../example-dataset/pbmc3k.h5ad",
|
|
"test": "node node_modules/jest/bin/jest.js",
|
|
"unit-test": "node node_modules/jest/bin/jest.js --testPathIgnorePatterns e2e"
|
|
},
|
|
"engineStrict": true,
|
|
"engines": {
|
|
"npm": ">=3.0.0"
|
|
},
|
|
"eslintConfig": {
|
|
"extends": "./configuration/eslint/eslint.js"
|
|
},
|
|
"eslintIgnore": [
|
|
"src/util/stateManager/matrix_generated.js"
|
|
],
|
|
"resolutions": {
|
|
"eslint-scope": "3.7.1"
|
|
},
|
|
"dependencies": {
|
|
"@blueprintjs/core": "^3.18.1",
|
|
"@blueprintjs/icons": "^3.10.0",
|
|
"@blueprintjs/select": "^3.10.0",
|
|
"d3": "^4.10.0",
|
|
"d3-scale-chromatic": "^1.5.0",
|
|
"flatbuffers": "^1.11.0",
|
|
"fuzzysort": "^1.1.4",
|
|
"gl-mat4": "^1.1.4",
|
|
"gl-matrix": "^3.1.0",
|
|
"gl-vec3": "^1.1.3",
|
|
"is-number": "^7.0.0",
|
|
"lodash": "^4.17.15",
|
|
"memoize-one": "^5.1.1",
|
|
"react": "^16.9.0",
|
|
"react-autocomplete": "^1.7.2",
|
|
"react-dom": "^16.9.0",
|
|
"react-helmet": "^5.2.1",
|
|
"react-icons": "^3.7.0",
|
|
"react-redux": "^7.1.1",
|
|
"redux": "^4.0.4",
|
|
"redux-thunk": "^2.2.0",
|
|
"regl": "^1.3.13"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "^7.6.0",
|
|
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
|
"@babel/plugin-proposal-decorators": "^7.6.0",
|
|
"@babel/plugin-proposal-export-namespace-from": "^7.5.2",
|
|
"@babel/plugin-proposal-function-bind": "^7.2.0",
|
|
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.4.4",
|
|
"@babel/plugin-proposal-optional-chaining": "^7.6.0",
|
|
"@babel/plugin-transform-react-constant-elements": "^7.6.0",
|
|
"@babel/plugin-transform-runtime": "^7.6.0",
|
|
"@babel/preset-env": "^7.6.0",
|
|
"@babel/preset-react": "^7.0.0",
|
|
"@babel/register": "^7.6.0",
|
|
"@babel/runtime": "^7.6.0",
|
|
"babel-eslint": "^10.0.3",
|
|
"babel-jest": "^24.9.0",
|
|
"babel-loader": "^8.0.6",
|
|
"babel-preset-modern-browsers": "^14.0.0",
|
|
"chalk": "^2.4.2",
|
|
"connect-history-api-fallback": "^1.6.0",
|
|
"copy-webpack-plugin": "^5.0.4",
|
|
"css-loader": "^3.2.0",
|
|
"eslint": "^6.4.0",
|
|
"eslint-config-airbnb": "^18.0.1",
|
|
"eslint-config-prettier": "^6.3.0",
|
|
"eslint-loader": "^3.0.0",
|
|
"eslint-plugin-filenames": "^1.3.2",
|
|
"eslint-plugin-import": "^2.18.2",
|
|
"eslint-plugin-jest": "^22.17.0",
|
|
"eslint-plugin-jsx-a11y": "^6.2.3",
|
|
"eslint-plugin-react": "^7.14.3",
|
|
"express": "^4.17.1",
|
|
"file-loader": "^4.2.0",
|
|
"html-webpack-inline-source-plugin": "0.0.10",
|
|
"html-webpack-plugin": "^3.2.0",
|
|
"jest": "^24.9.0",
|
|
"jest-puppeteer": "^4.3.0",
|
|
"json-loader": "^0.5.4",
|
|
"mini-css-extract-plugin": "^0.8.0",
|
|
"puppeteer": "^1.20.0",
|
|
"rimraf": "^3.0.0",
|
|
"serve-favicon": "^2.3.0",
|
|
"start-server-and-test": "^1.10.2",
|
|
"style-loader": "^1.0.0",
|
|
"sw-precache-webpack-plugin": "^0.11.5",
|
|
"url-loader": "^2.1.0",
|
|
"webpack": "^4.40.2",
|
|
"webpack-cli": "^3.3.8",
|
|
"webpack-dev-middleware": "^3.7.1"
|
|
},
|
|
"jest": {
|
|
"testMatch": [
|
|
"**/__tests__/**/?(*.)(spec|test).js?(x)"
|
|
],
|
|
"testURL": "http://localhost/",
|
|
"setupFiles": [
|
|
"./__tests__/setupMissingGlobals.js"
|
|
]
|
|
},
|
|
"babel": {
|
|
"env": {
|
|
"test": {
|
|
"presets": [
|
|
"@babel/preset-env",
|
|
"@babel/preset-react"
|
|
],
|
|
"plugins": [
|
|
"@babel/plugin-proposal-function-bind",
|
|
[
|
|
"@babel/plugin-proposal-decorators",
|
|
{
|
|
"legacy": true
|
|
}
|
|
],
|
|
[
|
|
"@babel/plugin-proposal-class-properties",
|
|
{
|
|
"loose": true
|
|
}
|
|
],
|
|
"@babel/plugin-proposal-export-namespace-from",
|
|
"@babel/plugin-transform-react-constant-elements",
|
|
"@babel/plugin-transform-runtime",
|
|
"@babel/plugin-proposal-optional-chaining",
|
|
"@babel/plugin-proposal-nullish-coalescing-operator"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|