Skip to content

GSOC 2014

Lia Domide edited this page Oct 16, 2017 · 3 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

  • verifying numerical methods
  • improving simulator performance
  • enhancing data IO and visualization

GSoC 2014 Proposals

[1] Profiling the simulator

Description: This proposal will involve run time and memory profiling of the simulator with different instances of brain network models. Example of parameters to explore: nodal size, simulation length, integration time step, number of state variables recorded and output modalities. For various simulations, it will be necessary to profile and analyze memory use, execution time and find bottlenecks. Understanding the role of the CPU cache may also be important.

Skills required: Python, Git, profiling tools (line profiler & cProfile for Python, valgrind, etc.) Experience with NumPy/SciPy & C/C++ would be helpful.

Expected results: Profiling integrated with testing framework, detecting regressions, etc. Documenting found bottlenecks in user guide.

Mentors: Marmaduke Woodman, Paula Sanz Leon, Mathieu Golos

[2] Numerical accuracy evaluation

Description: Assesing the numerical accuracy of a simulation is necessary in order to verify the results. This proposal involves using systems with known solutions (such as a linear ordinary differential equation) with TVB's numerical methods to determine how accurate the methods are. These results may be tested against methods implemented by other softwares such as XPPAUT.

Skills required: Python; Experience with differential equations, MATLAB would be helpful

Expected results: Test suite for asessing integration accuracy, and documentation of accuracy tests in user guide.

Mentors: Paula Sanz Leon, Marmaduke Woodman

[3] Interactive Data Exploration.

Description Data visualization plays a crucial role in TVB's neuroinformatics platform; effective interactive visualization can improve users experience by helping them to quickly explore large datasets. Nevertheless it is still a challenge to do properly in TVB because the web browser is still a developing platform with respect to graphics. Several tasks related to this project are available. Students are urged to select one or more from the list based on time, interest & experience:

a) Implement a time-series visualizer for volumetric time-series. We currently have a partial implementation for such a viewer that could be used as a starting point, or a student could start from scratch, if desired.

b) Rewrite visualizers that are currently implemented using MatplotLib and MPLH5 with visualization libraries oriented toward web browsers, such as D3.js or Bokeh.

c) Improve interactive editing of large matrices (O(1000^2)). Rendering performance as well as per-element interaction is important.

d) Embed an IPython notebook into the existing web interface.

Skills required: HTML/JS/CSS & Python; Experience in web development, JQuery, SVG, WebGL, as well as server side frameworks such as CherryPy, is helpful.

Mentors: Lia Domide, Mihai Andrei

[4] Data import and export

Description Using TVB often requires importing data from neuroimaging studies, both structural (MRI) and functional (fMRI). Many different applications are used to handle these data, and accordingly, there are many different data file formats. In order to handle these formats, it is necessary to either interface with existing Python or C/C++ packages (such as those in nibabel) to read these formats or implement the functions directly.

Skills: Python; Experience with MATLAB and binary data formats would be helpful.

Expected results: Integrated module that improves import/export of a wide variety of neuroimaging data formats, as well as, a test suite with small test data sets.

Mentors: Marmaduke Woodman, Lia Domide, Paula Sanz Leon

[5] Packaging

Description: TVB has, for the moment, distributed its packages either in the form of sources from a Git repository for developers or a zip package per platform for users. This leaves much to be desired: a significant part of the community however installs packages from the Python Package Index (PyPI); in the scientific community, the use of the Anaconda distribution has made the Conda package manager popular. For Linux, a project called NeuroDebian seeks to package much of the available neuroscience software as Debian packages, which are then usable by many derivative distributions. Lastly, for many situations, it is good practice to run software in an isolated environment, with tools such as Vagrant, Docker, Amazon Web Image (AMI), etc. To address these possibilities this proposal involves preparing new packaging scripts for one or more of the mentioned options.

Expected Results: One or more of: packages for PyPI, Conda & NeuroDebian. Vagrantfile, script for building a Docker image or AMI.

Skills: Pytho, SSH, Bash & Linux command line; Experience with Python & Debian packaging, virtual machines would helpful.

Mentors: Lia Domide, Mihai Andrei, Mathieu Golos

Further information

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

Clone this wiki locally