Skip to content
Nicolas Farrugia edited this page Jun 18, 2018 · 75 revisions

Welcome to the Hackathon2018 wiki!

Please submit your projects here!

Note: Please scroll to the bottom to add and then update the project list up here

Project list:

neuropredict : easy and comprehensive assessment of biomarker accuracy

Submitted by Pradeep Reddy Raamana

Description: check here

Code : check here

Ideas for contribution : check here

Areas of interest: deep learning and general machine learning (classification, cross-validation), biomarker accuracy, ROC analysis, significance testing, file formats, visualization, user experience and Python.

Neuroimaging Through The Years

Submitted by Tim van Mourik

Every neuroimaging student has probably come across the picture of neuroimaging methods in the spatiotemporal resolution plane, after Sejnowski et al.

This famously shows the scope of different neuroimaging techniques from 1980 to 2014. In this project, I would like to animate this process. Either by means of interactive graphics (along these lines) or via an Illustrator/Photoshop script to make an animated gif. The idea is to automatically generate the animation based on a (to-be-created) database of papers that pinpoint the corners of rectangles. This way, the animation is automatically updated when data is added.

  • Primary goals:
    1. Come up with a way to stucture a mini database with the relevant information
    2. Find a way to animate the relevant information
    3. Get from 1. to 2.
  • Secondary goals:
    • Find a small set of papers that define corner points of some methods and populate the database
    • Annotate the visualisation, i.e. either have the papers pop up or make them clickable

Nipype/Porcupine annotation and categorisation

Submitted by Tim van Mourik

I've written a visual programming interface to Nipype, Porcupine. It is in part meant to make MRI analysis a lot easier for the novice user, but there is one big problem: Nipype nodes (or a) At the moment, all Nipype nodes are available, but they have the same untransparent names (e.g., fsl.BET) of the original function. It would be great if instead, the nodes could be organised by functionality instead.

  • Primary goals:
    1. Find a way to collect relevant metadata from Nipype nodes. [Relevant to Nipype]
    2. List the nodes in an 'order by category' panel in Porcupine. [Relevant to Porcupine]
  • Secondary goals:
    1. An annotation of this kind would be equally useful for the Nipype documentation. Some 'browse by category' functionality would be a welcome addition to the docs.
  • Stretch goals (or separate project):
    1. Include snippets of text for some functions in order to automatically generate methods sections

Augmented Reality Brains

Submitted by Tim van Mourik

A while ago I played with augemented reality, AR, and got a small proof of principle to work. Sorry about the christmas tree, I worked on this in December. But we can do this with brains as well of course! I would like to:

  1. Exchange the tree for a 3D brain reconstruction. We will probably need to downsample a FreeSurfer reconstruction to make this work.
  2. Make a custom brain marker that includes a QR code to the appropriate link.
  3. Colour the brain with an activation map.
  4. Write scripts to automate this process. The ultimate (way beyond hackathon) idea is of course to put a brain QR code on your poster and have it display your brain results in AR!

VisualQC : easy and comprehensive quality control of neuroimaging data

Submitted by Pradeep Reddy Raamana

Description: check here

Code : check here

Ideas for contribution : check here

Areas of interest: neuroimaging (various modalities: functional and structural), machine learning (outlier detection), quality control, image processing (quality metrics), visualization, user experience and Python.

Autism Connectome Analysis

Submitted by Varun Kumar

Theoretical Motivation:

Autism Spectrum Disorder (ASD) is a neurodevelopmental disorder characterized by deficits in social communication and social interaction, and by restrictive repetitive patterns of behaviours. ASD heterogeneity is huge, symptom severity varies from severe impairment to mild impairment, and from requiring substantial support to requiring support. Consequently, a categorical approach and a behavioural assessment of the ASD core symptoms fail to detect ASD subjects in the upper spectrum. ASD subjects with mild impairments are susceptible of a misdiagnosis or a late diagnosis.

Aim:

This project aims to find a functional connectivity based biomarker that can use a resting state fMRI scan for the following 2 purposes:

  1. To predict the severity scores such as - ADOS Total Score or SRS Score using these biomarkers.
  2. Trying to cluster the subjects into separable groups using the available phenotypic scores and those connectivity biomarkers and to discover multiple subtypes to which an autistic individual can belong to.
    For this we will use resting state fMRI scans from ABIDE.

