* Improve hosted cellxgene
- option to turn off the test index page, or supply a page for redirect.
For EB, The default is to return 404. For cli launch, the default is the test page.
- option to select which matrix types are allowed for multi dataset servers.
For EB, The default is CXG only. For cli launch, the default is any matrix type.
- Return early with an error response if diffexp is requested when not configured
- Verified that reembedings and user annotations also return with an error response
if used when not enabled.
TODO: The new options cannot currently be set by the user.
I plan to add a configuration file where these and all other settings can be set.
Fixes#1210Fixes#1228Fixes#1229
* Fix for favicon with --dataroot
* fix static assets in hosted cxg
The web proxy at aws eb was not finding the static assets.
The solution here is very simple: just copy the directory
containing the static assets to the top level of the artifact.zip.
This is not really the ideal solution. According to the AWS
docs you can make a mapping to the correct location in an
an ebextentions config file. I tried this and many combinations but
was not able to get this to work following that pattern.
Since we control the construction of the zip file, the solution
here isn't bad, but it could probably be made better.
* Add color mapping to the bar chart.
* Change histogram color generation from Viridis to InterpolateCool.
* Coloring of Histrogram based up the x axis instead of y axis.
Coloring of Histrogram based up the x axis instead of y axis.
* Respond to feedback from @colinmegill
* Only color histograms that are selected for colorby
* Add some small refactors to BrushableHistogram's componentDidUpdate
* Fix histogram coloring and binning
* Reuse binning functions from util/dataframe/histogram.js; this fixes
an issue with there being near-zero width bins
* Fix color mapping so that it matches the scale in the legend
* Do not attempt to plot bins if the calculated binWidth is zero; this
can happen if all values are the same
* Refactor the function that draws the histogram a bit
* Respond to feedback from @bkmartinjr
Co-authored-by: Donald Paul Herman <Donaldpherman@hotmail.com>
* Make sure apt is up to date before pulling hdf5
* Only install py dev reqs in cxg release vs anndata master test
* Don't need bu flag when using sed on ubuntu
* Don't re-install package reqs in python x anndata ver tests
* Minor documentation fix
* allow DataLocator to accept another locator as init param
* migrate to DataLocator
* migrate to DataLocator
* lint
* migrate to DataLocator
* add check for erroroneous use of remote path and annotations
* lint
* revert default data location - now back go CWD
* remove unused import
* maybe truncate string
* add string formatting to test
* correct import
* destructuring
* add maxlength
* test
* Respond to feedback from @bkmartinjr
Co-authored-by: Matt Weiden <538456+mweiden@users.noreply.github.com>
* Unpin anndata ver in tests against anndata master
* Add branch config to work on push
* Add links to tests in GitHub Actions status badges
* Remove temporary branch name
* add test labels
* prettier + add clcik return to clickOn()
* prettier + begin test
* finish label counting test
* add util to get coordinates of element
* add test id to labels
* add test to check overlay transform
* remove logs
* rename to match master
* first cut at re-embedding route and back-end support
* update and expand config route tests
* add scanpy_umap
* add reembedding to config route parameters
* front-end support for reembedding fetch and UI
* remove unused imports
* add loading state
* save reembedding in reducer state
* improve withColsFrom
* transmit reembed schema to client; pick unique embedding names
* display embeddings
* format
* lint
* spaces, tab size 2
* lint
* test hack for smoke-test race
* back out hack sleep
* add check for backed mode
* add unit test for reembedding
* lint
* hide re-embedding CLI param from help
* early, non-working eb config
* hosted cellxgene
In this PR, contains scripts and instructions for deploying cellxgene
for AWS elastic beanstalk. It supports the multi-dataset option.
The Makefile in the server/eb directory creates an artifact.zip
file, which can be deploy at AWS EB.
The server/eb directory contains:
app.py - flask app to run the server
Makefile - which creates an artifact.zip file which can be deployed.
README.md - instructions for setting up and deploying the eb app.
* hosted cellxgene (#38)
In this PR, contains scripts and instructions for deploying cellxgene
for AWS elastic beanstalk. It supports the multi-dataset option.
The Makefile in the server/eb directory creates an artifact.zip
file, which can be deploy at AWS EB.
The server/eb directory contains:
app.py - flask app to run the server
Makefile - which creates an artifact.zip file which can be deployed.
README.md - instructions for setting up and deploying the eb app.
* Update how artifact.zip is created
prune the server/test and server/eb directories
* Remove debugging print statements
* fixes from review comments
* fix lint
Co-authored-by: bkmartinjr <bruce@chanzuckerberg.com>
* Remove unused variables and imports
* Simplify conditional
* Fix typo
* Do not overprune var data cache
There is a bug in how the universe and world gene sets are constructed
and passed to `ControlsHelpers.pruneVarDataCache` that causes the var
data cache to be over-pruned. This commit fixes the issue.
Consider the following example from the node console:
```
❯ node
Welcome to Node.js v13.5.0.
Type ".help" for more information.
> new Set([1], [2], [3])
Set(1) { 1 }
```
What we really want is the set `Set(3) { 1, 2, 3 }`, which can be
constructed as:
```
> new Set([].concat([1], [2], [3]))
Set(3) { 1, 2, 3 }
```
* fix improper branch link
* set app to use dataset link
* temp repo change
* revert to master
* add options var
* tweak option order
* remove options config arg
* Disable ColorBy button for truncated categories
Fixes https://github.com/chanzuckerberg/cellxgene/issues/1156
For categories that have more than 100 labels we truncate the labels in
the UI, but still allowed users to ColorBy these categories. Coloring by
these categories can cause browsers to get bogged down.
This commit disables ColorBy for truncated categories.
* Minor documentation spelling and typo fixes
* Respond to feedback from @liaprins-czi
* Respond to feedback from @colinmegill and @bkmartinjr
* Undo selection appends diffExp genes to user gene list
Fixes https://github.com/chanzuckerberg/cellxgene/issues/1171
Need: When a user performs a differential expression from within
a sub-selection (world) of the data and then resets the selection to all
cells (universe), the differential expression results are no longer
valid.
Approach:
* When the selection is reset, move the top (maxUserDefinedGenes
- len(userDefinedGenes) from the differential expression results to the
list of user defined genes
* Raise maxUserDefinedGenes to 25 to give users more room and
accommodate the extra genes transferred in from differential expression
Other commits:
* Choose different button icons
* Add diff exp genes to user defined genes on subset too
* Respond to feedback from @liaprins-czi and @bkmartinjr
* add simple error message helper
* port all label name pickers to use the new LabelInput component
* use pure components where possible
* cleanup
* more cleanup
* lint
* change new label prompt
* Add undo/redo tests for annotations
Fixes https://github.com/chanzuckerberg/cellxgene/issues/969
... also refactor the tests for DRY.
* Add done()
* Make e2e annotations tests safer to concurrency
* Add data-testclass for save state.
* Simplify tests and make them dependent on save state
* Add codecov to Push Test workflow
* Empty commit
* Clear reports and tag each with flags
* Tag code reports by test
* Fix codecov tags
* One more fix
* Add user-generated annotations tests to the server
Partially completes https://github.com/chanzuckerberg/cellxgene/issues/969
* Auto-format python code
* @skip_if: passing lambdas > than property strings
* Respond to feedback from @bkmartinjr
This PR contains a refactoring to make adding new features easier.
The new features include supporting the tiledb format, and the multi dataset application.
The refactoring includes
Simplifying the directory structure and files.
a class structure to handle annotations (currently one type: AnnotationsLocalFile).
a class to handle application configuration
a class structure to handle matrix data (currently AnndataAdaptor and CxgAdaptor). CxgAdaptor uses tiledb.
Algorithms that were previously dependent on the scanpy anndata object are now generalized to work with an abstract interface.
The multi dataset option is not fully supported yet, and so the option to use it is hidden.
Use "cli launch --dataroot ..."
To access this feature.
All combinations of app single dataset/ app multi dataset and AnndataAdaptor/CxgAdaptor work with all the features, such as annotations, ontologies, diffexp.
* revert MatrixProxy; replace with correct use of adata slicing
* work around 0.6 adata slicing bug
* fix incorrect var slice
* simplify slicing of X
* add warning about performance impact of anndata<=0.7
* lint and remove unused code
* improve comment
* lint
* correctly parse versions
* temp files should preserve file suffix if possible - anndata 0.7 compat
* update anndata dependency to 0.6.20
* resolve PR review comments