Research Ideas and Outcomes : Project Report
Project Report
Mindcontrol: Organize, quality control, annotate, edit, and collaborate on neuroimaging processing results
expand article infoAnisha Keshavan, Christopher R Madan§, Esha Datta, Ian M McDonough|
‡ UCSF Department of Neurology, San Francisco, CA, United States of America
§ Boston College, Chestnut Hill, MA, United States of America
| The University of Alabama, Tuscaloosa, AL, United States of America
Open Access


Mindcontrol is an open-source web-based dashboard to quality control and curate neuroimaging data. At Neurohackweek 2016, a group assembled to add new features to the Mindcontrol interface. Contributors used Python, Javascript, and Git to configure Mindcontrol for the ABIDE and CoRR open datasets, and add new types of plots to the interface. All contributions are freely available online, and the code is being actively maintained at


Brain, Interactive, Visualization, Curation, Segmentation

What is Mindcontrol?

Mindcontrol is a web-based application that consists of a dashboard to organize, quality control, annotate, edit, and collaborate on neuroimaging processing results (Keshavan et al. 2016). Mindcontrol provides an easy-to-use interface for examining distributions of descriptive measures from neuroimaging pipelines (e.g., surface area of right insula), and previewing the results of segmentation analyses using the Papaya volume viewer ( Users are able to annotate points and curves on the volume, edit voxels, and assign tasks to other users (e.g., to correct the segmentation of a particular image). Mindcontrol is built using Meteor, a web framework based on Node.js and MongoDB as the database backend ( The current version of mindcontrol is available at, and a demo is on Fig. 1 shows the dashboard view and editing panels of the application.

Figure 1.

The original Mindcontrol application is shown here. On the left is the dashboard view, with a calendar heatmap plot of exam dates at the top, and a histogram of 3rd-Ventricle volumes from Freesurfer. Clicking on the "Freesurfer id" of an exam in the lower tables opens the view on the right, where users can annotate points, curves, and edit the volume of the freesurfer segmentation.

Progress at Neurohackweek

At Neurohackweek 2016, we expanded on mindcontrol to add additional functionality. The current build of mindcontrol had been tailored to particular use cases as was initially needed, however one of our goals was to expand the architecture to increase the flexibility of mindcontrol for use cases beyond the initial development.

Importing data sources and linking with open-access datasets

Creating the initialization JSON for the mindcontrol database is a critical step for deployment within a specific research laboratory. To both facilitate this need, as well as provide easy quality control metrics of open-access datasets, we worked on importing data from two open-access datasets, CoRR (Consortium for Reliability and Reproducibility) (Zuo et al. 2014) and ABIDE (Autism Brain Imaging Data Exchange) (Di Martino et al. 2013). The rationale for choosing these two particular datasets was to better incorporate longitudinal data (from CoRR) and to allow for the assessments of how different processing streams (implementation of global signal regression and filtering) influenced and was influenced by the quality of the data (ABIDE). Links to the respective datasets are below.


ABIDE Preprocessed:

Progress made during Neurohackweek 2016: CoRR

The CoRR dataset is longitudinal and includes data acquired from the same subjects at several time points. From this dataset, we extracted a subset of quality control measures (Signal to Noise Ratio (SNR), Contrast to Noise Ratio (CNR), entropy focus criterion, foreground to background energy ratio, percent artifact voxels, and spatial smoothness) from the anatomical scans. This data was input into a JSON file that was then used to initialize mindcontrol.

A line graph function was implemented to allow the user to visualize how metrics change across time in longitudinal data (see Fig. 2). In Fig. 3, the user is able to visualize how SNR and CNR varies across time for one specific subject. As the user scrolls over the graph, the metric values are displayed for the timepoint that is highlighted. If the user clicks on a point, the associated MRI image is loaded adjacent to the plot. In addition, a scatterplot function was implemented to allow the user to visualize how metrics are related to each other in longitudinal data. In the example shown in Fig. 4, the user is able to visualize how SNR and CNR relate to each other at several different timepoints for one specific subject. The code for the CoRR configuration is located at

Figure 2.

The longitudinal view of a single subject and their quality metrics over time. Clicking on a point on the plots on the left-hand side loads the correponding image on the right.

Figure 3.

Example of new line graph function for longitudinal data

Figure 4.

Example of scatterplot function to display the relationship of metrics in longitudinal data

Progress made during Neurohackweek 2016: ABIDE

First, structural MRI and functional MRI quality control measures were extracted from the ABIDE dataset and entered in a matrix. This matrix was then used to create a JSON file to initialize the ABIDE branch of the mindcontrol software. The same was done for pre-calculated estimates of brain volume and cortical thickness from the ABIDE dataset. With this addition, multiple data sets can be viewed and compared on various brain metrics. Doing so aids in the collection of normative data that various across institutions and people.

Second, a scatterplot function was implemented to probe how various quality control measures might relate to each other. The ABIDE data set includes about 4 dozen quality control metrics ( across both brain structure and function. The added scatterplot function allows investigators to investigate whether the quality of one metric influences another both within modalities (structure-to-structure) and between modalities (structure-to-function). For example, one can test the extent that the Foreground to Background Energy Ratio (FBER) within a structural scan is related to the Contrast to Noise Ratio (CNR) within a structural scan (see Fig. 5). The new scatterplot function also allows selection of individual datapoints to show which participants might serve as outliers. The code from the abide configuration is located at

Figure 5.

Example of new scatterplot function. Structural Foreground to Background Energy Ratio is positively related with Structural Contrast to Noise Ratio. Single data points can also be highlighted to detect outlers.

The original version of mindcontrol offered a graphical histogram to detect outliers for a selected measure. Histograms are very useful for detecting outlying values for a given subject. However, sometimes a value might be appropriately "low" or "high" and appear to be an outlier, when it is not. For this reason, a complementary approach to data quality control is to compare hemisphere differences within each subject for a given region. While small hemispheric differences are expected, large differences either mark severe pathology or a processing error. Towards this aim, the scatterplot function also was used to dynamically display the left hemisphere value on the x-axis and the right hemisphere in the y-axis when selecting a region. By clicking a data point, a field below the scatterplot will indicate the subject code for the person.

Surface viewer

Another focus of development at neurohackweek was to streamline an existing web-based surface viewer, BrainBrowser (Sherif et al. 2015;, for integration into the mindcontrol framework. Briefly, BrainBrowser is a web-based viewer for mesh surfaces, as well as intensity overlays (e.g., cortical thickness map). Among other data formats, BrainBrower is able to read native FreeSurfer file formats, such as *.pial and *.thickness. Here we sought to streamline the interface of BrainBrowser such that it could run in an 'iframe' within mindcontrol, as well as pass information between this child frame to the parent frame, such as the [x,y,z] and vertex location that a user clicks on, as well as intensity information, for further corroboration with other data sources within mindcontrol.


The improvements to Mindcontrol during Neurohackweek 2016 enables users to easily reconfigure Mindcontrol for specific use cases, add new information visualizations to the interface, and add new medical image visualizations to the platform. We hope to build an active open-source community around Mindcontrol to add new features to the platform and make brain quality control more efficient and collaborative.


The authors would like to thank Ariel Rokem for organizing Neurohackweek, and Cameron Craddock for his assistance with the ABIDE and CoRR datasets. C.R.M. was supported by a fellowship from the Canadian Institutes of Health Research (FRN-146793).