BIOXHIT Visualiser Prototype Version 1

October 24th 2006

Aim

To produce a standalone visualiser application that can display the job history of a CCP4i project selected by the user, and allow them to browse the information for each. The visualiser will also provide access to a limited set of tools to interact with the displayed jobs.

Current status

I have developed a standalone Tcl/Tk visualiser based on dotgraph to illustrate and explore some of the functionality that I think the prototype should have.

The prototype is in the Bioxhit_db CVS repository:

Bioxhit_db/dbccp4i/application/ccp4i_db_dotgraph.tcl

It needs dotgraph_tcl version 0.0.2 in order to work, this can be obtained via http://www.ccp4.ac.uk/pjb.html#ccp4_programs

To run this prototype do e.g.:

wish ccp4i_db_dotgraph.tcl ~/RCSB_WORK_2005/PROJECTS/MR_TUTORIAL

where ~/RCSB_WORK_2005/PROJECTS/MR_TUTORIAL is a CCP4i project directory.

This is an illustration of how the main window looks for the dummy prototype. It displays the jobs in a CCP4i project with links indicating the flow of data (in the form of files) between jobs. The oldest jobs are at the top of the display and the newest are at the bottom.

Navigation of the display is covered below, as are the different styles used to display the jobs. There is also a set of selection tools.

Figure 1: screenshot of the prototype  

Displaying Jobs and Links

Navigation

The prototype allows navigation of the view using x and y scrollbars, and by left-mouse click-and-drag on the canvas in order to move the view.

Other navigational tools could be introduced later on, for example a "Go to job" option could recentre the view on the selected job.

Style of Job Nodes

Jobs in the history will be displayed as nodes in a directed graph from dot. dot gives the option of displaying nodes with different colours and shapes, so we can display jobs with different styles based on their status and also the number of links:

Example Description/explanation
Example of a job with no previous jobs (so it is ellipse-shaped) and with STATUS FINISHED (so it is coloured green).
Example of a job with previous jobs (so it is rectangular) and with STATUS FINISHED (coloured green).
Example of a job with STATUS FAILED (so it is coloured red) and with no previous jobs.
Example of a job that has STATUS KILLED (so it is blue).
Example of a job that has STATUS RUNNING (so it is coloured yellow).been selected by the user inside
Example of a job that has STATUS REPORTED. Any job with a STATUS different to FINISHED, FAILED, RUNNING or KILLED appears with colour grey.
Example of a job that has been selected by the user inside the visualiser - it is coloured cyan regardless of its STATUS.

Information displayed on the nodes

In the prototype the nodes are not large enough to display a lot of information, so only the job number and the taskname are displayed.

Interactions with jobs and links

Mouse over job

In the prototype, when the mouse moves over a job node then the job number, taskname and title are displayed in a line of text at the bottom of the screen.

A later implementation should provide more detailed information about the job, for example the date, files, whether there is a notebook entry or harvest file and so on.

Click on job

A left mouse click on a job is part of the selection behaviour described below.

A right mouse click on a job invokes a "context menu" that gives options for that particular job. In the prototype only the selection-based options are implemented.

Interactions with links between jobs

This is not implemented in the prototype. Potentially this could be useful however there is a problem with clicking on lines linking jobs, in that the target is quite easy to miss with the mouse. So this will require more thought.

Selection Tools

The prototype implements some basic selection tools:

In this prototype the selection can be used in the "Show" menu, which has the option to only show the selected jobs - this redraws the display with only the currenly selected jobs shown.

Figure 2: selecting jobs that follow on from a specified job Figure 3: selecting jobs that lead up to a specified job

What is not in this prototype

What to do next: immediate actions

These are the things that I think we should aim to do next before the end of the year:

We should also look at tightening up some of the usability aspects, like resizing of the window by the user (these are more to do with Tcl/Tk).

Next steps

These ideas are longer term: