Skip to content
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

[TO][No.10]Support for user customization of plots displayed on the website #351

Open
8 tasks
itutu-tienday opened this issue Dec 16, 2024 · 2 comments
Open
8 tasks
Assignees

Comments

@itutu-tienday
Copy link
Collaborator

itutu-tienday commented Dec 16, 2024

Requirement

Plot images and statistical data posted on the optinist-for-server website, To provide documentation of the customization procedure and adjustments to the system to allow users (non-IT engineers and data researchers) to easily customize the above posted data.

  • Supplemental
    • GUI-based customization of displayed data is out of scope.
      • Since the user analysis algorithm is implemented in python code, the customization of the display data may be done by editing the python code as well.
      • However, the customization method should be as user-friendly as possible.

Current Specifications

Current Website display specifications

Experimental View

Plot images (right side from pixel image)

image

  • Header column
    • API
      • GET /public/experiments
        • header.graph_titles
    • Definition Location
      • studio.app.optinist.routers.expdb.EXPERIMENT_GRAPHS
  • Plot URL
    • API response
      • GET /public/experiments
        • items.graph_urls
    • Definition Location
      • studio.app.optinist.routers.expdb.get_experiment_urls

Cell View

Plot Images (right side from Cell Mask)

image

  • Header columns
    • API response
      • GET /public/cells
        • header.graph_titles
    • Definition Location
      • studio.app.optinist.routers.expdb.CELL_GRAPHS
  • Plot URL
    • API Response
      • GET /public/cells
        • items.graph_urls
    • Definition Location
      • studio.app.optinist.routers.expdb.expdbcell_transformer
Statistics (right side from Plot Images)

image

  • API Response
    • GET /public/cells
      • items.statistics
  • Definition Location
    • studio.app.optinist.routers.expdb.get_cell_urls

Specifications for generating various data

Flow of data generation

The data creation process consists of the following batch processes.

  • Flow of data generation
    1. The data to be processed is input into the specified directory (env:EXPDB_DIR).
    2. The following BATCH program detects data input.
      python run_expdb_batch.py -o 1
      
    3. Each analysis result data is generated.

Plot Images generation location

  • studio.app.optinist.core.expdb.batch_runner.__process_dataset_registration
    expdb_batch.generate_plots(stat_data=stat_data)
    expdb_batch.generate_cellmasks()
    expdb_batch.generate_pixelmaps()
    
    • Check to see if there are any other leaks

Cells Statistics generation location

  • studio.app.optinist.core.expdb.crud_cells.bulk_insert_cells
    bulk_insert_cells(db, exp.id, stat_data)
    

Tasks

Code modification

    1. Configuration part
    • Put each constant that can be edited by users into an external file (yaml)
    1. Code implementation part
    • 1. Simplify the method of adding output destinations for plot images
    • 2. Simplify the method of adding output destinations for statistics
    • *If there are any improvement proposals to make it easier for users (non-IT engineers) to edit, apply them
    • *Cutting out code that may be edited by users into dedicated modules, etc.

Documentation

  • To the Experiments/Cells View
    • Procedure for updating the header information of the view
    • Procedure for adding an output destination for plot images
    • Procedure for adding an output destination for statistics
@itutu-tienday itutu-tienday transferred this issue from arayabrain/barebone-studio Dec 17, 2024
@itutu-tienday
Copy link
Collaborator Author

itutu-tienday commented Jan 9, 2025

Scope of request to developer

  • Request for 1. of ”Code modification".
  • For "Code implementation part" of “Code modification”, please make a proposal once.
    • Request implementation depending on the result of the proposal.
  • For “Documentation”, we would like to discuss the scope of response based on the proposal.

@itutu-tienday itutu-tienday changed the title [TO][No.10]Support for user customization of images displayed on the website [TO][No.10]Support for user customization of plots displayed on the website Jan 9, 2025
@tuanna26
Copy link

Implementation plan for your requirements:

  • Migrate CELL_GRAPHS and EXPERIMENT_GRAPHS into YAML. Update the backend code to read configuration settings directly from the YAML
  • Return the configuration via API, enabling the frontend to dynamically adapt the display based on the YAML settings
  • Users can modify the YAML file by adding, updating, or removing entries or simply comment/uncomment sections to customize which columns or data points are displayed.

Some suggestions to increase user experience:

  • Implement a Python or Bash script
  • Develop an API and a UI for authorized users

Above proposals remove the need for manual file edits and provide a more seamless and intuitive experience. The configuration can be stored in YAML file or database.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants