Cure Mock Up

66 views
Skip to first unread message

Karthik G

unread,
Apr 24, 2013, 4:31:46 PM4/24/13
to crow...@googlegroups.com

Hey Ben,

So I rustled up a mock up in photo shop for the game and came up with a rough gameplay.

User flow:
1. User logins in and goes to a rules and an introduction page similar to now.
2. The game basically begins with us  providing one seed node. This is the first node from where the user can go about providing child nodes by selecting the parent node and searching for relevant properties. This would also be the stage where we could provide suggestions.
3. As and when the user updates the tree we dynamically provide the score and show the wrong connections and splits in red.
4. we time him and keep record of the score.
5. When the user ends the game, we show him his score and time and give him an option to share it on his social profiles.
4. When he ends the game we could also show him a tree with the highest score that we could compute if possible.
5. So essentially the user who plays longest and best will have the highest score.

Does this gameplay seem on the right track?
Also I've attached a mock up i drew up in photo shop.

mockup_cure.jpg

Benjamin Good

unread,
Apr 24, 2013, 6:11:34 PM4/24/13
to crow...@googlegroups.com
Hi Karthik,

Not a bad start here.  Couple thoughts.
trees
1.  A missing element here is improved explanatory power for the tree.  How do you convey which branches are helpful and which are bad?  This is a hard question.  I'd suggest following the footsteps of prior designs until/unless you imagine something new that is arguably better.  Again, consider that BaobobView paper...  One of the things I like a lot about it is the way that it conveys the quantity of samples flowing through each node.  See for example figures 13 and 14.  See also a d3 implementation in that direction
2.  Another missing element is control over the split points for each node.  Since most of our data is numeric, this is an opportunity to again provide the user with control.  (Go to child X when above threshold, else to child Y..).  That paper I sent earlier by Ware and the weka implementation has a reasonable approach for this (its also an element of Baobob system).
3. Though in the larger scheme, the gamification aspect of this is important, I'd be excited if the end product was just an awesome online tool for interactively constructing decision trees.. 

game
4.  I'm not enthusiastic about the timer for this one.  This is going to be ~really~ hard for most people, even experts.  I want to focus the points /reward function directly on the score of the tree as much as possible so that they optimize on that rather than anything else.  For example, the timer might push people towards more random clicking which is not desirable.  

Loose ideas..
We definitely want some kind of gene-information display that we can show - akin to the info panel on the right of the cure.  
It is likely more challenging to code, but I like the concept of head-to-head matches like chess games..- a smarter Barney opponent could be a start in this direction though games between friends would be more fun.
Again http://www.gamification.org/ has a really nice collection of game concepts to consider.
Intersecting this with social networks is great, maybe expand thoughts on that..
Consider design/incentive patterns for collecting and sharing these trees between players.  

Sorry this isn't super clear yet ;).  Up to you guys to help with that!
-Ben 


--
--
You received this message because you are subscribed to the Google
Groups "Crowdsourcing Biology" group.
To post to this group, send email to crow...@googlegroups.com
To unsubscribe from this group, send email to
crowdbio+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/crowdbio?hl=en?hl=en
 
2012 GSoC Organization page: http://www.google-melange.com/gsoc/org/google/gsoc2012/scripps_crowdbio
GSoC Ideas page: http://sulab.org/gsoc/
---
You received this message because you are subscribed to the Google Groups "Crowdsourcing Biology" group.
To unsubscribe from this group and stop receiving emails from it, send an email to crowdbio+u...@googlegroups.com.
To post to this group, send email to crow...@googlegroups.com.
Visit this group at http://groups.google.com/group/crowdbio?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Karthik G

unread,
Apr 26, 2013, 4:03:24 PM4/26/13
to crow...@googlegroups.com
Hey Ben,

I went through both WEKA and BaobobView. I think I understood better what you had in mind. I built a simple tree builder in d3.js, here
Some simple features I have demonstrated in the demo,
  • Right click on a node to View Menu.
  • All nodes have three attributes.
    1. Name: Name of Node
    2. Value: A numerical value. Value of the node which will be compared to its parent's split value.
    3. Split Value: A numerical value. This is the numerical value that will determine the split and color of the child node. 
    4. Children: Add children to a node by right clicking an specifying parameters for the new child node. 
  • RED: Node value<=Parent split value
  • BLUE: Node value>Parent split value
