Skip to main content

Project Synopsis





MetaOmGraph: Metabolic Network Exchange



MetaOmGraph is a tool for plotting and analyzing large sets of data while using as little memory as possible. It was designed with biological experiment data in mind. Some uses for MetaOmGraph include:

  • Visualizing gene expression patterns
  • Finding functional groups of genes
  • Determining which genes have expression patterns most/least correlated to a gene of interest.



Urminder Singh, Manhoi Hur, Karin Dorman, Eve Syrkin Wurtele, MetaOmGraph: a workbench for interactive exploratory data analysis of large expression datasets, Nucleic Acids Research.


MOG Launcher Demo
MOG Launcher Demo
Demo 2
Demo 2

Project Overview

The project aims to develop novel features for interactive analysis of big data using the MetaOmGraph software.

Main goals:

  • Java Upgrade
  • Limma Analysis
  • Filter Improvements
  • Logging and Playback
  • Quality of Life Improvements
  • Performance Improvements
  • Increasing Test Coverage


Technologies Used


  • Java 11
  • Maven Framework
  • Stan4j; Log4j
  • Javascript
  • Swing
  • Renjin (R in JVM)

Project Management:

  • Notion
  • When2Meet
  • GitLab Issues
  • Discord
  • Webex
  • Google Sheets/Docs/Drive


Development Practices

  • Agile workflow
  • Assigning time estimates to tasks
  • Tracking known issues from discovery to resolution
  • Pairing and Mobbing Sessions
  • Cross-Platform Testing


Development Challenges


  1. Difficult to reach client for the first few weeks
  2. Confusing project goals
    1. Web or desktop?
    2. Unclear specifications


  • Scheduled weekly meetings early in the semester
  • Meet frequently to discuss thoughts with client, professor, and team

Other Slowdowns:

  1. Large existing codebase
  2. Technical debt
  3. Existing technology

How we handled them:

  • Stan4j/Code Coverage Tools
  • Learning how to use their technology


  • Started appearing as we used MOG more
  • Found in our code, and theirs
  • Troubleshooting was sometimes difficult

How we handled them:

  • Working with our client who knew the code better
  • Debugging in IntelliJ

Project Progress