Skip to content

GSOC 2020

popaula937 edited this page Dec 16, 2019 · 10 revisions

The Virtual Brain: An open-source simulator for whole brain network modeling.

There are several modeling studies using brain network models which incorporate biologically realistic macroscopic connectivity (the so-called connectome) to understand the global dynamics observed in the healthy and diseased brain measured by different neuroimaging modalities such as fMRI, EEG and MEG.

For this particular modelling approach in Computational Neuroscience, open source frameworks enabling the collaboration between researchers with different backgrounds are not widely available. The Virtual Brain is, so far, the only neuroinformatics project filling that place.

Several open issues addressed by the following proposals involve

  • UI (web, concept, modernize)
  • Backend optimizations(Python, C++)

GSoC 2020 Proposals

[1] Upgrade and fix tvb-gdist C++ library

Description: When TVB runs simulations on cortical surfaces, we need to be able and compute geodesic distances (distance on the surface) instead of the trivial Euclidean distances. For this calculus, we have a small C++ library, which had become outdated. We need to:

  • start with an analysis done by the student if the current implementation should be reused and fixed, or completely replaced, then
  • proceed with the fix/replacement as concluded at the previous step.
    • If we are to fix the current implementation, we need to fix the 6 issues reported on Github during this project, and also
    • make sure the library compiles correctly with the latest version of clang.
  • we need to have unit-test written for the main flows as well as for some common exceptions
  • the unit-tests should run automatically by integration in our CI Jenkins system
  • at the end of this project, also tvb-gdist packages on Pypi and conda-forge should be updated

The current implementation is hosted here:

Expected Results: Completely redo and improve tvb-gdist C++ code, validate the Cython link, redo Pypi packages automatized build, and conda-forge package.

Skills: C++, Cython

Mentors: Robert Vincze, Lia Domide

[2] Reusable visualization tools for Jupyter

Description: TVB's web-based UI provides several very useful visualization tools, which are setup for full screen use. As TVB is used in wider contexts (HBP collaboratory, Jupyter notebooks), it is important to ensure the relevent visualization tools are present everywhere.

This project is to rewrite the widgets in TVB UI to become reusable components which can be employed from a Jupyter notebook for use in the HBP collaboratory, while maintaining compatibility with the existing TVB framework. Tools are to be refactored, choice up to the student, in order of priority

  1. anatomical visualization (surface, connectivity)
  2. time series viewer
  3. the phase plane tool

Use of WebGL (in particular Python/notebook oriented GL tools) are encouraged, where numerous interesting opportunities for optimization are present, e.g. XTK for anatomy, vispy for time series.

Expected results: A set of classes usable within Jupyter notebook, for displaying common data objects via WebGL or WebGL-based libraries. Documentation and usage examples for all created classes.

Skills: Python, WebGL, IPyWidgets, Jupyter

Mentors: Lia Domide, Gabriel Florea, Bogdan Valean

[3] Web GUI for reconstruction pipeline

Description: A real brain can turn to a virtual brain in 3 steps. First, the patient goes to a RMN scanner, then, the measured images go through a reconstruction pipeline, and finally, the results are uploaded in TVB. This reconstruction pipeline is a mandatory tool, it takes RMN images, processes them and extracts the brain's connectivity, geometry, parcellations and other data necessary for virtualization. It produces files that are compatible with TVB. Links together tools like Freesurfer, MRtrix, FSL, Pegasus WMS.

We host a lightweight version of such a reconstruction pipeline here: https://github.com/the-virtual-brain/tvb-recon

Providing a GUI for such a pipeline would greatly improve our user experience. This interface should allow users to provide input data, choose configurations, define the output structure, launch the workflow and monitor progress. Additionally it would be nice to integrate with our workflow engine (Pegasus) in order to provide job status and job execution statistics.

The GUI design is open to suggestions. Share your creativity with us!

Expected results: Web based GUI for tvb-recon

Skills: Python, HTML5, CSS, JS, experience in web development

Mentors: Paula Popa, Lia Domide

Further information

TVB's main web site is http://www.thevirtualbrain.com/ and more technical documentation can be found at http://docs.thevirtualbrain.com/

We intend to participate in GSOC 2020 under the INCF organization, as we did in the past years. We thank INCF org admins for making this great experience possible for us!