* WIP
* import find_available_port method
* move method to utils
so I can add to eventually add to gui
* add fixed-port flag to tests
* Update server/utils/utils.py
Co-Authored-By: Tony Tung <tonytung@merly.org>
* pr review suggestions
* pr review suggestions
* fix outdated package.json
* update error message
* simplify find_available_port function
* Auto scan for ports unless port is specified.
* fix tests
* fix comment for find_available_port
* lint error
* differentiate port error from generic os error
* add errno to OSerror
* pr review fixes
* raise e -> raise
* oserror -> socket error
* move app creation to function
* create engine without load
* flake 8 fixes
* cleanup original scanpy test
* add default config
* handle missing data
* test data changes
* unify update
* load data isn't static anymore
* make app a class
* Calculate QC metrics
* Add QC metrics to prepare section of readme
* Add pointer to scanpy qc metrics function
* Don't explicitly pass qc flag as arg
* Add explicit toggle for run-qc/skip-qc
* Move qc metrics calculation to separate step/function
* add cutoff for low expression genes in topN selection
* remove debugging printfs
* change cli param name for diffexp cutoff
* change CLI param name
* second try at diffexp - using lfc sort with pval cutoff
* use lfc cutoff
* update comments to match code; cap p-value adjustment to max of 1
* lint
* explain diffexp in readme
* add link
* add diffexp-lfc-cutoff to test config
* update test to match revised diffexp spec
* fix latent bug in GET arg handling that was breaking tests
* lint
* comment cleanup
* fix variance overestimation so it is symmetric
* lint
* fix anaconda build
* Added link for TKAgg
* Add matplotlib to requirements
We are pulling it in through scanpy, but since we are importing it directly we should include it explicitly
* 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
* refactor cli to improve ux and enable easy incorporation of prepare as a subcommand
* switches to use click, which removes some boilerplate and gets us some improved ux for free
* changes the entry point for the cli
* changes the name of the browser option to --open and makes the default false