A Tidy Tree Interactive Visualization Library to query Distributed Databases

Nowadays, Interactive Visualization has acquired growing importance, particularly in web-oriented environments. Modern web application struggles to provide as intuitive as possible interfaces, to guaranty fast and accessible data visualization. In this context, a web platform for cancer genomic data management as the LAS (Laboratory Assistant Suite), which supports the research activities at Cancer Institute IRCCS Candiolo, has to deal with user interaction and Interactive Data Visualization. Currently, this platform provides a query module allowing users to query different distributed databases from a single easy-to-use interface. The module, in fact, gives the possibility to build a graphical representation of the query, also to users without any knowledge of underlying databases' structures and technology (such as query language). The current query builder allows users to manually interconnect nodes to create a query; this approach requires multiple consistency checks on the defined graph and may lead to a confuse, untidy representation. For this reasons, a new approach is needed, where the graph construction is guided by the application, allowing only correct predefined paths and defining a ordered tree giving a comprehensible, hierarchical visualization of the query. The deprecation of some libraries used, in addition to the needs of a new visual and behavioural approach, has brought the necessity of restructuring the LAS query module. The aim of this thesis is to renovate the query module interface, in order to provide a responsive tool, compliant to modern standards, that reduces the effort required to the users by implementing a supervised procedure for the query graph creation. To accomplish this goal, it has been developed a JavaScript library for drawing interactive tidy trees, that suites the LAS query module needs. A first preliminary phase was devoted to the choice of the best algorithm for computing the nodes' positions, producing a tree that should be compact and pleasant-to-see: a so called “tidy tree”. Thus, they have been analysed some algorithms for drawing tidy trees, in order to compare them and make an informed choice. In particular, they were analysed two algorithms for drawing binary trees, Whetherell and Shannon's and Reingold and Tilford's, and two algorithms for drawing general trees of unbounded degree, Walker's and Van Der Ploeg's. At the end of this preliminary phase, the VDP algorithm had been chosen, as it is the most recent and most general algorithm suitable for our needs. During a second phase, the JavaScript library, named “ggen”, had been designed and implemented, with an as general and standard as possible approach. It had been built on top of the well-known “D3.js” framework, using the VDP algorithm. In order to respect the query representation requirements, the algorithm had been extended to be able to draw ordered hierarchical trees containing also nodes with more than one input. The last phase consisted in the restructuration of the LAS Query Module interface, supported by the integration of the “ggen” library. The final results are a library that dynamically recomputes node positions, producing a nice and compact tree-shaped representation of a query, and a new supervized interface that provides a wizard to the users guiding them, step by step, in the creation of a consistent query tree.