Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor BioDepVis with Qt #16

Closed
bentsherman opened this issue Aug 28, 2017 · 2 comments
Closed

Refactor BioDepVis with Qt #16

bentsherman opened this issue Aug 28, 2017 · 2 comments

Comments

@bentsherman
Copy link
Member

bentsherman commented Aug 28, 2017

We are currently working to refactor BioDepVis with Qt, because Qt has a robust set of libraries to handle several of the tasks in BioDepVis. I will use this issue thread to organize our work as best I can.

Software components of BioDepVis

Here are some of the major source files:

  • alignment.cpp: load alignment from file, update alignment edges
  • cuda_code.cu: CUDA kernels for force-directed layout
  • events.cpp: mouse / keyboard / GUI event handlers
  • graph.cpp: create graph from files
  • main.cpp: parse command-line arguments, create GUI
  • parse.cpp: parse JSON config file
  • util.cpp: global variables, a lot of the OpenGL code

Also, these source files are actually external libraries:

  • Camera.cpp / Matrix.cpp / Utility.cpp / Vector.cpp
  • jsoncpp.cpp
  • lodepng.cpp

And some smaller source files I didn't mention:

  • loader.cpp
  • miscgl.cpp
  • Ont.cpp
  • texture.cpp

Qt Libraries to use

  • QWidget: single-window GUI, keyboard legend, gene ontology searching
  • QOpenGLWidget: 3D rendering of the graphs (part of main window)
  • QJsonDocument: parsing JSON configuration file
@bentsherman
Copy link
Member Author

bentsherman commented Sep 8, 2017

Workflow of BioDep-Vis

main
- parse command-line arguments
- read go-basic.obo [-> readOntFile()]
- create GLUI window
- create graphs, alignments from input.json [-> init() -> parser()]
- initialize Camera, GL functions [-> init()]

readOntFile
- read id, name, def for each term into ontStruct
- insert each term into ontologyDB map

parser
- construct Graph for each graph term [-> Graph()]
- construct Alignment for each alignment term [-> Alignment()]

init
- create Camera
- bunch of gl code

Graph
- load graph file [-> readGraph()]
- load cluster file [-> clusterization()]
- load ontology file [-> readOntology()]

Alignment
- load alignment file [-> readFile()]

@bentsherman
Copy link
Member Author

BioDepVis has been refactored with Qt, with the exception of the ROI feature. For now we will keep the old code, and we may implement this feature if it is deemed useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant