Giter Club home page Giter Club logo

boolesim's People

Contributors

matthiasbock avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

boolesim's Issues

Rules are not loaded into editor

How to reproduce the problem:

  • load BooleSim
  • click Rules tab
  • click New button, tab switches to Network
  • click Rules tab again, rules are not there

Timeseries label width should auto-adjust

Long labels are written over by the plot.

That's one of our "demo" networks, therefore it should display nicely, but:
labels

Maybe two SVGs, one for labels - one for plot ? (careful -> export as one)
or some auto-adjust function (isn't there one already? ...)

Rule editing can conflict with time series labels

When nodes are added, renamed, moved or deleted from within the rule editor, the corresponding time series state boxes from previous simulations remain in place, even if they do not necessarily belong to the nodes labeled on the left. Even superfluous boxes remain without any label.

This way e.g. after editing the cell cycle demo network, such things can happen:

boxproblem

Help instead of empty canvas

I herby forward a wish from a co-worker of ours: It would be nice to have a little introductory text instead of the empty white canvas on loading, as he didn't notice that the site has already finished loading - was expecting something to pop up in the big white space ;-)

Should we do that? What should we write?

Settings dialog

We now have two distinct ways of getting to a network, create and import. As the simulator settings apply to both of them, I suggest we move/copy them from the import dialog to a separate one. Agree?

This settings dialog could also feature buttons for "set all nodes to true" and so on.

Errors in tool after certain time

This issue comprises several sub issues mentioned by the reviewer:

  1. When an import file cannot be imported, the software should always give an error message. Best would be to include the reason for the failure and if not known, just say that it couldn't import the file format and "please check the syntax again" or something like that
  2. Upon import, the tool sometimes just switches to time course or rules editor when it should stay in the network view...why is that? How can this be fixed?
  3. Why does the software start to behave erratically after different imports? How can this be fixed?

Incorrect rule auto-adding

For example

a = b

leads to automatic addition of

b = b

and a self-loop arrow in the network, which is incorrect. The state of b should be undefined. Such rules should not be added automatically.

set inital state manually

Should be possible to set initial state by hand, either through handing the complete state to the tool or by stopping the simulation completely, then changing the nodes' state through clicking on them and then relaunching the simulation from that new state.

Mobile version

It would be cool to render a more compact interface on small screens (smartphones). Does of course depend on the smartphone's browser's html5/js capabilities...

Rule - Network view - translation

If "!" in front of parentheses in the imported file or in the rules tab, it is not translated as an inhibition in the network view

ginml import bug

When importing an example .ginml file (Boolean Cell Cycle model) (see: http://gin.univ-mrs.fr/GINsim/model_repository/CELL%20CYCLE/Cell_cycle/boolean_cell_cycle.ginml), the network is at first imported in the correct way. However, when clicking on the "Rules" tab, the generated rules are incorrect, including true and false that shouldn't be there. When afterwards clicking on the network view again, the model has changed to the incorrect version where "true" and "false" are interpreted as separate nodes. The same apparently holds for boolnet and jSBGN import as stated by the reviewer. This definitely needs to be corrected!!!
Hand in hand with this bug, goes the bug mentioned by the reviewer as "round trip" that upon importing certain formats, the rules are changed export in booleannet or boolnet format will be incorrect as well.

Object oriented design

The current design of the code is messy, make it more object oriented, taking cues from biographer-ui.

@matthiasbock, I would like to know the reasons for abandoning the simulator object. I agree it was quite big and needed to be broken down into parts, but this should be done gracefully and not the way it is now.

Alt+wheel and moving network don't work if mouse outside SVG canvas

Alt+mouse wheel only zooms the network graph, if the mouse cursor is inside the network graph, which does not cover the whole network tab area especially when the network is zoomed small. This should be changed. Regardless of whether the cursor is inside the network or on another spot of the network tab canvas, Alt+mouse wheel should zoom the network graph.

Optimize menu for small screens

At 100% zoom the menu width is too large for my notebook screen (1024px).

screenshot - 07102013 - 10 28 01 am

Not really an urgent problem, but if we have some spare time we could design this case more nicely, e.g. inserting a break to a second menu line between "Simulate/Pause" button and "Network" tab and align this second menu line on the left with the "Create" button.

Importing from GINML adds wrong nodes

Import from GINML doesn't work properly. Additional nodes with name "FALSE" are added in JavaScript. They do not show up in the network.
Why are they there ?

These nodes are getting exported to Python and R aswell, which breaks the model.

Improvement suggestions from users

  • alphabetically sort nodes in timeseries tab
  • users expected the tabs on the left side - tabs left, buttons right ?
  • "Save Rules" button upon rule textarea changes
  • basic Spellchecker
  • warn, when adding several rules per node
  • help area beside textarea, instead of below
  • label for iteration counter
  • remove reset button in main menu, as it affects only timeseries (redundant)
  • IE border Logo: None
  • time axis arrow in timeseries tab
  • don't switch to network tab, when clicking simulate in timeseries tab
  • maybe: ability to rename nodes in network tab
  • Find/Replace function to make textarea editing more convenient
  • settings dialog
  • rotate timeseries iteration number labels for better reading: vertical text
  • Legend in network tab

Speed up site loading

During GSoC, I had minimized the number of files that need to be fetched by the browser to speed up the site loading. I think all the js files need to be squashed into 1 or 2 files. Secondly to speed up the js code on the site, all the libraries must be in minified form. This ensures that the browser does not waste time in interpreting line endings and spaces and long variable/function names.

Maybe we could do what biographer ui does, do the development in a number of files and then combine them all to a single file.

Code quality

We should all follow the same code quality standards. I suggest that all tabs be in the form of 2 spaces. This is adopted by many open source projects. Every block of code should be exactly 1 tab or 2 spaces right of it's parent block. Currently the tabs and spaces are all mixed and it will take time to switch to this standard.

Firefox: tab clicking raises false re-import messages

Regardless of whether the network was changed or not, clicking the Rules or Time series tab in Firefox raises a "Network will now be re-imported" message, a switch back to the Network tab and re-import. The problem does not occur with Chromium.

Create button warning

There should be a warning, whenever the current network view is destroyed:

  1. Upon clicking "create"
  2. Upon clicking "import"
  3. Upon changing rules in the "Rules" tab and changing back to network view

jSBGN node positions are not re-imported

Exporting a network to jSBGN works; it includes node positions.
Example:

{
    "sbgnlang": "PD",
    "nodes": [{
        "id": "A",
        "visible": true,
        "data": {
            "cssClasses": ["rect"],
            "x": 800.7725423966185,
            "y": 80,
            "width": 60,
            "height": 60,
            "label": "A"
        },
        "sbo": 245
    }, {
        "id": "B",
        "visible": true,
        "data": {
            "cssClasses": ["rect"],
            "x": 200.7923725876608,
            "y": 130.48633059786516,
            "width": 60,
            "height": 60,
            "label": "B"
        },
        "sbo": 245
    }, {
        "id": "C",
        "visible": true,
        "data": {
            "cssClasses": ["rect"],
            "x": 787.4670172830229,
            "y": 267.87945549358847,
            "width": 60,
            "height": 60,
            "label": "C"
        },
        "sbo": 245
    }, {
        "id": "D",
        "visible": true,
        "data": {
            "cssClasses": ["rect"],
            "x": 192,
            "y": 306.6664647782454,
            "width": 60,
            "height": 60,
            "label": "D"
        },
        "sbo": 245
    }],
    "edges": [{
        "id": "B -> A",
        "visible": true,
        "data": {
            "cssClasses": ["line"]
        },
        "source": "B",
        "target": "A",
        "sbo": 20
    }, {
        "id": "C -> B",
        "visible": true,
        "data": {
            "cssClasses": ["line"]
        },
        "source": "C",
        "target": "B",
        "sbo": 11
    }, {
        "id": "D -> C",
        "visible": true,
        "data": {
            "cssClasses": ["line"]
        },
        "source": "D",
        "target": "C",
        "sbo": 11
    }],
    "rules": {
        "A": "!B",
        "B": "C",
        "C": "D"
    }
}

However it seems, on import the node coordinates embedded in jSBGN are not used to position the nodes accordingly on the canvas. The positioning appears random instead. They should be though, because the Export dialog says "Export graph and model", which somehow implies that the next time the user imports his or her network the nodes will be where they were placed.

Side note: jSBGN format is apparently currently not recognized by "infer format".

Node rule hint sometimes doesn't disappear

The tiny blue box which appears when you hover a node, sometimes doesn't disappear. This can lead to numerous hint boxes on screen, which is not so nice. As only one such box can exist at a time, it should have an id and be removed, whenever a new one is displayed.

Transition from "rules" to "time series" tab

It is currently impossible to go directly from the "rules" tab to the "time series" tab. Upon clicking "time series" tab from "rules" tab, it always changes to network view.

Creating nodes via Ctrl+Right or Rule editor does not work at once

After clicking the Create button, it is possible to add/remove nodes via Rule editor or Ctrl+right click. However, this is not instantly possible when the simulator is started.

Should we leave it that way or rather allow for immediate network editing, even before a network is loaded ?

libSBGN.js is not readable

I only just noticed that libSBGN.js is a "compressed" JavaScript file. This does not comply with the idea of open source. We definitely should have a readable version there.

We can think of preparing a packed version with everything in one file ("BooleSim-1.0.html5"), but the source code should be clean.

Rules editor -> network update bug

It sometime happens, that rules entered in the Rules tab, do not lead to an update of the network. Maybe this goes along with errors in the syntax. Maybe we should add some syntax checking or error messages (?)
Unfortunately I am not aware of a "nice" JavaScript formula editor.

I'm trying to find a reproducable procedure to get this problem ...

import model node states doesn't work

Importing a (Boolean) model and setting the node states "as initialized in the model" won't actually set them as in the model. Instead they are all True.

Booleannet Export errors

When exporting the network to booleannet format, the network is deeply changed.
The problem appears to be a missing space when translating "!" into "not" when there are no parentheses (this time the parentheses are translated correctly from BoolNet to booleannet) but for instance !pluri_exo_meth or !pluri_exo_het_chrom becomes notpluri_exo_meth or notpluri_exo_het_chrom thus creating 2 new species. In python Booleannet, you have to introduce a space after the not!

Nodes remain referenced in rules after deletion

Deleting a node from the network view does not remove it's rule or it being referenced in other rules. This way upon rule saving it will be ex- or implicitly recreated. It's a systematic problem.

Is it sufficient to add a note in the delete node dialog, that the node remains in the rules ?

white spacer missing after timeseries cursor reset

When the timeseries cursor jumps back from 40 to 0, manual simulation whitespace is missing. Instead the corresponding column's counter and previous colors stay as they are, what they shouldn't. I guess they are just not overwritten, which they should.

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.