Closed keenleo closed 6 years ago
Chris, great job on this, and kudos to @gwaygenomics for giving us such a good example!
A few comments on how Greg's specific example fits into our current UI model:
Our current model consists of
Step 1) Gene Selection (by individual entry, path, text file, or custom query)
Step 2) Select Tissue (user picks from a list of tissues appropriate to the selected genes)
Step 3) Algorithm Selection (user selects algorithm from recommended list. Recommendations are based on users' goals. )
Step 4) submit classifier job for processing, back end then calculates finished classifier.
Step 5) Review Results: Summary Results, results data tables, charts & graphs.
In Gregs example:
Process Mutation Matrix
In Greg's example the Process Mutation Matrix corresponds to our step 4. Our steps 1,2 and 3 is what is to the left of the Process Mutation Matrix box.
Algorithm Selection
Notice in Greg's example that the algorithm is predetermined, so their is no "step 3". For this example, Greg used a logistical regression model whose coefficients are calculated (approximated) by a gradient descent technique (SGD). In our system the user would choose the algorithm based on some recommendations from us. Once we get a list of available algorithms from the ML group we can flesh out the specifics of algorithm selection. (This will be a good topic to take up with the ML group, if/when we meet with them.)
Choose Pathway
The Choose Pathway box would correspond to our Step 1 - Gene Selection. Note that in this specific example Greg is only selecting genes by pathway. In Cognoma, the user will be able to select genes by individual entry, path, text file, or custom query. For our first cut of the system, the user needs to be able to select genes individual text entry, and/or pathway.
Choose Tissues
The Choose Tissues box and the logic associated with Investigate Mutation Rates decision diamond corresponds to our Step 2 - Select Tissue. In our system the current plan was that the UI would to submit a request to the server for a list of tissues; included in the request would by the list of genes the user selected in Step 1. The backend would then return a list of Cancerous tissues which have mutations associated with the genes on the user's gene list. The Ui would then let the user select the tissues they are interested in.
How to build the Investigate Mutation Rates logic into the system is not something that has been discussed much in our sessions. In Greg's example the tissue list gets filtered by a minimum Percentage of Positive outcomes, and minimum sample count. We could build much of this logic into our system, so the user does not have to adjust it much. I suggest we adopt default values for the parameters minimum Percentage of Positive outcomes (filter_prop), and minimum sample count (filter_count). We then display the tissue list with the tissues which survive the filters highlighted and preselected. The user than has the option of using the selected tissues, or adding/deleting selected tissues. Also the the user should have an option of changing the values of the filter parameters (filter_prop, and filter_count). I think this method would encapsulate the logic in Investigate Mutation Rates.
As an aside to this topic, in Greg's example he filtered on sample count (this makes sense, and its easy). But, there is a better way. There are statistical techniques to determine when a sample size is too small to be useful. These techniques are fairly straight forward to implement in a system such as ours. They basically use the existing data we have to calculate a confidence, and a precision for each sample. Our system would then filter on either confidence or precision, instead of raw sample counts. In the long run, this method will provide more accurate results.
Determine Classifier Coefficients
All the logic between the Process Mutation Matrix box and the Determine Classifier Coefficients box should be included in the back end calculations. (The one exception to this is the View Tissue Specific Performance box. In our current design viewing specific slices of the results should be handled in Step 5 - Review Results.) The back end should do whatever calcs are necessary to optimize parameters. The choice of whether to use optimized parameters or not is part of the algorithm selection.
Investigate the Prediction
This box along with the View Tissue Specific Performance box corresponds to Step 5-Review Results. Basically the back end would provide the front end with results summary data, and enough detailed data slice and dice it into various views (tissues, genes, etc). What exactly the results section should look like is still not completely determined. For example:
1)what kind of tweaks will the user need to be able to perform on the results?
2)what tables/charts/graphs are common to all algorithms? Are there tables/charts/graphs that are specific to certain algorithms?
3)Once a user has the results what can they do with them? Save them? Export them? etc.
Hope these comments are useful - Bob Miller
Thanks @BobMiller for jotting all this information down. For the minimum viable product I suggest the following steps:
Algorithm selection is not needed because we're starting with a single algorithm. In future will likely be needed.
@dhimmel when you get a chance can you check out https://github.com/cognoma/uiux/tree/master/wireframes/exports/Query_Builder I dropped some jpgs in there of the Mutation Selector and Sample Selector screens and would like your feedback. I would also like Joel to weigh in on these with his UX expertise but I can't seem to find him on github to add him to the project.
Created a static clickable prototype for review at https://invis.io/5P8PM61R8
Referenced in https://github.com/cognoma/uiux/issues/2
Starting this issue to discuss the first use case.
I began a [process model](https://github.com/keenleo/frontend/blob/master/UX/use_cases/one/process_models/User Actions Level 1.png) to capture the decisions, inputs and outputs from Predicting Aberrations in The Hippo Signaling Pathway. This process model can help when communicating with other groups or designing wire-frames/mock-ups.