GSoC Project Idea 14: Producing publication-ready brain network analysis results and visualisations from the command line



Mentor: Kirstie Whitaker

Context and motivation: The brain made up of many regions that communicate millions of messages every second. Traditional neuroimaging analyses have considered each region separately and therefore failed to capture many aspects of brain structure and function. Graph theory allows us to analyse human brain images as a network [1].

scona is a python package to run structural covariance network analyses on cortical thickness measures [2]. The pipeline takes regional cortical thickness data obtained from structural MRI and generates a matrix of correlations between regions over a cohort of subjects. The correlation matrix is used alongside the networkx package [3] to generate a variety of networks and network measures. The code is modular and extendable. It is openly developed with a strong emphasis on providing clear documentation, maintaining high test coverage, and encouraging new contributors to take part in building the tool [4].

Project description and aims: The goal of this GSoC project is to 1) develop a command line tool that will allow users to run their pipeline from beginning to end without having to import the modules into a python environment, and 2) improve the results visualisation and output reports at the end of the analysis. The final visualisations should be ready for publication in a scientific journal, although there is a lot of scope for building fun and interactive outputs too. A related “stretch” goal is to build up example analyses using openly available datasets.

The GSoC student will develop their skills working with Python, employing modern software testing suites to improve reproducibility and robustness of code, and experimenting with different ways of visualising brain networks. They will have explicit mentorship in ways of open and collaborative working using git and GitHub.

Skills needed/desired: This project is aimed towards students seeking to develop their coding skills and to gain familiarity with collaborative development. Interested students should be comfortable with Python and GitHub. They should be motivated to the application of network analysis methods to brain imaging data, and to communicate these findings for an academic audience and beyond.

Over the course of the project the student will have to develop skills writing python for distribution, such as linting, testing, continuous integration [5], sphinx style documentation [6], and packaging [7]. While experience with matplotlib [8] and the nilearn plotting tools [9] will be useful, it is most important that the students use their creativity to best communicate scientific findings.

A commitment to open and collaborative working is essential. All contributors to scona are expected to comply with the scona code of conduct at all times [10].

Key words: Python; visualisation; network analysis; neuroimaging; reproducible research

Relevant external links:

  1. Bullmore & Sporns, 2009,


Copying and pasting a question that we got in our gitter chat room ( that might be useful for potential applicants.

The doc mentions that the graphs should be ‘ready for publication’ in a journal. Can you please elaborate on that? What are the features of such a graph?

@Islast: I think when Kirstie and I wrote that we had two things in mind. The first is just that a “ready for publication” figure should look good and communicate clearly. The second is that basically the point of scona producing figures that are “ready for publication” is to reproducibly automate figure creation. i.e if a figure in your publication is the direct output of accessible code (aka scona) it will be much easier for somebody to reproduce.

That second point might be a little more confusing if you aren’t familiar with ideas of reproducibility in science, but I promise if you come and work with Kirstie you will become familiar with ideas of reproducibility in science.

sorry that sounds a little ominous. It’s a good thing I promise! :sparkles: