Coder Social home page Coder Social logo

phys2 / belki Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 0.0 1.5 MB

Visual exploration of multi-dimensional proteomics data

License: GNU General Public License v3.0

CMake 3.51% C++ 96.10% HTML 0.31% C 0.08%
data-visualization machine-learning multiomics proteomics

belki's People

Contributors

elrubio avatar ypnos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

belki's Issues

Disadvantageous grouping logic in svg exports of visualization plots

Grouping logic in svg exports of visualization plots (and possibly other plots) is disadvantageous in a number of ways:

  • Every single data point resides inside a a group (containing this single object). The styling is applied to the group and not to the object
  • Same for the marker proteins, the graph lines, the text, etc.
  • Countless (many thousands!) empty groups are present in the svg
  • All these one-object-groups reside in one super group

This results in severe performance issues when trying to use Inkscape to modify t-sne plots where several thousand proteins are displayed. Regrouping operations can be impossible even with Inkscape graphic options reduced to a bare minimum (M1 MacBook Pro).
I suggest the following modifications:

  • Style is applied to objects directly
  • Objects of a same type (e.g, circles, plot lines, text) are grouped into one group. This relates well to the logical overlaying (text is in front of circles that are in front of plot lines)
  • Empty groups should be removed from the svg

Handling import of (too) many markers

When trying to import a large number of markers, an error message tells me that belki is "Refusing to load too many (nnnn) markers".

Probably the limitation exists for performance and/or usability reasons. A look into the code reveals a hard limit of 500 markers.

In the first place, it would be convenient if the error message stated the actual limit. Something like "Refusing to load too many (nnnn) markers. Maximum is 500.". This way the user doesn't have to look up this value in the code.

But maybe the limit could be dealt with somewhat differently? I suggest to either

  1. Remove the hard limit but ask the user is it's OK to continue despite potential issues (lag, apparent freezes, etc) if more than LIMIT markers are to be loaded

or

  1. Keep the limit in place, load all markers up to LIMIT and inform the user about all three numbers: the limit, the number of markers present in the file and the number of markers that were not loaded.

or

  1. Combine both and ask the user something like

    Warning

    You are about to load 2369 markers. Loading more than 500 markers may cause serious performance issues and is not recommended."

    [Load first 500 markers] [Load all markers] [Abort]

No dark mode support on macOS

Some obvious problems render the app unusable in dark mode on macOS. See attached file: "Proteins under cursor" window not readable because font changes to white in dark mode. Same problem for icons (ie top left stay black where they should become white). The list probably goes on...

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.