Skip to main content

Reports

Structural Analysis

Stan4j was used to generate a report for the structural analysis of MetaOmGraph. This gives us an overview of how different components in the codebase interact and it also highlights different design violations that exist within the project. The results of the structural analysis of MetaOmGraph can be viewed here

Project Files Team Files Presentation Files

Proj. Proposal (PDF 48kb) 

Proj. Requirements (PDF 8.7mb)  

Kanban Sheet (PDF) 

 

Midterm Presentation (PDF) 

Final Presentation (PDF)


 

Deliverables


  • Added two new filters: the mean filter and that gene expression filter.
  • Added complex AND/OR operators to the advanced filter query.
  • Diff. Expression and Diff. Correlation analysis tools now features the playback system and logging on all charts.
  • Extended logging has been extended to all available filters.
  • Added the violin plot visualisation. *

 

  • The MetaOmGraph4 Launcher update is now available, but with a bug on macOS:
    • The line in MetaOmGraphLauncher.java under the method runProgram()...
    • Process pr = Runtime.getRuntime().exec(cmd, null, file);

      ...attempts to run the built String command 'cmd' inside of a command-line/bash. MacOS is not running this line correctly. We have been able to isolate the bug to this line but haven't found a solution. We attempted different variations of the String 'cmd' with no success. We know that the program is accessing the correct directory as well, saved in the File object 'file'. We believe the issue lies in a security trap in macOS which prevents unauthorized programs from running commands in bash. We were able to run the same command manually in the target directory with little issues. Since we are unfamiliar with macOS, we were unable to find a solution which is able to work on macOS. Since Window's is more flexible with this method, any fix on macOS should work on Windows. Unfortunately, the solution might require separate code for macOS. We have some commented out code in the same method which can be expanded on to detect the OS of the system if it's required.
    •  
  • GitHub CI has been updated to feature target building.
  • MetaOmGraph will not longer crash upon using arrow keys in drop-down boxes.
  • Tables colors has been simplified for readability in all theme configurations.
  • The resources usage meters have been simplified.
  • The help menu now features a single user-manual option instead of multiple options under different names.
  • Welcome header(s) are restylized for greater consistency and readability.
  • The Limma Analysis update is now fully available in MetaOmGraph4.
  • Patched a zero-day vulnerability related to Log4j. (CVE-2021-44228)
  • MetaOmGraph4 has been upgraded from Java 8 to Java 11.

    * Not playbackable yet, correctly logged

 

Any features not explained in detail can be assumed completed according to these requirements:
Proj. Requirements (PDF)

Incomplete Deliverables


Unit Testing: A testing plan has been created and laid out the test suite just needs to be written now

Performance

  1. Java Swing doesn't handle custom 2d graphics very well
  2. Rendering huge datasets will always introduce a certain performance reduction.
  3. Mid-range GPU's cannot handle full plots that exceed approx. 1600x900 cells (equivalent of rendering a 2d image on a 16:9 HD window)
  4. Larger datasets are not feasible for live viewing unless you limit the scope of data (zoom limits) or introduce some abstraction (loss of clarity with the data) which is not ideal

Heatmap Enhancements

Partially Complete

  1. Ability to zoom in/out
  2. Performance upgrade
  3. Updated image saving

Incomplete/Removed Temporarily

  1. Filter range
  2. Color palate

Notable Bugs

  1. Labels near corners of graph interact
  2. Labels near bottom of graph go off screen
  3. Dependency has right click menu which has icons that don't follow MetaOmGraph's theme
  4. Launcher works on Windows but an issue is preventing the jar from being launched on macOS, more troubleshooting required to understand why
  5. Launcher is currently using java 11+, will need to be updated to allow for older versions