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:
- Bullmore & Sporns, 2009, https://doi.org/10.1038/nrn2575
- https://github.com/whitakerlab/scona
- https://networkx.github.io
- https://github.com/whitakerlab/scona/blob/master/CONTRIBUTING.md
- https://travis-ci.org
- http://www.sphinx-doc.org
- https://docs.python-guide.org/shipping/packaging
- https://matplotlib.org
- http://nilearn.github.io/plotting/index.html
- https://github.com/WhitakerLab/scona/blob/master/CODE_OF_CONDUCT.md