Coder Social home page Coder Social logo

cytoscape.js-cosep's People

Contributors

alihanokka avatar hasanbalci avatar ugurdogrusoz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

cytoscape.js-cosep's Issues

Demo improvements

  • 1. One can conveniently add port constraints but cannot delete existing ones. Can we add support for that?
  • 2. Are nodes assumed to be allowed to rotate by default? In any case, I think we should provide a way for node rotations to be specified through the user interface.
  • 3. It is nice to be able to export and import back as .json file but the output is not human readable since there is no line break. Can we add line breaks to make them more readable? Let's also rename these buttons as "Import constraint from file" and "Export constraint to file".
  • 4. Add a new button for importing sample constraints (a set that can be used for testing)
  • 5. Let's put a legend at the end of the Port Info tab to define what each arrow head means.
  • 6. How about using color on arrows to separate sources and targets of edges? So if source (target) of an edge is side constrained for instance we use a fixed color for the source (target) arrow head. I am suggesting to color arrow heads independent from their edge line colors.
  • 7. Duration not updated for regular CoSE layout

Invalid array length

Hello,

I was trying to use cosep Layout in a working Cytoscape.js solution (working with ELK, CoSe,...).
But I'm getting the following error:

layout-base.js:3737 Uncaught RangeError: Invalid array length
    at CoSEPLayout.FDLayout.calcGrid (layout-base.js:3737)
    at CoSEPLayout.FDLayout.updateGrid (layout-base.js:3777)
    at CoSEPLayout.FDLayout.calcRepulsionForces (layout-base.js:3493)
    at CoSEPLayout.CoSELayout.tick (cose-base.js:1552)
    at CoSEPLayout.CoSELayout.runSpringEmbedder (cose-base.js:1589)
    at CoSEPLayout.CoSELayout.classicLayout (cose-base.js:1468)
    at CoSEPLayout.CoSELayout.layout (cose-base.js:1414)
    at CoSEPLayout.Layout.runLayout (layout-base.js:2718)
    at a.prerun (cytoscape-cosep.js:1863)
    at a.run (cytoscape-cosep.js:2342)

The value of sizeX and sizeY is both -42949672. I've added a check (lesser 0 than 0) but then an error occurs in another place.

What could lead to such an error? Any hints where I can continue to analye what's going wrong?

Best regards!

Absolute port constraints not working correctly

When there are two or more edges with absolute port constraints in all terminal points between a node pair, only one edge seems to satisfy the constraints after doing a layout.

This problem can be replicated using,
graphandconstraintsForReplicaGraph.zip

The steps to replicate:

  1. Load replica40to40.graphml on demo.
  2. Import the constraint file constraintsForReplicaGraph.json
  3. Do Layout with rotations off.

After the layout, i.e, e2 isn't drawn with respect to its constraint and when node 4 is dragged, e2s terminal points change location when they shouldn't.

Separate rotation and swap options

Currently, a single option controls whether or not nodes can be rotated or swapped during layout. However, one might allow rotations but not swaps. Let's separate these as two options.

During animation not working correctly

When the layout is applied with the animation option 'true' (that is, during layout), it doesn't generate correct results. For example, a few nodes are positioned far from the rest of the graph sometimes.

Evaluation scripts

Prepare a README for explaining how to run the evaluation scripts (for measuring performance of CoSEP) and commit all related code, documentation etc. to this repository (a separate branch?)

Nodes not rotate around their centers

During the rotation operation, width and height values of a node are swapped here. However, since cose uses left-top point of a node as the node position, only swapping these values doesn't rotate the node around its center. After swapping these values, node position should be set to keep its previous center.

To do before paper submission

  • Review the README

  • Demo improvements:

    • "CoSE Bilkent Layout" -> "CoSE Layout"
    • Consistently capitalize text in buttons, etc. ("Import Constraints from File" instead of "Import constraints from file")
    • Add some help about how one can interactively add constraints to our demo. This can go as text ("Click on an edge and follow instructions") under the "Add Random Constraints to Graph" button?
    • "Import constraints from file" will not fit on a single line on a 15inch laptop, please widen the button slightly so that it does. Screen Shot 2020-08-09 at 22 11 38
  • Merge unstable branch to master

Random graph data for testing

We have Rome benchmark graphs which are simple biconnnected planar graphs but don't have any port information. If we can't find any benchmark graph set with port information, let's think about how to add ports to these graphs.

We also need some random compound graphs. We need to add ports to these as well.

Real life data for testing

Currently we do have a bunch of SBGN maps with which we can test our algorithm but it'd be great if we had real life data from some other domain as well. Preferably one where the constraint types are different (on all four sides would be great).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.