-
Notifications
You must be signed in to change notification settings - Fork 6
Architecture
Outdated.
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.
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.
├── 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 allNode.js
frontend code, which is specifically in/src/js/views
and/src/js/services
-
templates
contains theJinja
templates
The viewer uses Zarr to crop from a layer for the respective zoom level, instead of loading an image as a whole in the browser, making it scalable for very large image data.
To allow flexible on-demand rendering, every image channel is stored as individual layered image file.
Considering the user has activated two channels in the front-end, tiles from these channels (matching the viewport and zoom level) are requested, intensity values are mapped to color,combined, and rendered.
The segmentation mask is also stored and delived as tile-pyramid, similar to the image channels. This allows to color all pixels associated with a selected ID. This way, selected cells can be highlighted, or cells can be colored based on classification, clustering, or manual labelling.