* 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