## 2 Materials and Methods
### Functions of DegoViz and Development Environment  
DegoViz is a window-based software and is an implemented version of a prior study regarding visualizing microarray and gene ontology analysis [17]. Each step of the implementation is completed to provide biologists with new insight and focuses on research efficiency and intuitive visualization. The program is structured in three modules: session management, data processing, and visualization (see Table 1). The session management module provides session-based data management. Working in a session saves the target microarray files, group information for the files, and species information. DegoViz accepts the CEL file format of the data measured by Affymetrix arrays. Users can also store threshold values such as \(p\)-values and fold-change values to limit the number of DEGs. If users perform the data processing step, the result is stored in the session folder and users are not required to perform the same data processing step in the future. The data processing module is programmed to determine the DEG list according to the defined threshold values. We use the affy and limma methods implemented in the affy and limma package in R [18; 19]. After producing the DEG list, DegoViz searches for related GO terms using the clusterProfiler package in R [20]. Information regarding the DEG list and GO terms is stored for visualization. The visualization module draws an interactive heatmap and GO graph using the DEG list and related GO terms. Both the heatmap and GO graph are implemented in a real-time interactive manner, which allows users to observe the relationship between the DEGs and GO terms. The GO.db package in R [21] provides information regarding the hierarchy structure for the GO terms, which are illustrated in the GO graph. Figure 2: Example of GO result by Gorilla ([[http://cbl-gorilla.cs.technion.ac.il/](http://cbl-gorilla.cs.technion.ac.il/)]([http://cbl-gorilla.cs.technion.ac.il/](http://cbl-gorilla.cs.technion.ac.il/))). The upper part of the image is a visualization of the GO graph and the table below describes the enriched GO terms from the GO graph. The user interface of DegoViz is implemented in the Java language. The majority of the data processing is implemented in the R language, ([[http://www.r-project.org](http://www.r-project.org)]([http://www.r-project.org](http://www.r-project.org))), which uses subpackages in Bioconductor [22]. To communicate between R and Java, we use the RServe server engine [23]. To visualize the clustered data passed by R, we reconstruct the data into a directed acyclic graph structure; we use the jGprahT library [24]. Visualization implementation is completed with the Processing library [25], which is a strong tool for interactive visualization. Additional plugins are the toxiclibs ([[http://toxiclibs.org/](http://toxiclibs.org/)]([http://toxiclibs.org/](http://toxiclibs.org/))) and ControlP5 ([[http://www.sojamo.de/libraries/controlP5/](http://www.sojamo.de/libraries/controlP5/)]([http://www.sojamo.de/libraries/controlP5/](http://www.sojamo.de/libraries/controlP5/))), which are used for the physical simulations and the GUI. There are three important requisites that must be considered when designing the GO graph with the DEG list. First, the overall pathway of the ontology relationship must be easily recognizable. When biologists research the GO terms from the graph, they analyze them by following the relation path upward/downward between GO terms. It is important to have fluent work lines along the connection of the GO term nodes. Secondly, the enriched GO terms must be clearly perceptible to the researchers. Because the GO terms have special meaning and information in research, distinct from normal terms, they must be easily distinguishable from the other terms. Finally, a high perception of the relationship between the DEGs and the corresponding GO terms provides greater opportunities for identifying new interesting topics.