Research Design:

  1. Employing a seed based functional connectivity analysis approach to build the connectome.
  2. Finding group level differences in functional connectivity between autistic and healthy subjects.
  3. Using those differences for the purpose of subject clustering or severity score prediction.

Code Development (Python):

Using nipype and scikit learn/nilearn to do the following:

  1. Making a preprocessing pipeline using nipype.
  2. Building functional connectivity maps.
  3. Using scikit learn/ nilearn to for clustering subjects and predicting severity scores

Calling all the Neuroscientists and Programmers:

It would be great if neuroscientists join this project as they know about brain anatomy and can hypothesize what brain connections might be impaired in Autism as a disorder of social communication. They can help in deciding which seed regions to focus on and inspect. They can also help in interpreting the results. Also, everyone can benefit a lot from programmers by learning efficient coding practices.

It's a great opportunity for both to come together and learn from each other.

Title: Anomaly detection from time-series fMRI data of schizophrenia patients.

Submitted by Indranath Chatterjee

Background and Purpose of the Project:

Anomaly detection from the time-series fMRI data is an active area of research. The fMRI data comprises 3-D brain scans acquired over time. Each voxel of the 3-D brain volume contains a value denoting the signal intensity at a particular time for a certain task performed by the subject. Schizophrenia is a serious mental disorder that affects different regions of the brain, often involving hallucinations and delusions. Detecting the anomaly in temporal data and identifying the activated voxels will help to reduce the features for the diagnosis of schizophrenia. Currently, techniques like GLM and ICA are used to detect the voxel activity and to reduce the data by removing the time variable. Identification of affected regions in schizophrenia may help us understand the condition and effect of disorder better and may also assist in deciding the line of treatment.

The objectives of the Project:

  1. To find the relevant voxel having a significant change in activation.
  2. Developing a fast and simple tool for dimension reduction.
  3. Statistical analysis based feature selection for task-related fMRI data without giving prior information about task details.

The Plan of Work:

The fMRI data of schizophrenia patients and healthy controls performing auditory oddball (AUD) task, openly available at FBIRN phase II data repository will be used in this project. Each subject’ data consist of four runs of AUD task. Mean and median-based statistical methods will be applied voxel-wise on the data of each subject, identifying the relevant voxels activated across their time course. Discrete wavelet transform may be applied voxel-wise to the fMRI time-series signals to detect outliers. The detection of outliers will help us to understand the nature of activation of the voxel, and the activated voxels may be selected as the relevant features to be fed into the classifier. The mean and median-based method may work better in terms of accuracy classifying the healthy and schizophrenia subjects when compared to features selected by standard GLM approach. To implement the project, tools like Matlab or Python will be used for coding, SPM8 will be used for GLM, and MriCro/ MANGO for visualization of the brain image.

Benefit to the Community:

To the best of my knowledge, till date, there is no study performed on time-series fMRI data involving schizophrenia patients for outlier detection to select activated voxels that helps in the classification task. This project will throw light on the recent research on time-series analysis of task-related fMRI data and may act as an alternative option to the standard GLM approach to convert 4-D fMRI data into a 3-D statistical parametric map volume.

Model and estimate the influence of the physiological activity on BOLD signal from task fMRI

Submitted by Yulin Wang

MOTIVATION:

As physiology activity, mainly including the cardiac and respiratory activity, has already being proposed to constitute as a big part of the noise for the BOLD fMRI signal (for review, see Bulte & Wartolowska, 2017), it is important to look its effects more precisely with an emotion or emotion regulation task. Therefore, in the project, I would like to find out the role of physiological activity on BOLD signal by taking a task fmri dataset addressing the emotion regulating brain as an example.

OBJECT:

