## These are wiki comments - leave them in so that people can see them when editing the page ## This template may be useful for documenting use cases ## Developed in response to a hackathon request for formalized, detailed use cases ## to help direct implementation proposals || '''Use Case Name''' : Paralogs || || '''For Feature''' : Groups || || '''Editors''': Kristina Hanspers || ## EXAMPLE: ## Use Case Name: Representation of Protein Complex ## For Feature: Grouping Function ## Editors: Mr. Knowitall <> == Summary == ## Provide a one paragraph description of the use case To represent two or more protein paralogs that can perform the same step in a pathway, we would like to group these. The set of proteins represent a logical OR, where either one of them alone can perform the reaction in question. To reduce complexity and enhance readability, it would be desirable to have these exhibit the properties of a group, in terms of collapsing etc, especially if there are many occurances of paralogs in one pathway. == Step-by-Step User Action == ## Provide a step-by-step account of how the user would execute the use case. For example: (1) right click on node, (2) choose "expand" from context menu, (3) new view is created, etc... Creating a New Group of Paralogs 1. Select two or more nodes 1. Choose "Group Paralogs" or just “Group” (don’t know how specific this needs to be for the user) from a context menu, main menu or toolbar 1. Automatically view collapsed view of group with default label (editable) 1. Be able to expand group as vertically stacked set of nodes by a very simple mechanism (e.g., click on a plus/minus icon) a. perhaps other restricted views of the children will be allowed: i. horizontal stack i. block (e.g., 2x2, 3x4) i. overlapping "clump" of nodes packed into a some defined circular area 1. Be able to destroy group 1. Be able to expand-all or collapse-all groups in a given network Loading a Network with Paralog Groups 1. Same as 3-6 above == Visual Aides == ## Provide attachments to images to illustrate the use case (screenshots, mock-ups, storyboards, etc) {{attachment:Wnt_GenMAPP.jpg}} In this GenMAPP pathway, stacked gene objects help indicate complex and paralog groups. For example, Dvl paralogs. == Requirements for Cytoscape == ## List the components/functions already in Cytoscape that are relevant to the use case and possible implementations (e.g., "current context menus can be used accomplish step 2 above") ## Also list components/functions that are needed in Cytoscape to execute the use case (e.g., * The Group API can handle this one in terms of create, expand, collapse and destroy * A simple GUI for create, expand, collapse and destroy should be sufficient. Specific semantics for paralogs may not be necessary. * Need to add simple layout/alignment algorithms for stacking children vertically in expanded view * Need to support the storage of groups in a pathway file format. xGMML and GenMAPP's GPML? == Importance == ## Describe whether this use case is critical and how frequently users would come across it. Paralogs appear on many pathways, and being able to group them is important for readability of complex pathways. == Other Examples == ## List other applications or relevant examples outside of Cytoscape that provide some or all of the desired functionality (e.g., "You can do this using the group function in PowerPoint"). * Simple, intuitive examples of expand and collapse can be found in directory tools/explorers that let you click on an icon (e.g., a triangle or plus/minus) to expand and collapse the view. * Illustrator and other such programs have a grouping function that mimics the restriction on children once a group is formed. You cannot move the children relative to each other, for example. If you want to treat them independently, you have to ungroup. == Comments ==