In our meeting on Monday, we decided to start using the graphspace_interface (which basically builds up on a networkx object) rather than building raw nested dictionaries to store the graph/GPML file.
Hence I worked on porting the code of https://github.com/Murali-group/GraphSpace/pull/162 to work with the networkx object. As a result the code is much cleaner and legible 🙂 This was pretty easy, but got stuck in debugging at various points
This week we will work on completing the GPML support with all the documentation update.
Now we have a PR in for review that extends the functionality of GraphSpace with adding support for GPML file format. https://github.com/Murali-group/GraphSpace/pull/162
Thanks to Ted for an initial review of the PR.
Some issues we are still facing:
- Curved edges; it is possible to have curved edges using cytoscape JS but they haven’t be used in GraphSpace yet and are not exposed for edges. We need to further look into this.
- Right now, the starting and ending points of edges are independent nodes (edge end nodes are invisible right now). So if you try to move a node it will move independently without affecting the edge it should have been connected to. We face this issue because the edges in GPML format only have their coordinates position not the source and target nodes. A solution could be look radially outwards from the end points of edges to find the nearest node and bind that edge end point to it.
- Third issue that we are facing, albeit minor, is the rotation of shapes which is not possible in cytoscape JS
Everything else looks good 🙂
Mid terms already here. Summer going really fast. Hoping to get this PR completed by then. 🙂
Now we have something that resembles the GPML file on wiki pathways.
The pathway as shown on wiki pathways.
Right now on GraphSpace
There are still a few issues that need to be dealt with, like with the representation of interaction, example: we can’t have curved edges on GraphSpace, to deal with it right now we have broke it into two different edges, as we have three node points available in the GPML file to draw the interaction.
The GPML functionality will be further improved in coming week 🙂
Layout variable is set.
And it took five lines of code. >.< That’s embarrassing.
For this to make sense, let starts from the start.
On Monday during our hangout we decided to make a crude version of the GPML uploader for GraphSpace. We know that the graph is randomly generated every time we upload it but we can’t afford to do this with GPML so we decided to set a default layout when we are uploading it.
Parsing the GPML was the easy part which was done without any problems. But then came the hiccup, setting the layout variable. I had a rough idea how to proceed on this and so I proceeded to do the straight forward thing. BUT, I couldn’t make it work
Well, then started the frustrating part, combing through the codebase to pin point the problem. I wasted a lot of time on that
Well now we can upload GPML file and GraphSpace will recognize the DataNode fields as nodes of a graph. Currently I have hard coded the layout for testing purpose. I’ll update the code to use the x, y coordinates as specified in the GPML file.
But it works 🙂
There are still a lot of things I need to discuss with my mentors.
We will probably have a better working uploader for GPML next week 🙂