In the project, the data-set comes from my own fMRI study (as an example), which addresses the repeated effects of two emotion regulation strategies in the brain. In this fMRI study, the respiration and heart rate activity were recorded simultaneously. To be noticed, this study was already pre-registered in the open science framework https://osf.io/. My previous idea was to regard the physiology activity as noise for the task related BOLD signal. As indicated in the preregistered report, I will regress them out in the first level to specify my GLM model. However, some researches argued that physiology activity plays also a vital role in emotional responses. It would be highly possible that we also regress out the task-related signal if we regress out the physiology influence in the first level. The aim is to work out a framework to decode the influence of the physiological activity in BOLD signal with a task fMRI.

PLAN:

A possible framework

  1. Step one

    • Model (use RETROICOR, RVT, HRV) the physiological activity with PhysIO toolbox

    • Aim: Read in the physiological activity, the pre-processing, and the noise modeling

  2. Step two

    • Estimate (via tSNR) the modeling: clarify the influence of cardiac activity and the respiratory activity on BOLD signal
    • Aim: Make sure that noise correction (via SPM GLM) is done by only regressing out the noisy part of the physiological activity; separate the signal and noise from the physiological activity
  3. Step three

    • Use the physiological activity (the signal part) as parametric modulator in the GLM model
    • Aim: to estimate cardiac and respiratory activity related neural correlates during emotion regulation more precisely

SIGNIFICANCE

I think my project is of general interest for people who are doing fMRI studies, both on resting state and task fMRI. As physiology activity has already been proposed to constitute as a big part of the noise for the BOLD signal, it is really important to look its effects more precisely with an emotion or emotion regulation task. Considering researchers nowadays have collected more often the physiology data during their fMRI scanning, I think my project will stimulate a lot of ideas about how to deal with the physiology activity, which will provide some new insights into the field of neuroscience, not to mention that this project can add more values about open science.

**Calling all the Neuroscientists and Programmers: **

The crucial part for this project is step two. It would be great if neuroscientists who are working on the similar topics and programmers who know a lot about modeling join the current project. It's a great opportunity to sit-together and work for science!

Add BIDS repository module to Arcana

Submitted by Tom Close

Introduction

I have been developing a framework for the analysis of large-scale, multi-modal/contrast studies called Arcana (Abstraction of Repository-Centric ANAlysis). Arcana builds on Nipype to encapsulate experimental data and associated analysis methods within Study classes.

Study classes specify:

  • A collection of related datasets to be acquired from an instrument (scanner). A primary dMRI and its reverse phase-encoding references for example
  • Products that can be derived from the given acquired datasets, including intermediate ones
  • Pipelines to derive the derivable products.
  • Free parameters of the pipelines
  • Switches to select between comparable pipelines (e.g. segmentation in FSL, ANTs, SPM, etc...)

Placing workflows for neuroimaging analysis within the Arcana framework should help to reduce code duplication, by avoiding the reimplementation of segments that are common to many analysis workflows (e.g. brain extraction), while allowing for specialisation for different MR contrasts through class inheritance. Study classes for multi-modal/contrast experiments can be constructed by the combination of simpler classes into MultiStudy classes, making it feasible to implement complete workflows for complex multi-contrast experiments.

Arcana also abstracts away many of the menial tasks involved with creating workflows such as repository access, data format conversion, session iteration, management of previously computed products, and the storage of provenance (under development).

