Google Summer of Code: Update So far.


It has been more than 8weeks since I started my GSoC project at Open Science Initiative for Perfusion Imaging (OSIPI) and it has been lot of studying, understanding and some element of reverse engineering :).
My project is basically “Dockerizing a Data Processing Pipeline for Medical Imaging,” mainly Intravoxel Incoherent Motion (IVIM) analysis. IVIM is basically medical imaging of how water and blood move in the body. OSIPI Taskforce 2.4 has a lot of algorithms that can be run on these IVIM images and have been collected from different sources. My project simply aims to allow medical practitioners and researchers to easily run these algorithms by going to a UI interface, uploading their data, picking the algorithm they want to run, click a button, and get their output easily and straightforward.
The initial thoughts were to built this from ground up, the UI, dockerization, backend, orchestrations, networking basically everything. Luckily, we came accross Kaapana. an open source toolkit for state of the art platform provisioning in the field of medical data analysis i.e*.*, a platform that allows you to run your medical algorithms using an interface, just the way we want it.
Kaapana already have everything, from Visualization through Grafana and Prometheus, Containerization through Docker and Kubernetes, Orchestration through Airflow, UI using React, Minio and PACS for medical data storage.
Kaapana platform come with some already made algorithms such segmentation, classifications and all sort. The most important question is now, how do we integrate our own algorithms mostly written in Python to the Kaapana platform? Sounds simple right ? We thought so also.
I started studying the Kaapana documentation and we had to setup the kaapana on our Virtual machine and it also required a Container registry as every components is basically Docker in Kaapana. Trust me the installation was a lot of work alone and it tooks weeks to setup from getting different errors and fixing it with help from my mentors and Kaapana teams. I initially used GCP VM initially but later moved it to microsoft azure VM. Luis Torres, my mentor**,** hint me that he will be setting up an onpremise machine for me.
Kaapana has great documentations for installation but, integrating someones algorithms requires someone to understand a lot about the how the platform works, all the technology used and someone actually have to go through the source code to see how the somethings is being done and the code source of other algorithms. Over the past weeks, I had to learn Airflow specifically how to write DAGs, helm charts revised Docker and some kubernetes. At the point when I had to go through the source code, do some reverse engineer that is when I know there some things that AI would not just do for you.
After lot of studying and reverse engineering, I have come with the first iteration of our own workflow that can be integrated with Kaapana, currently in the period of testing it and ensuring it works and this a pr discussing it https://github.com/OSIPI/TF2.4_IVIM-MRI_CodeCollection/pull/112. I will still have to improve this.
This is getting too longer. So, I will stop here, In my next blog, I will talk more about the workflow, my iterations on it, how it works and maybe some reverse engineering which I did.
Shout to my mentors (Eric Peterson and Luis Torres ) for their guidance and support all the time. Thanks to Kaapana team (specifically Lorenz Feineis) for creating such a wonder project and for always helping whenever I send them my errors logs.
IVIM algorithms on Kaapana Platform.
See you next time.
Subscribe to my newsletter
Read articles from Usman Akinyemi directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Usman Akinyemi
Usman Akinyemi
Blogging about my Google summer of code Internship @OSIPI. Github LInk https://github.com/Unique-Usman/