-
Notifications
You must be signed in to change notification settings - Fork 61
GSOC 2018
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
- Packaging (containers, cloud)
- UX design (concept, modernize)
Description: TVB has, for the moment, distributed its packages either in the form of sources from Git repositories for developers (https://github.com/the-virtual-brain), or a zip package per platform for end-users (http://www.thevirtualbrain.org/tvb/zwei/brainsimulator-software), and only recently through Pypi (https://pypi.python.org/pypi/tvb-framework). This leaves much to be desired: 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. Native launchers for the most usual operating systems would be good to have. 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 ideally all of the above mentioned options.
Expected Results: One or more of: packages for Conda and NeuroDebian, Vagrantfile, script for building a Docker image or AMI, native launchers for TVB Distribution.
Skills: Python, Bash & Unix command line, Debian packaging, virtual machines, containers.
Mentors: Lia Domide, Mihai Andrei
Description: Data visualization plays a crucial role in TVB's neuroinformatics platform, and a Structural Connectivity (connectome) is a core datatype, modelling full brain regions and their connections. An interaction paradigm needs to be proposed, as well as the implementation to be done for such a connectivity visualizer in the browser client of TVB. We need to easily display and interact with up to 1000 regions in a connectivity (1000^2 adjacency matrix) in 2D and 3D. Rendering performance as well as per-element interaction is important. Interaction from the user: rotate, zoom, move, edit edges, etc. are all necessary.
The current implementation is documented here: http://docs.thevirtualbrain.org/manuals/UserGuide/UserGuide-UI_Connectivity.html#long-range-connectivity
Expected Results: Completely redo and improve a section of TVB front-end (Connectivity Cockpit) from UX design, down to implementation, web technologies and optimization for extremely large data structures.
Skills: HTML5, JS, CSS and Python are necessary; Experience in web development, SVG, WebGL, ReactJS is helpful.
Mentors: Paula Popa, Lia Domide
Description: One major feature of TVB’s neuroinformatics platform is Timeseries analysis. Supporting empirical or simulated sources for signals the platform already offers a 2D viewer where users can study Timeseries files. But is it enough? Think about going next level and create a 3D viewer. This would be like looking at the patient’s personalized brain in the seizure moment and see the lead field potentials. An interaction paradigm needs to be proposed and the implementation to be done in the browser client of TVB. Rendering performance is important. Interaction from the user: rotate, zoom, move, play/pause movie, etc. are all necessary.
The viewers we already have: http://docs.thevirtualbrain.com/manuals/UserGuide/UserGuide-UI_Simulator.html#sensor-visualizer http://docs.thevirtualbrain.com/manuals/UserGuide/UserGuide-UI_Simulator.html#time-series-visualizer-svg-d3
Proof of concept:
Expected Results: Implement a new 3D viewer from UX design, down to implementation, web technologies.
Skills: HTML5, JS, CSS and Python are necessary; Experience in web development, SVG, WebGL, ReactJS is helpful.
Mentors: Paula Popa, Lia Domide
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.
This project is to refactor 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
- anatomical visualization (surface, connectivity) (e.g. use XTK)
- time series viewer (e.g. use vispy)
- the phase plane tool
Use of WebGL (in particular Python/notebook oriented GL toosl) are encouraged, where numerous interesting opportunities for optimization are present, e.g. XTK for anatomy, vispy for time series.
Mentors: Marmaduke Woodman (@maedoc) Expected results: A set of classes usuable within Jupyter notebook, for displaying common data objects via WebGL or WebGL-based libraries. Skills: Familiarity visualizing data with WebGL; familiarity with IPyWidgets & Jupyter would be helpful
Similar to project [4], several form-based UIs are present in TVB's UI which should be reusable independently within a noteobok context to allow for visual configuration of a simulator or analysis algorithm.
This project is the refactor those form UIs to widgets usable from IPython notebook, while maintaining compatibility with the existing TVB framework. The configuration pages are dynamically generated from metadata in the codebase.
- Simulator configuration
- Generic analysis config
Use of ipywidgets, in order to maximize notebook compatibility is recommended.
Expected results: A set of IPyWidgets which can be connected to TVB objects, generate a configuration UI from the object's metadata, & configure them during use of a Jupyter notebook Skills: Familiarity with class programming in Python; familiarity with IPyWidgets & Jupyter would be helpful Mentors: Marmaduke Woodman (@maedoc)
Stan is a state-of-the-art probabilistic programming language which allows for inference on complex statistical models, and has been used for a TVB prototype model for seizure propagation in Jirsa et al 2017 The Virtual Epileptic Patient: Individualized whole-brain models of epilepsy spread. Stan's algorithms allow for efficient exploration of a parameter space in addition to data fitting.
This project is to translate essential algorithms from TVB to the Stan language for use in inference of TVB models on data, test against TVB results, and to provide a few examples of inference.
Expected results: A set of Stan files implementing essential TVB algorithms, with tests and examples. Skills: Numerical/scientific programming, data science Mentors: Marmaduke Woodman (@maedoc)
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 2018 under the INCF organization, as we did in the past years. We thank INCF org admins for making this great experience possible for us! https://www.incf.org/collaborate/tool-development/google-summer-of-code