Skip to content

Analysis and visualization (2D) #4

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

Closed
5 tasks done
mguidon opened this issue Jan 23, 2018 · 14 comments
Closed
5 tasks done

Analysis and visualization (2D) #4

mguidon opened this issue Jan 23, 2018 · 14 comments
Assignees
Labels
PO issue Created by Product owners [PLEASE use osparc-issue repo]

Comments

@mguidon
Copy link
Member

mguidon commented Jan 23, 2018

User story

Some results will need visualization with tables and/or 2d plots. As a user I want to be able to visualize such data

Definition of Done

  • There is dedicated panel/view/dashboard in the frontend
  • There is a defined data structure for such results
  • Tables shall be sortable and editable
  • Selecting subsets in the table should dynamically update the plots
  • In addition to a Jupyter like script representation, a standalone 2D xy-viewer is needed

Use case

Clancy case is used as a first goal.

see comments below (at the end) for the updated definition of done.

@mguidon
Copy link
Member Author

mguidon commented Feb 2, 2018

Embed this solution in s4l table viewers
Have a look at CStorage and check if json can be used as backend (StorageUtils.h) check conversion routines

@mguidon mguidon changed the title Analysis and visualization (Python) Analysis and visualization (2D) Feb 28, 2018
@mguidon
Copy link
Member Author

mguidon commented Mar 7, 2018

Add an new algorithm to sim4life that displays 2d data (series data, csv, excel) in a chromium view

@pcrespov
Copy link
Member

pcrespov commented Apr 11, 2018

Canceron Milestone

  • OUR main view is a workbench. A workbench has nodes connected in a graph. These nodes can be associated with services and have the ability to interact with UI resources.
  • workbench example should include:
    • producer node -> computation node -> analysis node
    • Nodes have associated services that will be: modeling service, a computational service and a Jupiter service resp.
    • Audit mode might apply at node or project level to restrict access to data outside the visible connections in the pipeline.
  • interactive resources on a grid panel: 3d views, jupyter page/cell?, ...
  • demo node interaction with resources

@odeimaiz odeimaiz added this to the Canceron milestone Apr 11, 2018
@pcrespov
Copy link
Member

Pipelines and analysis

@sanderegg
Copy link
Member

sanderegg commented Apr 13, 2018

Scenario 1:

  1. User logs in
  2. Workbench opens
  3. User creates modeler node (producer node)
    a. Modeler node connects to Modeler service (IP:port)
    b. Workbench provides a widget that points to modeler service (IP:port)
    c. User loads a model/modify the model until happy in modeler widget
  4. User creates computation node
    a. User creates computation pipeline…
    b. …
  5. User links computation node to modeler node
    a. Workbench tells modeler node to pass its data (GLTF scene) to the computation node (IP:port, common RestAPI for all nodes?) (either directly or through DAT-CORE, other…)
  6. User starts computation node
    a. Workbench tells modeler node to transmit its data to computation node or to DAT-CORE (RestAPI?)
    b. Workbench tells computation node where to find the input data
    c. Workbench starts computation node
    d. Computation node finishes computing and saves its data to DAT-CORE
  7. User creates Jupyter notebook node (analysis node)
    a. Jupyter notebook node connects to Jupyter notebook service (IP:port)
  8. User links Jupyter notebook node to computation node output
    a. Workbench tells Jupyter notebook where to get the data
    b. Workbench provides a widget that points to jupyter notebook (IP:port)
    c. User interacts with notebook in notebook widget
  9. User goes to dashboard view
    a. User drags available 3d views?
    b. User drags available Jupyter cells?

@sanderegg
Copy link
Member

image
image

@drniiken
Copy link
Member

drniiken commented May 2, 2018

  • demo
  • progress
  • 2D view
  • initiate 2D plotter
  • in next sprint
  • GUI work much more possibilities, more relaxed

@pcrespov
Copy link
Member

pcrespov commented May 4, 2018

Caprica Milestone - dev notes

  • Prototype in Jupyter 2D plots from data Clancy model. Start simple, then create widgets.

@sanderegg
Copy link
Member

sanderegg commented May 30, 2018

  • Creation of a python package to access the inputs/outputs to the Jupyter node from the Jupyter notebook
    • Access to inputs on the fly
    • Automatically import/export data from S3 storage
    • Automatically get/set configuration from DB

@sanderegg
Copy link
Member

sanderegg commented Jun 6, 2018

  • autoplay notebook

@sanderegg sanderegg modified the milestones: Caprica, Gemenon Jun 10, 2018
odeimaiz referenced this issue in odeimaiz/osparc-simcore Jun 22, 2018
No more mockup one the comp backend
@sanderegg sanderegg modified the milestones: Gemenon, Leonis Jun 29, 2018
@sanderegg
Copy link
Member

Have a look at this as well:
https://rawgraphs.io/

@pcrespov pcrespov modified the milestones: Leonis, Libra Aug 15, 2018
@pcrespov pcrespov removed this from the Libra milestone Aug 28, 2018
@mguidon mguidon added PO issue Created by Product owners [PLEASE use osparc-issue repo] and removed Area: frontend labels Jan 10, 2019
@drniiken
Copy link
Member

Nik & Esra tell the Team:

  • contine with this approach
  • go with plotly
  • combination of it
  • play around with the current implementation ...

@drniiken
Copy link
Member

