#
DIVE - Diffusion models Interactive ViEwer
# Overview
DIVE is an interactive viewer for diffusion models.
To get good interactivity with the app, it is recommended to install it locally on your computer. See the [Git repo](https://git.fmrib.ox.ac.uk/fsl/DIVE) for instructions.
If you don't want to install it locally, you can run the current working version online [here](https://dry-wildwood-41441.herokuapp.com/dive), but note that the interactivity may be slower.
The app allows you to visualise diffusion data predicted by user-defined microstructural models and interactively change the model parameters or data acquisition to visualise the effect that these have on the model predictions.
Check out this demo for an overview of DIVE capabilities:
# Models
DIVE implements a multi-compartment model with a wide selection of available compartments:
- Ball (Tensor with L1=L2=L3)
- Stick (Tensor with L2=L3=0)
- Zeppelin (Tensor with L2=L3)
- Tensor
- Cylinder (restricted diffusion)
- Sphere (restricted diffusion)
- Dot (no diffusion)
In addition to choosing amongst a number of compartment, the user can specify a fibre orientation distribution function (FOD), including crossing fibres and dispersion, which can be applied to any subset of the compartments.
DIVE also includes the following pre-baked models which can be used as a starting point:
- Ball \& Stick [(Behrens 2003)](https://pubmed.ncbi.nlm.nih.gov/14587019)
- NODDI: Neurite Orientation Dispersion and Density Imaging [(Zhang 2012)](https://pubmed.ncbi.nlm.nih.gov/22484410)
- VERDICT: Vascular Extracellular and Restricted Diffusion for Cytometry in Tumours [(Panagiotaki 2015)](https://pubmed.ncbi.nlm.nih.gov/25426656)
- SANDI: Soma And Neurite Density Imaging ([Palombo 2020)](https://pubmed.ncbi.nlm.nih.gov/32289460)
- MMWMD: Minimal Model for White Matter Diffusion [(Sepehrband 2016)](https://pubmed.ncbi.nlm.nih.gov/26748471)
# Panels
The DIVE interface is composed of multiple panels, some of which are hidden by default. The demo video (see link above) gives a visual over-view of what the various panels do. There are three types of panels:
### Model specification panels
These allow the user to specify the different model compartments and orientation distribution function. The compartments can be any number amongst a predefined set (see above).
The signal prediction is generated by summing the predictions of individual compartments. All orientational compartments (e.g., stick, cylinder) are aligned with the z-axis by default.
The Orientation panel allows specification of a fibre orientation distribution (FOD) which is applied to a user-selected subset of the compartments. The FOD can be a combination of any number of crossing fibres with or without dispersion.
### Visualisation panels
There are 4 visualisation panels:
1. Sensitivity to b-value
2. Sensitivity to diffusion time (at fixed b-value)
3. Sensitivity to orientation
4. Sensitivity to parameter changes
Panels 1,2 and 4 show a figure for signal changes as a function of b-value, diffusion time, and model parameters respectively. They also show a figure for changes in commonly used tensor-based parameters (FA and MD). The signal plot by default is the spherical-mean technique (i.e. averaged signal over all 3D orientations), unless this is modified through the control panels (see below).
Visualisation panel 3 show the signal as a function of gradient orientation in two different ways: either as a function of the angle w.r.t. an orientation specified in the control panels (below), or as a 3D glyph.
### Control panels
Finally, there are 4 controls panels:
1. Acquisition:
Specify an acquisition scheme by either selecting amongst pre-defined ones or loading text files. Once a scheme is chosen, click on 'Display scatter' to see the predicted data. Click on 'Save scatter' to save the data into a CSV file.
2. Shells:
Modify the b-value/diffusion time/gradient amplitude/gradient duration. This affects all the signal plots except for those where b-value/diffusion time appear along the x-axis.
3. Noise:
Add noise to the scattered data. This only affects the scattered data following the acquisition scheme defined in panel (1), not the continuous signal predictions.
4. Axis:
Perform operations that affect the x and y axes of the plots. User can choose to apply one of predefined operations to the axes (e.g. to look at log-signal instead of signal), or can modify the reference orientation of the signal v angle plot (see visualisation panel 4)
# History
## The process
DIVE was developed by members of the Connectivity group at WIN, Oxford. It came about through an online (cuz of covid) week-long hackathon/retreat. It was decided to follow an Agile software development process to streamline the development of the software. See [developers page](for_developers) for more information on the process.
## The team
In alphabetical order, the following awesome people were all involved in the `retreatathon` that has generated DIVE:
- Amy Howard
- Daniel Kor
- Hossein Rafipoor
- Jiewon Kang
- Michiel Cottaar
- Nicole Eichert
- Pavan Chaggar
- Saad Jbabdi
- Sean Fitzgibbon
- Ying-Qiu Zheng
With special thanks to Paul McCarthy for his guidance.