Repository access in Arcana has been implemented in a modular style that allows the selection of the repository modules at runtime. Repository modules currently exist for

  • XNAT (http://xnat.org)
  • Local. A custom directory format in which datasets stored in a two-tier directory structure organised by subject/visit.

Project

The aim of this project is to add a BIDS repository module to Arcana, and achieving that, develop some BIDS apps using Arcana.

Given that the existing custom local directory format is fairly similar to BIDS it should hopefully not be too much work to convert the Local repository module to store data in BIDS format. The one exception may be tabular data, which there isn't a concept of in Arcana currently.

Since BIDS specifies the names and types of datasets/products within the repository, it will be interesting to see whether it is practical to map Arcana's more general architecture on to it. The Arcana package itself only defines core workflow logic, not the implementations themselves. The workflow implementations we have been working on are in a separate repository (uninspiringly) named NiAnalysis. So some of the work to implement BIDS support may need to be put in there instead.

Proposed Outcomes

The key benefits of adding a BIDS module to Arcana would be:

  • Simplify the implementation of complex workflows as BIDS apps (hopefully;)
  • Provide a means to create unified BIDS Apps/XNAT pipelines.

Spatio-temporal dynamics of brain network connectivity

Submitted by Nicolas Farrugia

The goal of this project is to opensource ongoing efforts to estimate and characterize various aspects of dynamic brain connectivity analysis. As a starting point, we will provide (1a) a set of functions that use scikit-learn, nilearn, bct (+numpy, scipy, nistats,...) that can be used to estimate dynamic connectivity states with a set of connectivity metrics, sliding windows and clustering algorithms, (1b) as well as decomposition methods (e.g. ICA, dictionary learning) , (2) simple methods to calculate null statistical models using bootstrapping procedures, (3) dynamic graph theory metrics, and (4) basic visualizations. We encourage interested researchers to join us in order to either help building the examples, or contribute with new methods, or test our methods on their own data. www.github.com/nicofarr/dynamicnetworks

Nipype 2.0

Submitted by Nipypers

Nipype has now been around for about 8 years now. Over the years we have learned of things that work well, are annoying, and are simply impossible to do. Our goal by end of summer is to release a draft of Nipype 2.0. This will involve:

  • a refactoring of Nipype into separate modular projects (interfaces, engine, workflows)
  • a fresh api for each component (with automatic updating of previous code when possible)
  • integration with niflows - see next project
  • built in support for standards (BIDS, NIDM, CWL, Boutiques, etc.,.)
  • even more pythonic code style for people writing workflows During the hackathon we will focus on the release of a new core engine and a new core API. We would love your input (comments/criticisms) and/or your coding skills.

Niflows

Submitted by Nipypers and ReproNimers

Niflows is a re-incarnation and re-architecting of an old project: BIPS. We had moved workflows from BIPS to Nipype, and now we want to take them out again! Workflows are really difficult to maintain within Nipype: 1) Developers stop supporting them, 2) interfaces and underlying software dependencies change, and 3) testing workflows is rather intensive. Therefore, we are proposing a new organization Niflows within which neuroimaging workflows (not just Nipype ones) can be created, registered, maintained, and tested. During the hackathon we will discuss and hack on the principles by which workflows should be curated and dependencies managed, and hope to develop a starter-kit and a CLI manager. We would love your input (comments/criticisms) and/or your coding skills.

OHBM Abstract Planner 2.0

Submitted by Adam, Anisha, Dylan, Satra

The OHBM Abstract Planner was a 3 hour hack project on the last day of OHBM Brainhack 2017, that then turned into a week long update project throughout the conference, while we used it. (Anisha also complained Satra's bad CSS habits). The abstract planner is again available this year, and we hope to make a few improvements so that people can use it. One specific change will be the ability for people to save abstracts to buckets and share and load these collections. These should be save-able locally with a URL that one can share to regenerate that list of abstracts. Please provide suggestions for improvement and help us improve it.

PyNets 0.6 BETA

Submitted by Derek P.

PyNets PyNets is a tool for performing fully-reproducible network analysis of functional MRI (fMRI) and diffusion MRI (dMRI).

Projects:

  • Integration of additional tracking algorithms other than probtrackx. Dipy library interface? NDMG?
  • Build graph QC module; reliability indices?
  • Develop library of multilayer network statistics.
  • Collab
  • Write documentation

CBIG fMRI preprocessing pipeline: compatibility with BIDS format

Submitted by CBIG group

BIDS (Brain Imaging Data Structure) format provides a standard way for neuroimaging investigators to share their data and gains an increasing number of users. Our group is maintaining an fMRI preprocessing pipeline that allows flexible preprocessing order. However, currently this pipeline is not very compatible with BIDS format. During OHBM hackathon, we would like to modify CBIG preprocessing pipeline so that it can automatically handle input data in BIDS format, and also reorganize input data into BIDS format if they are not.

The steps to achieve this goal:

  • Understand the folder structure of BIDS format;
  • Identify what are the files needed for CBIG preprocessing pipeline and how to locate them in BIDS format;
  • Write scripts to grab the needed files and pass to current preprocessing scripts;
  • Test on some data in BIDS format;
  • Re-run some GSP (Brain Genomics Superstruct Project) subjects to make sure original functionality is not affected.

This upgrade will benefit people who are using (or plan to use) CBIG fMRI preprocessing code.

Improved surface/volume map translation for NeuroVault

Submitted by CBIG group

NeuroVault is an easy to use web database for brain statistical maps, atlases and parcellation maps. Currently, NeuroVault only accepts data that have been transformed into MNI space. With accurate surface/volume map translation, these data can also be utilised by people working on the surface (e.g. fsaverage space); surface space also provides better visualisation for cortical data. Our group recently published an accurate nonlinear MNI152/Colin27-fsaverage mapping method (Registration Fusion), which can be integrated to NeuroVault to provide surface/volume map translation.

The steps to achieve this goal:

  1. Identify software dependencies for the Registration Fusion (RF) project
  2. Find out where the RF functions should be added (e.g. what existing script would call the RF functions)
  3. Port the RF project to Python
  4. Do we also need to add visualization for surface data?
  5. Add test or example data if needed

This will benefit people who are using NeuroVault.

BIDS-Orthanc integration.

Submitted by Christophe Phillips

Introduction:

Orthanc is a professional open-source lightweight DICOM server. Basically it can turn any computer running Windows, Linux or OS X into a DICOM store (in other words, a mini-PACS system). Its architecture is lightweight and standalone, meaning that no complex database administration is required, nor the installation of third-party dependencies.

It is designed to improve the DICOM flows and to support research about the automated analysis of medical images. Quite uniquely Orthanc provides a RESTful API, such that it is possible to drive Orthanc from any computer language. It also features a plugin mechanism to add new modules that extends the core capabilities of its REST API. A Web viewer, a PostgreSQL database back-end, and a reference implementation of DICOMweb are currently freely available as plugins.

Summary:

So on the one hand, Orthanc is the best tool around to manage the flow of images originating from a MRI scanner but is designed to work with DICOM data. On the other hand, we researchers usually work with NIfTI images, ideally organised according to BIDS. It would be so cool and convenient to visually or automatically check your data online on the Orthanc server, then with a click (or 2...) import them in the right format on whatever machine you use to process the images.

Aim:

The project would consist in building an interface allowing the extraction of data, from a single subject of series of them, from an Orthanc server and convert these on the fly into BIDS-compliant NIfTI data. This would provide some form of GUI to easily integrate in a BIDS dataset data picked up from your lab-server or any other computer managing MR data with Orthanc. The solution could be built around existing tools such as Dcm2Bids.

Visualising network dynamics interactively on brain network

Submitted by Ying-Qiu Zheng

Motivation:

Network models have become one of the most popular areas in neuroscience in recent decades. Revealed as powerful tools to assess regional vulnerability, network longevity and resilience, communication efficiency and biological cost, etc., they have found wide applications in studies including the pathology underlying neurological disorders, brain wiring principle, and functional configurations. However, although comprehensive visualisation (e.g. Gephi) and analysis tools (e.g. BCT, igraph) do exist, interactive platforms for network dynamics visualisation specially suited to brain network are yet to be more extensively explored. Inspired by Echarts’ visualisation of airline/train routing (demo), we propose an analogous interactive framework that allows for real-time visualisation of dynamics on brain network/sphere interactively in which the brain coordinates serve as geographic information. Users can customise their triggering events, if there is any, updating rules and colouring scheme specifically. Such tools would help reveal more straightforwardly the trajectories of network dynamics as well as the roles of individual nodes and edges.

Goals:

  1. Wrap up classic network models, including linear threshold models and outing/navigation/spread models, as default
  2. Read user input of triggering events, updating rules of nodes and edges and project the corresponding events onto a 3D brain
  3. Preset several colouring themes

Genome-Wide Association Study Approach for Predicting Brain Disorders

Submitted by Samar S. M. Elsheikh

Genetic variations affect the susceptibility of complex diseases including brain disorders. The availability of both genetic patient's information and brain images provides the researcher with more opportunities to propose models and pipelines that allows integrating imaging and genetic information. However, researchers have to deal with many issues in this context:

  • Analyzing two heterogeneous datasets
  • Existence of co-linearity within each dataset
  • A need for a huge number of samples

Suggested solutions:

Using the following graph as a construct, in a Structural Equation Model settings.

Implementing Asymmetric CSD for Dipy (or something similar)

Submitted by Daniel Moyer

Recently some authors (not me!) created this awesome asymmetric local model for diffusion: paper (paywalled). Unfortunately, they haven't released code, and even if they do...it won't fit into our current dipy pipelines. If people are interested, we can try and implement it. It doesn't look too hard, so if there's interest, let's get into it!

Neuroscout: a cloud-based platform for flexible re-analysis of fMRI (naturalistic) datasets

Submitted by Alejandro de la Vega

We are working on a platform for rapid and flexible fMRI analysis, enabling researchers to test novel hypotheses by harnessing state-of-the-art feature extraction tools. We focus particular attention on experiments using intrinsically high-dimensional naturalistic stimuli, such as movies.

The primary goal is to launch an alpha version of Neuroscout, so that a new user could design and launch and analysis. This will require lots of testing, documentation, and bug fixing. If you'd like to give it a spin, let me know.

https://github.com/PsychoinformaticsLab/neuroscout (see help wanted issues)

pybids

PyBIDS is a Python library that makes it easier to access and manipulate BIDS (Brain Imaging Data Structure) datasets. It currently includes tools for querying BIDS datasets, extracting variables, specifying fMRI analysis models (via BIDS-Model), auto-generating partial methods sections, and more. There are lots of opportunities to contribute, including a number of issues that are suitable for beginners (writing documentation, creating better examples, etc.). If you want to help BIDSify the neuroimaging world, come hack with us!

NIDMResults

NIDM is a Semantic Web standard for representing all aspects of a neuroimaging experiment. NIDM Results specifically covers the output of statistical analyses, task fMRI specifically, and facilitates the upload of results to the NeuroVault. There are currently exporters for NDIM Results from SPM and FSL, but more are needed. The purpose of this project is to build more exporters, specifically for AFNI and BROCCOLI.

Lesion Segmentation Challenge - Win Prize!

Submitted by Lei Liew, Presented Beautifully by the Illustrious Spokesperson Cameron Craddock

Use this dataset: http://fcon_1000.projects.nitrc.org/indi/retro/atlas.html Descriptors of data: https://www.nature.com/articles/sdata201811 Develop cool really good machine learning algorithms for lesion segmentation! Get the best dice coefficient (with minimum above 0.6) and get a VERY COOL EXCITING PRIZE! Focus is on on COLLABORATION, not COMPETITION! Yay!

Participatory Science & 🧠🧠🧠

Submitted by Bastian Greshake Tzovaras

Open Humans is a participatory science project that puts the individual in the center of the research process. People can share their genomes, activity tracking data, GPS tracks and social media data to power innovative research that's driven by the participants and use their data right in Jupyter Notebooks thanks to a bespoke JupyterHub installation.

How can we tie up existing open neuro imaging databases into this eco system and start doing participatory science with 🧠🧠🧠?

Open tools for MEEG

Submitted by Athina Tzovara

The goal of this project is to create online resources for helping students or researchers transition towards the use of open and reproducible techniques for analyzing M/i/EEG data. As the culture around open* is gaining momentum, an increasing number of researchers in the field of electro- / magneto-encephalography are transitioning from close- to open-source techniques. However, this transition can be challenging, especially if it is not explicitly encouraged in one’s lab or institute culture, and because very often, online resources are sparse and have been originally developed for other fields. During the Brainhack we can use openly shared datasets and start by exploring and comparing existing toolboxes for analysing M/EEG data in python or R, identify strengths and weakness for each of them for different types of analyses. While working on these analyses we can prepare Python or R jupyter notebooks that can be eventually assembled as a tutorial for analyzing M/i/EEG data. Ultimately, we could work towards proposing this as an additional workshop for the data carpentry , which provides workshop materials for computational research in various domains, such as bioinformatics or social science, but so far have no materials for neuroscience.

Find out what we're working on on the project's repo!

5-Steps to More Reproducible Neuroimaging

Submitted by ReproNim

Developing a simple set of documents to help the community identify the little things they can do to improve their reproducibility, one step at a time... See here

Clone this wiki locally