## Cytoscape Node Highlighter
**Author:** Tobias Ehrenberger,
[http://fraenkel.mit.edu/ Fraenkel Lab],
[http://be.mit.edu/ BioEngineering@MIT]
This Cytoscape App allows you to select and highlight nodes based on shared annotations in a selected column.
### Motivation:
In our work with disease-oriented protein-protein and protein-metabolite interaction networks, we wanted to browse our networks based on shared node annotations using custom pathway (and other) annotations. The goal was to quickly see which nodes were associated with specific gene sets, and to quickly browse through the available sets to find clusters of similarly annotated nodes in the network. Similarly, we needed a way to quickly display an overview of different *types* of nodes represented in our networks (again, based on custom node annotations). Exploring the available options in Cytoscape at the time, we were not able to find a way that allowed us to do this in a flexible, quick, and streamlined manner. We built this app to address this issue.
---
### Notes on Features:
Using custom node annotations, this app allows you to quickly display an overview of shared annotations between nodes and browse the network based on these annotations (i.e. see where in the network the annotated nodes are located).
**Custom annotations (and separator):** An annotation column may contain more than a single annotation. For example, to annotate a node *type*, the value of a *type* column may simply be "Metabolite" or "Protein". However, for other annotations, such as gene sets, more annotations may be needed for each node as a "gene node" can be associated with more than one gene set. To use all these node-geneset associations with the Highlighter App, simply include all gene sets for each node in the annotation column and separate them by a "separator" of your choice (default in the app is semicolon (`;`), but any character or string (sequence of characters) will work; just update the *Annotation separator* in the app accordingly). The app will then parse all annotations apart and display them individually.
**Select annotations from selected nodes:** Annotations can be selected from all nodes in the network, or from a subset of currently selected nodes. This allows you to explore clusters in a network in more detail without having to create a new network to work off.
**Select one or more annotations:** One or more annotations can be viewed at the same time so that nodes with similar annotations can quickly be selected.
**Count table:** The list of annotations displays the number of nodes in the network that the annotation was found for and sorts the table according to this number. This allows to get a quick "count table" for your annotations.
**Filter/Search Annotations:** The list of annotations can be filtered based on a search term. This helps trimming down the list of all annotations and find what you are looking for more quickly. The search is case sensitive.
---
### Usage Notes:
0. Make sure the Highlighter App is installed and you loaded annotations for your network.
1. Go to the Highlighter Tab in the Control Panel on the left.
2. On some screens, you may have to resize the left panel to see all options properly.
3. Then, click *Update Column List* to load all currently available annotation columns for the selected network. If you are switching to a new network, you will have to click this button again to get an updated list of available columns.
4. Select a column from the list.
5. If your column contains multiple annotations, choose the appropriate annotation separator depending on your column. This defaults to semicolon (`;`), but can be any character or string.
6. If you want to load annotations from only the currently selected nodes, check the checkbox.
7. Click *Choose Column/Update* to get the app to parse your annotations.
8. Once the annotations are parsed the Highlighter App will display all annotations (and their counts) in the box below the input fields.
9. Select one or more annotations to highlight/select the nodes associated with these annotations in the network view. You can select multiple entries by holding the control/command key while clicking on the desired options in the list.
10. If the list of results is too long, or you are interested in some particular annotation, you can use the search field to find entries of interest. To clear the search, you will have to remove the search string, and click the *Search* button.
---
### Installation:
Two options:
* Install using Cytoscape Apps Interface (Apps > AppManager, search for *Highlighter*)
or
* Download the JAR file and install it in Cytoscape, or copy it to your Cytoscape apps directory.
---
### Features Across Versions:
**v0.1.0**
- Choose a different annotation separator (the string/char that is used to split
annotations for a node, default is ';' as before).
- Choose to load annotations only from the currently selected nodes (especially
useful if you want to load annotations for a specific cluster in your network).
- Search the annotations for specific annotations (basic string matching, so it is
case-sensitive; what it basically does is a "contains *searchstring*").
To clear the search, you have to remove your search string and click on 'search'
again.
- Improved overall layout.
**v0.0.1** - first release!
- select multiple annotations at once.
- column separator is ';'