My GSoC project to make a graphical user interface (GUI) to locate the positions of electrical recording contacts inside a patient's head who has been implanted with intracranial electrodes was a huge success.
I started by developing the accompanying routines to prepare the input data and process the data once the GUI has been used first. This process is described here:
https://mne.tools/dev/auto_tutorials/clinical/10_ieeg_localize.html
The pull requests (PRs) that contributed to this development are here:
https://github.com/mne-tools/mne-python/pull/9484
https://github.com/mne-tools/mne-python/pull/9544
https://github.com/mne-tools/mne-python/pull/9601
These were also accompanied by maintenance PRs to the MNE-Python repository as a whole which improved its overall organization and function and were part and parcel with the tutorial changes:
https://github.com/mne-tools/mne-python/pull/9480
https://github.com/mne-tools/mne-python/pull/9543
https://github.com/mne-tools/mne-python/pull/9574
https://github.com/mne-tools/mne-python/pull/9598
https://github.com/mne-tools/mne-python/pull/9599
https://github.com/mne-tools/mne-python/pull/9601
https://github.com/mne-tools/mne-python/pull/9617
https://github.com/mne-tools/mne-python/pull/9618
https://github.com/mne-tools/mne-python/pull/9622
https://github.com/mne-tools/mne-python/pull/9625
https://github.com/mne-tools/mne-python/pull/9630
In brief, this allowed users who had collected intracranial electrophysiology data to take a computed tomography (CT) scan with electrode contacts appearing as hyperintensities, align it to a magnetic resonance (MR) image and then compute a morph mapping from the patient's brain to a template brain (a brain made of the average of many different MR scans so as to be somewhat representative of an average brain). The many helper PRs reorganized image processing scripts, fixed naming consistency, removed redundancy in documentation and refactored many of the 3D plotting aspects that were used in the tutorials.
Once the accompanying routines were completed, the GUI PR was the main focus:
https://github.com/mne-tools/mne-python/pull/9586
The main GUI implements a novel automatic contact finding algorithm, specifically developed for identifying many stereo-electrodes in lines (previous algorithms have been developed for grid electrodes) and is a clean and well-tested interface for locating intracranial contacts that is up to professional development standards.
View Blog Post
alexrockhill's Blog
The graphical user interface for selecting intracranial electrode contacts is finally feature complete! I just have a few tests to write and to get it reviewed but we're nearing the end of a successful GSoC project.
View Blog Post
I'm working on the 3D viewer as a fourth panel of the GUI and progress is going well, but I still have to add tests. Next up is the last step of automating the detection of the electrode contacts so that locating positions is automated and the user only has to associate the positions.
View Blog Post
This week, I managed a lot of the input/output for the GUI which was complicated and was nicely clean up in the refactoring in the rest of MNE. This was also a part of the 3D plotting that will be useful to displaying the results of the GUI. Next week is on to adding functionality and tests for the GUI, specifically the 3D view.
View Blog Post
The electrode contact localization GUI is in progress and a first draft that incorporates MNE style and helper functions is almost finished. I worked on handling the coordinate frames in a easy-to-understand way, and I worked on refactoring and renaming the appropriate functions and variables to be private as well as simplifying a bit like not plotting the pial surface to add back later. This week I'll finish the draft, get and incorporate reviews and work on tests. Hopefully soon it will be integrated into the tutorial with helpful images.
View Blog Post