Tuesday, 22 November 2016

XTK and mutant mice embryos

I recently came across this tweet from the Medical Research Council:
This tool is awesome. Not only do they have 2D and 3D viewers embedded in the web browser for micro-CT volumes of healthy and mutant mice embryos, but they also provide 48 datasets available for viewing AND for download, either at low or high resolution.


Screenshot of 3D viewer.

I recognise XTK when I see it (then I check the HTML source just to be sure): medical imaging is a small world, and it happens that this project has been developed by the Boston Children's Hospital, which has one of the few groups working with high-resolution imaging of the fetal brain through MRI, a topic at the heart of my PhD. The XTK website has quite a few demos, but this is the first time I see a real life application. An MSc project at Imperial College, carried out by David Basalla two years ago, consisted in building an image viewer with XTK, but it stayed yet another demo.

There are quite a few projects out there that leverage WebGL, Javascript and the HTML5 Canvas to embed 3D viewers in the browser. Those with a focus on medical imaging, like XTK and Papaya, have the advantage of providing readers for DICOM and NIfTI formats. three.js is a well-known more generic WebGL framework.

Kitware, the company behind ITK and VTK, is coming to the browser too, with ParaviewWeb and vtk.js. Mayavi, a Python library built on top of VTK, uses x3d to embed 3D visualisations in the Jupyter notebook, as I showed in my previous blog post.

The old school solution of Java applets, for instance based on ImageJ, is an alternative to Javascript in order to have an embedded image viewer. For instance it is used in MRIdb, the web interface to the MRI research database of Guy's and St Thomas' Hospital.

Friday, 4 November 2016

London 28th PyData Meetup (01/11/2016)

I gave a talk at the last PyData meetup in London on Python for medical imaging. It was a great opportunity to showcase some of the projects I have been working on at Klarismo since I joined the company a year ago.

Atlas segmentation

Some of our segmentations are performed using an atlas segmentation framework. This approach relies on a set of already annotated scans, called atlases. In order to segment a new scan, we align and warp the annotated scans to the new scan and then transfer the warped annotations. By combining the warped annotations from multiple scans, we can obtain a reliable estimate for how the new scan should be annotated.

 


Visualising changes across scans

I worked on aligning whole body scans acquired at different time points in order to highlight change. The thing to keep in mind is that if someone is scanned twice, his posture and breathing pattern will differ between the two scans. These differences need to be corrected in order to only visualise changes in the anatomy.


This animation is a progressive warping of two MRI scans of a subject who lost weight between the scans.