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

Front end quick dive #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 11 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
# ChRIS

## Abstract

This page presents a quick overview to ChRIS, followed by some links to more resources, papers, and talks.

## Overview

ChRIS (**Ch**RIS **R**esearch **I**ntegration **S**ervice) is a novel and opensource distributed software platform designed to manage and coordinate computation and data on a multitude of computing environments. Originally developed for medical image analysis, ChRIS has evolved into a general-purpose compute/data platform making it easy to deploy analysis on a heterogenous mix of compute environments -- from laptops to loosely connected groups of workstations, to high performance compute clusters, to public clouds.

ChRIS is designed to manage the execution and data needs of a specific class of computational applications often used in research (and in particular medical image research) settings. **These are applications that require no user interaction once started** and typically initialize from a setup-data-state, have runtime specifications typically passed in command line arguments, and collect all output in files.
ChRIS is designed to manage the execution and data needs of a specific class of computational applications often used in research (and in particular medical image research) settings. **These are applications that require no user interaction once started** and typically initialize from a setup-data-state, have runtime specifications typically passed in command line arguments, and collect all output in files.

While ChRIS itself has a web-based user interface, the applications that perform the computations, do not have graphical user interfaces but are command line, containerized, Linux-based applications. Since these apps run "in the woodwork" so to speak, they are called _plugins_ in ChRIS parlance, since they plug-into the ChRIS backend and are accessible from a suitable frontend.

ChRIS comprises a collection of REST-based web services, backend web apps, and various client-facing web front ends. The system is designed to make it as *easy* as possible for a developer to get his/her app running *anywhere* (by which is meant *any computing environment* that can run docker containers). By conforming to a reasonable command-line specification or contract for ChRIS applications, ChRIS makes it easy to dockerize and run the research software, collect results, visualize data, and share/collaborate.

## Need

Computational research in scientific (as opposed to industry) medical-related fields faces many obstacles, including (but
not limited to):
Computational research in scientific (as opposed to industry) medical-related fields faces many obstacles, including (but not limited to):

* data sharing
* data protection
Expand Down Expand Up @@ -51,27 +52,31 @@ A companion client app called ``pfurl`` can be used to communicate with all of t

There are many possible front-ends to ChRIS. In fact, any program that consumes the ChRIS REST API can construct a tailor made experience.

An official front end is currently in active development, see the talk links for more info.
An [official front end](https://github.com/FNNDSC/chris) is currently in active development. It is built off the latest (yet stable) technology the web platform has to offer (Web Components, WebGL, Service Workers, etc.). It is powered by [Polymer Library](https://www.polymer-project.org/) from Google that helps "create custom reusable HTML elements, and use them to build performant, maintainable apps".

Visualization of medical formatted image data is provided by two projects that have been developed in-house

* xtk
* ami
* [XTK](https://github.com/xtk/X): First generation of the WebGL Javascript Toolkit that have been developped at FNNDSC. It was built from scratch and proved that it was possible to provide useful 3D Web-based experiences for Medical Imaging. It is still being used today.
* [ami](https://github.com/FNNDSC/ami): XTK's successor. It leverages existing WebGL library [three.js](https://threejs.org/) to let developers focus on medical imaging needs and offers greater extensibility than XTK. It is in active development and already used in many real world projects.

## History

ChRIS has had several historical epochs:

### ``bash`` shell scripts

The earliest versions of what would coalesce into ChRIS were collections of ``bash`` shell scripts that coordinated various types of analysis programs. This was prior to 2009/2010.

### ChRIS v1

The first version of what would become ChRIS was created in 2010 and was built using **Wt** (web toolkit) from Emweb. It was geared to replacing the interface to the previous ``bash`` scripted system and interfaced with an in-house HPC for analysis.

### ChRIS v2

The second version of ChRIS, released around 2013, replaced **Wt** with a cleaner, twitter-inspired interface built around the concept of _feeds_ and _plugins_. This version of ChRIS interfaced primarily with HPC clusters. It is still in production use today.

### ChRIS v3

The current development version of ChRIS features a complete redesign and shift to using REST-based services for distributed computing, and dockerized containers for data processing. In some contexts, this version of ChRIS is also called _CHIPS_.

## Recent Papers
Expand All @@ -88,7 +93,6 @@ Some papers and conference proceedings on ChRIS -- please note in some papers th

* Nicolas Rannou, Jorge Luis Bernal-Rusiel, Daniel Haehn, Patricia Ellen Grant, Rudolph Pienaar, "[Medical imaging in the browser with the A* Medical Imaging (AMI) toolkit.](https://github.com/FNNDSC/CHRIS_docs/blob/master/papers/esmrmb2017.7403b23.NORMAL.pdf)", European Society for Magnetic Resonance in Medicine and Biology 2017.


## Recent Talks

Some recent talks on ChRIS (please note there is much recycling on content below! I've added a quick note to the time length as a partial guide):
Expand All @@ -100,4 +104,3 @@ Some recent talks on ChRIS (please note there is much recycling on content below
## Programming Links

Links to ChRIS components: