Skip to content

Architecture

Robert Krueger edited this page Aug 10, 2020 · 32 revisions

Cycif_Viewer is an openseadragon based Cellular Image Viewing and Analysis Tool. It is built with a python Flask backend and a Node.js javascript frontend.

Components

The server delivers the imported image and feature data on demand to the client. A restful interface offers different endpoints to the client ranging from data access to different computational tasks that are implemented in the respective extension.

Image Handling

The viewer uses pyramid formats such as deepzoom to split the images into multiple tiles. Hence, instead of loading an image as a whole in the browser, the client just needs to query the tiles for the current viewport and zoom level.

To allow flexible on-demand rendering, every image channel is stored as such an image pyramid. Considering the user has activated two channels, tiles from these channels (matching the viewport and zoom level) are requested, intensity values are mapped to color,combined, and rendered.

Directory Structure

├── README.md
├── app.py
├── requirements.yml
├── server
├── static
│   └── data
│  	├── external
│       └─── frontend
│  		├── src
│ 		├── css
│ 		└── js
│ 		     ├── main.js
│ 		     ├── services
│ 		     ├── vendor.js
│ 		     └── views
│    
└── templates
  • server contains all python backend code
  • frontend contains all Node.js frontend code, which is specifically in /src/js/views and /src/js/services
  • templates contains the Jinja templates