In the demo, I have given the use to specify both the numerical value of a node as well as the split value of the parent node. In the game, these values can be directly extracted from the database. 

Data regarding the genes
For the display of data regarding the node, we could obtain data from GeneWikiPlus with which I'm very comfortable for last year's project. Would this source of information be sufficient?

Social Aspect
In the games we could actually give the option to publish the results on to some social networks. I'm well versed with Facebook, Google+ and Twitter APIs so that shouldn't be an issue. We could let the user also publish and share his/her tree with a simple link like genegames.org/cure/user-handle/
We could also link back to the leader board and encourage that kind of competition. 

I understand why we have to get rid of a timer. We could give complete emphasis to the score. 

With regard to Barney, we could keep a system similar to the existing one and we could provide more information regarding the tree constructed by Barney, step wise. For every node added we could provide more information about each node and thus, enrich the user's experience as well. 




Benjamin Good

unread,
Apr 26, 2013, 7:43:31 PM4/26/13
to crow...@googlegroups.com
Good thoughts.  I think it would be good for you to shift out of javascript and into a visual design mode for a while.  Draw on paper, in photoshop whatever...  Time for coding later.

You aren't going to want to type numbers for split points.  You'll want a visual way to pick them.  Again - explaining goodness/badness for nodes is important.

Look at the data shown for genes currently for the cure.  We could add GW+ to that, but the GO terms and Gene RIFs in The Cure are good (especially because not all genes that will show up in the game are in GW+).

Sharing of trees and scores is great.  Would focus first within the game environment and then push outwards.  (the construction of the trees themselves remains the main focus)

Assuming you do write up an application for this one, don't forget to consider server communication.  You will need to get the tree representations back to the server for scoring and storage.

-ben





Karthik G

unread,
Apr 27, 2013, 3:49:33 PM4/27/13
to crow...@googlegroups.com
Hey Ben,

I was looking into the server side communication. I understand that the front end communicates with the back end during the game mainly at /cure/METASERVER?command=*command*.

I tried to understand the JSON that was in the response from the server once a node is added in the game. I wasn't able to quite figure out the keys that were in it.

I notice that every node either relapse or no relapse have two keys, "bin_size" and "errors" as their elements. Could you elaborate as to what each of these values mean? So that I could figure out how to represent them. I also notice that the whole tree also gets an "evaluation" which contains a value, greater than which states no relapse and less then which shows relapse. I didn't quite fully understand the structure of that string under "evaluation" as well. 

If you could explain these three values, I could go on with representing them. I've gone through the BaobobView paper in more detail as well and now have clearer picture. 


Karthik G

unread,
Apr 27, 2013, 4:00:40 PM4/27/13
to crow...@googlegroups.com
I'm sorry, not "evaluation", I was referring to "model_rep". The split value given there. Could you please elaborate on what the value exactly represent? 

Benjamin Good

unread,
Apr 27, 2013, 5:42:02 PM4/27/13
to crow...@googlegroups.com
On Sat, Apr 27, 2013 at 12:49 PM, Karthik G <xraydif...@gmail.com> wrote:
Hey Ben,

I was looking into the server side communication. I understand that the front end communicates with the back end during the game mainly at /cure/METASERVER?command=*command*.

right
 
I tried to understand the JSON that was in the response from the server once a node is added in the game. I wasn't able to quite figure out the keys that were in it.

I notice that every node either relapse or no relapse have two keys, "bin_size" and "errors" as their elements. Could you elaborate as to what each of these values mean? So that I could figure out how to represent them.

bin_size means the number of samples that ended up at that node after running them through the tree.  (each "row" of data in our training set is a "sample") 
errors are the number of those samples what are incorrectly classified by that node.  (in tree speak, we are talking about 'leaves' here as they are the end of the chain of rules where the decision is actually made)
 
I also notice that the whole tree also gets an "evaluation" which contains a value, greater than which states no relapse and less then which shows relapse. I didn't quite fully understand the structure of that string under "evaluation" as well. 

there is an 'evaluation' object that describes the performance of the tree on all the samples in the training set.  (thats where the score comes from for the game)

there is also the model_rep which actually contains the entire structure of the decision tree.  If you dig into the javascript used on the active game, you will see Max's conversion of that representation into the tree you see in the game (also uses D3 but has been extensively customized.)
 
If you could explain these three values, I could go on with representing them. I've gone through the BaobobView paper in more detail as well and now have clearer picture. 

Given time constraints on my end, its going to be important for you to figure out how to follow the logic all the way through from the javascript messages and into the java classes on the server that do the work.  

-ben

Karthik G

unread,
Apr 27, 2013, 7:45:11 PM4/27/13
to crow...@googlegroups.com
Hey Ben,

Thank you for the clarification. I was looking into the server side code and seem to understand it pretty well. I was going through the javascript that Max had written as well. I will keep probing into that.

I'm attaching another mock up of the tree. It has both bin_size and errors in the form of a bar chart in the bottom of the node. 
The limit I've put it up as a number on the links. I wasn't able to think of a better implementation to show the limit. This is the same design as that of WEKA and BaobobView as well. I'm looking into something more elegant. I will change the color scheme of the nodes later on with a d3 scheme in the javascript implementation. 

Please let me know if this mock up is on the lines of what you had in mind. 
Tree Prototype.jpg

Benjamin Good

unread,
Apr 28, 2013, 12:49:30 AM4/28/13
to crow...@googlegroups.com
Not bad.  You will have to think about how to percolate the errors back from the leaf nodes, but its possible.  Think dynamic interactive...  Also think about what visual elements you have access to and what information they might convey.  Color?  Line thickness?  motion? placement?  size?

draw draw draw
-ben

Karthik G

unread,
Apr 28, 2013, 4:35:40 PM4/28/13
to crow...@googlegroups.com
Hey Ben,

I've come up with a better idea to represent the errors.

From what I understood, there are basically three numerical values associated with the tree in the cure.
1. bin_size of each node
2. errors of each node
3. accuracy of the entire tree

To represent all these three values in a tree, I've come up with the following mock up
In the tree,
1. Color of the border of all nodes - Varies from white to black representative of the accuracy of the entire tree.
2. Thickness of the links - represents number of samples that fall into the node i.e. bin_size
3. Bar chart in the node - shows the errors in the node.

On hover, the entire path to the node to and from the root node is highlighted and the split values shown at each step.
For the transitions, I'll be using d3 transitions as I had shown in the demo before.

Would this mock up be relevant in the context of my proposal. I wanted to start drafting one for this project. 
Tree2.jpg

Benjamin Good

unread,
Apr 28, 2013, 4:47:10 PM4/28/13
to crow...@googlegroups.com
Yes definitely relevant and its definitely time to get to work on your proposal.  If the proposal is accepted by our group and by google we we can continue to iterate till we stabilize the design, but I think the trajectory is heading in the right direction.  

You can and should refer directly to external references (e.g. baobob etc.) in your proposal.  Use diagrams like this to specify your ideas - then use text to explain why the designs were chosen and, if they vary from prior art, why.

now write write write..

-ben

Karthik G

unread,
Apr 29, 2013, 4:55:28 PM4/29/13
to crow...@googlegroups.com
Hey Ben,

I submitted my proposal and housed it at my server as well - http://gkarthik.net/proposal/proposal2013.pdf.
I would love to get your feedback on it. I also am working on improving the demo as well. 

Karthik G

unread,
Apr 30, 2013, 12:51:07 PM4/30/13
to crow...@googlegroups.com
Hey Ben,

I submitted my proposal and housed it at my server as well - http://gkarthik.net/proposal/proposal2013.pdf.
I would love to get your feedback on it. I am working on improving the demo as well. 

Benjamin Good

unread,
Apr 30, 2013, 1:00:53 PM4/30/13
to crow...@googlegroups.com
Hi Karthik (and others submitting proposals this week), I don't have no time for detailed proposal comments right now (and there is not much time for you folks to make big changes anyway).  Its up to you now to give it your best shot.  

good luck!
-Ben 

Karthik G

unread,
Apr 30, 2013, 1:01:44 PM4/30/13
to crow...@googlegroups.com
Thanks a lot Ben. Will definitely give it my best :).
Reply all
Reply to author
Forward
0 new messages