Cody Dunne's (incomplete) HCI Portfolio

Action Science Explorer: Tools for Rapid Understanding of Scientific Literature

My work on iOpener is on developing citation network analysis and document summary visualization techniques. The tool depicted below incorporates SocialAction for network analysis and JabRef for reference management.

This image shows a subset of the ACL Anthology Network of academic papers that deal with dependency parsing. There are five coordinated views depicted here. The left side is your reference manager (JabRef, similar to Endnote, Mendeley, etc.) that gives a list of papers and their abstracts, BibTeX, doi/url/PDF links and the like and allows you to search, sort, group, and import papers. The middle window is the citation network visualization (SocialAction) which shows the node-link diagram for the citation network. Automatically generated clusters (Newman's fast heuristic) are shown with convex hulls and rankings by statistical measures like in-degree, betweenness centrality, and the like are shown in the left 1/3 and color coded in the visualization.

The bottom-middle pane displays the text of incoming citations for the selected papers. It was automatically extracted from each paper that cites the selected paper. Selected papers are highlighted in yellow in the network visualization and shown with white backgrounds instead of gray in the reference manager. The lime colored selection of in-cite text is a citation we want to see the context of in the citing paper, which is shown in the top-right. The selection is highlighted in lime there as well, and other automatically extracted citations are shown in orange and purple and can be clicked on to select the target papers.

The bottom-right pane shows an automatically generated summary of the in-cite text of the selected papers using a currently poor summarization algorithm.

MedCommix: A Tool for Aggregating and Visualizing Electronic Health Records

We proposed a solution for visualizing electronic patient health records by focusing on similarities within clusters of records. We were dealing with multi-million record databases, so approximation and efficiency were key. The following important questions arose: 1) How to compute intermediate values summarizing groups of multiple records? 2) How to cluster the records into groups and what similarity measure to use? 3) How to visualize intermediate results?

We developed several similarity measures for health records based on those in Similan including binning and dynamic time warping approaches. We clustered with the STREAM/LSEARCH approximate k-median online algorithm storing as much intermediate data as could fit in memory and then displayed each intermediate cluster with their aggregate attributes with bar charts.

Below is a screenshot with a small sample dataset.

We analyzed Radiology Contrast and Creatinine level for a group of patients. In some diagnostic radiology procedures, patients are injected contrast material. However, some patients develop adverse side effects to the contrast material. One serious side effect is renal failure, which is detected by high creatinine levels in a patient's blood. This adverse effect usually occurs within two weeks (14 days) after the radiology contrast.

We use the "radiology contast" as sentinel category and select the range from two weeks before the sentinel events until two weeks after. We align records together on the sentinel category so as to make comparisons between records with different temporal attributes. Categories selected for viewing are "CREAT-" (normal Creatinine level), "CREAT-L" (low Creatinine level), "CREAT-H" (high creatinine level) and "radiology contrast".

Patients are grouped into many groups according to their creatinine levels. Some of them represent interesting distributions. For example, group 1 has high creatinine level after the radiology contrast but has not many reported about creatinine level before the contrast. Group 9 represents patients with chronic renal failure because the creatinine level stays high long before the contrast and still stay high after. Group 10 represents patients with normal creatinine level before the contrast and then the creatinine level increases after the contrast, possibly because of side effect to the contrast.

NetGrok: Visualizing Real-Time Network Resource Usage

NetGrok is a tool for visualizing computer networks in real-time targeted at network administrators. It incorporates a group-based graph layout and a treemap to visually organize live captures of network data. It visually shows bandwidth with color and number of connections with size in both visualizations. We performed a user case study that demonstrates the benefits of applying these techniques to static and real-time streaming packet data. Specifically, NetGrok serves as an "excellent real-time diagnostic," enabling fast understanding of network traffic and easy problem detection.

Traffic collected on a typical Internet-connected network will likely have far more foreign hosts represented than local hosts. To prevent local network hosts from becoming lost in an overwhelming number of foreign hosts, the network graph contains a dashed ring. This ring serves as a boundary with local hosts contained within the ring and foreign hosts outside, providing a home-centric view of the network.

All hosts belonging to groups defined in the groups file are encompassed by a uniquely colored, semi-transparent convex hull. This technique allows users to visually identify the logical groupings of hosts in the network and manipulate entire groupings of hosts simultaneously. In this small dataset the Google group is shown in blue on the right and links are drawn for connections. With large numbers of packets links are turned off unless the connected nodes are moused over.

The foreign host layout algorithm hashes the host's IP, creates rectangular coordinates from the halves of the hash, and then converts them into polar coordinates. The resulting coordinate is plotted in an exponential polar plot. This layout pushes the points away from the center while keeping them from being bunched up at any particular radius. This algorithm guarantees that the same foreign host will always occupy the same position on any network graph. This is necessary when plotting thousands of remote hosts in multiple instances for continuity.

There is also a histogram on the bottom showing network usage over time, dynamic filters and details on the right, and alternate treemap and tabular representations. The treemap, shown below, shows links by highlighting connected nodes on mouseover.

Graph Drawing Readability Metrics

Automated graph layout algorithms have helped, but frequently generate ineffective drawings. In order to build awareness of effective graph drawing strategies, we created readability metrics on a [0,1] continuous scale for node occlusion, edge crossing, edge crossing angle, edge tunneling, etc. We defined new node and edge readability metrics to provide more localized identification of where improvement is needed. These are prototyped in SocialAction, a tool for social network analysis, in order to direct users towards poor areas of the drawing and provide real-time readability metric feedback as users manipulate it.

The image below shows the SocialAction prototype for ranking nodes based on their readability metric scores and coloring them based on the rankings.

This shows users visually where problem areas in the drawing are, be they node occlusions, edge crossings, edge tunnels, angular resolution problems, or the like. Worse areas are shown brighter red. As the user moves nodes the metrics are updated in real-time and the colors change so as to indicate how their adjustments are affecting the readability of the drawing.

Additional less relevant but fun images

Network of Connected Risk Countries

This visualizes the network of connected countries in the strategy game Risk, colored by node and edge betweenness centrality. You can easily see that Africa and Europe (the connected blob in the center) are harder to hold. Also, the Middle East, part of Asia in the game, belongs more with Europe and Africa according to Newman's community finding heuristic. Made in SocialAction.

Antonymy relationships between word categories in the Macquarie Thesaurus

Categories are paired based how many words they contain are antonyms of the words in other categories with an edge display cutoff. Isolate category pairs are drawn in a ring around the main connected component and singletons are staggered in the corners. Each node is colored by its semantic orientation (red for negative, blue for positive) and edges are colored by their weight, from red to blue. Node shape also codes semantic orientation, with triangles positive and circles negative. Size codes the magnitude the semantic orientation, with the largest nodes representing the extremes. Node labels are shown for nodes in isolates and those in the top 20 for betweenness centrality. Made in NodeXL.

Yeast Protein-Protein Interaction Network

Made in NodeXL. Looks like the moon -- pretty but not useful

Concept Single-Display Groupware interface for Incident Response Management

This is a concept drawing for our training system. The prototype didn't have the table, just a projector. Used the Multi-Pointer X Server for handling multiple inputs with standard applications.

I analyzed the network of collaborations between National Cancer Institute research organizations and layed out their reigonal networks geographically. Colors distinguish states.

Picture of Cody Dunne

Email:

cdunne at cs.umd.edu

Address:

Department of Computer Science
Human-Computer Interaction Lab (HCIL)
2117 Hornbake Library, S. wing
University of Maryland
College Park, MD 20742