Files
cellxgene/dev_docs/design_principles.md
Colin Megill 6ecdfa4940 Create design_principles.md (#1903)
* Create design_principles.md

* Update design_principles.md

* Update design_principles.md

* Update design_principles.md

* Update design_principles.md

* Update design_principles.md

* Update dev_docs/design_principles.md

Co-authored-by: Ambrose J Carr <ambrosejcarr@users.noreply.github.com>

* Update dev_docs/design_principles.md

Co-authored-by: Ambrose J Carr <ambrosejcarr@users.noreply.github.com>

Co-authored-by: Ambrose J Carr <ambrosejcarr@users.noreply.github.com>
2021-04-01 16:50:09 -04:00

18 lines
1.9 KiB
Markdown

# Design Principles (HCI)
cellxgene is a tool for scientists investigating single cell rna seq datasets. The design of cellxgene proceeds from a small number of core principles:
0. the tool, first and foremost, must produce views that are **scientifically valid** at all times
1. the tool should be highly **scaleable** and handle *exploration* of millions of cells in the browser at interactive speeds, including interactive crossfiltering and dataframe subsetting
2. the tool should be **data dense** and give scientists powerful views into data
3. the tool should be powerfully expressive and **optimized for the `nth` day of use** rather than the first day, in the spirit of enterprise tools, even if that requires training or onboarding
- (think: photoshop, which is supported by a broad array of youtube tutorials, books and trainings)
4. the tool should **avoid duplicating data** onscreen
- for example, if we render a categorical label on the left hand side bar, locate further information related to that label in place on the left hand sidebar, rather than rendering that data again.
- for a concrete example, see the relationship between this solution: https://github.com/chanzuckerberg/cellxgene/pull/827 and this problem: https://github.com/chanzuckerberg/cellxgene/issues/762
5. the tool should enable users to rapidly test hypotheses on the application, which may require it to **enable interactive recomputation of views** into the data, for example:
- interactive differential expression
- interactive reprojection of umap
6. the tool should enable a productive workflow between those who are computational and those who are not
7. the tool should **minimize extraneous use of color**, leaving color to primary workflow actions like `compute differential expression` or `create new categorical metadata` or `create new geneset`. This leaves the color space to `colorby` actions, such as `colorby geneset` and `colorby categorical field`