RationAI / xopat

Histopatholical visualization toolkit based on OpenSeaDragon.
MIT License
17 stars 4 forks source link

XOpat - Explainable Open Pathology Analysis Tool

A web based, NO-API oriented WSI Viewer with enhanced rendering of high resolution images overlaid, fully modular and customizable.

The XOpat Viewer

Why xOpat?

Configure the viewer to your needs, not vice versa! Here, you can take a half-ready solution and bring it to something that covers all your needs. With the focus on flexibility, extensibility and modularity, the xOpat viewer tries to address issues in digital pathology related to AI adoption.

Behaves as an enhanced OpenSeadragon*, a popular (feature-less) flexible viewer.

Powerful set of modules and plugins: Advanced extensibility & Existing features

Servers

To parse existing modules, plugins, read POST data the viewer uses a server. Don't worry, we try to cover it all!

Having Issues?

Please do not hesitate to reach us. We have yet to work in documentation & deployment simplification.

Setup

First, install development dependencies. You need node and npm. Then just run npm install.

Although very versatile, setting up the viewer correctly requires xOpat configuration & web development knowledge. To configure the viewer for deployment, run grunt env and provide env/env.json file with the desired configuration. For more, see env/README.md.

PHP server has available docker image. Node server can be run e.g. locally via npm run node. However, to really open the viewer with a meaningful data and visualization, you need to provide the data, configure a WSI server and open the viewer session. To simplify all of this, we work on example deployment docker compose we will soon publish. To test the session manually, you can use viewer.url/dev_setup.

Environment, Build & Test

xOpat itself is not based on any framework, it is pure JavaScript application that integrates various libraries. That is true for the running deployed application. However, testing and documentation uses npm, grunt and cypress.

The build and test framework is still in development - for now, the viewer can be used AS-IS just add the OSD library and run from a PHP server.

To minify (build) the viewer, you can run

grunt all

and for plugins only

grunt plugins

or modules only

grunt modules

This will create index.min.js files in respective directories. The viewer core recognizes existence of these files and loads them instead of all the source scripts.

For more details on components, see README files in respective directories. For details on integration, see INTEGRATION.md. For documentation, you can run npm install && grunt docs && grunt connect watch and open localhost:9000/