The proposed solution looks very attractive.
However, the following additional functionality would be important and we need to know, if it can be provided with the current solution

  • generation of multiple plots within one service
  • generation of combined plots (possibly, also with input derived from multiple inputs
  • simplification of insertion of column titles (what went wrong in the NIH demo)
  • can we make it easier to create standard 2D plots (maybe something like a template (while keeping the power of the current solution for people that want more control and flexibility)

We do feel that this solution is not mutually exclusive with a plotly based solution. Both can be attractive and can coexist. If we go for a plotly based solution in addition, we might want to make that one more flexible with also pipelining kind of functionality (as in the 3D viewing with paraview-web).

@odeimaiz odeimaiz mentioned this issue Feb 26, 2019
3 tasks
This was referenced Mar 5, 2019
pcrespov pushed a commit that referenced this issue Mar 12, 2019
- Creates a container-node-widget able to display the image outputs of its inner services in a grid-dashboard layout.
- When double-clicking a cell, the edition mode of its graph will be opened.
- Improves the raw-graphs service:
  - More input ports (5).
  - One output port. Every time the graph in the frontend is modified it is saved and also pushed to S3 when sync function (input-retriever) is called.
- closes #630
- Added a diagram that shows the frontend UI workflow
- child of #4
@esraneufeld
Copy link
Member

esraneufeld commented Mar 14, 2019

i would like to close this case soon, as the current functionality is mostly sufficient for now:
before closing, please create two variant services (only if these two variants can be added cheaply):

  • a simple 2d plot service, that does not provide the users with all these options for plot type, but rather just creates a standardized 2d plot, once the axes have been selected
  • a table viewer service that only contains all the steps up to (and including) the specification of the table column titles, but no option to continue with plot creation

i also created a lower priority follow-up case ( #639 ) about addressing the issue of creating combined 2d plots from different sources.

This was referenced Mar 15, 2019
GitHK added a commit that referenced this issue Apr 26, 2021
* moved service-sidecar contents

* added task to run unittests

* added unittests bash commands

* added command to run unittests locally

* added entry to build dynamic-sidecar

* coverage and deploy now await for dynamic-sidecar

* renamed service-sidecar to dynamic-sidecar

* renaming missing folder

* renaming missing fodler part 2

* updating makefile

* updating tox

* removing tox

* added ci codestyle check before tests run

* removed unsued targets

* fixed error message

* added missing test

* added codeoowner entry

* moved mocked fucntions to the same module

* renamed module

* updating log warning messages for mocked calls

* added some help

* clrifying command usage

* using verbatim arguments

* fixed typo

* renived tests

* renaming ServiceSidecarSettings to DynamicSidecarSettings

* updated name in changelog

* fixed ptsv entrypoint

* fixed healt endpoint to fail when status is not healthy

* fixed route and test

* mappign docs on the same route as other services

* added api prefix for interested routes

* codestyle

* container api routes refactored

* renamed storage to shared_store

* refacted shared_store to use Pydantic models

* missed a rename

* added makefile entry to generate openapi spec

* adding correct mypy file

* mypy suggestions

* added openapi.json for the service

* codestyle also updates openapi.json

* added common scripts to enforce codestyles in development and CI

* imported statuses from fastapi/starlette definitions

* updated docstring

* fixed imports, now importing from starlette

* moved mark.asyncio

* moved act into bash script

* added act entry to common.Makefile

* added entry for development of dunamic-sidecar

* added test to check the spec has was updated

* added missing fixture

* updated readme

* removed unused APIs and renamed existing

* added docker-compose config validation

* moved settings and shared state to dependencies

* minor improvments

* updated requirements

* added missing service to SERVICES_LIST

* Some suggestions (#3) from sanderegg

* naming

* consistency

* shellcheck

* proposed refactoring on dynamic sidecar (#4)

* removes responses and raise exceptions for errors

* Minor typo

* Should include standard entrypoint

* refactor health and added dependencies

* minor

* fixes

* fixed codestyle

* fixed typos

* fixed compose API entrypoints and tests

* refactored api structure and endpoints

* extended utils

* adapted new tests

* updated API spec

* moving routes under the same module

* moved tests and updated openapi.json

* updated script entryoint name

* renamed endpoint

* refactor

* refactor error raising and staus code for resource not found

* regenerated openapi.json spec

* codestyle :\

* merged /containers and /containers:inspect

* wrong default value

* test clenup

* updated openapi.json

* clarify comment

* removed unused API

* removed command timeout when posting to createing services via docker-compose

* removing unecessary timeouts

* forgot to implement it

* after the request is accepted the list of container names is returned

* removed flag which is no longer used

* fixed tests

* moved ApplicationHealth and codestyle fixes

* added test to check it can run twice the same compos spec with different project-name

* fixed codestyle

* setting default and documentation to argument

* updated oepnapi.json

* fixed test to properly work based on workspace

* refactoring application models structure

* rending applicaiton strucutre similar to other fastapi services

* replacing with response.json()

* applied codestyle

* comitting new updated dependencies

* refactoring error codes

* clened up exception throwing

* restored error emssage

Co-authored-by: Andrei Neagu <[email protected]>
Co-authored-by: Sylvain <[email protected]>
Co-authored-by: Pedro Crespo-Valero <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PO issue Created by Product owners [PLEASE use osparc-issue repo]
Projects
None yet
Development

No branches or pull requests

6 participants