Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Welcome to the wiki of the OHBM hackathon 2017! Please post a short description of your projects below.
Table of contents
The projects are ordered based on when participants added them. Here's an alphabetical list if you're here and browsing. Make sure to add your own when you update this wiki page.
- AFNI interfaces in Nipype
- Alcoholism Analysis Done Right
- Atlas of the subcortical auditory system
- Bidirectional jupyter widgets for neuroimaging and statistical visualisation
- BIDS Derivatives for network neuroscience
- BIDS-ify BDPDB
- CogFusion and gFusion
- Expanding Mindcontrol - collaborative web based viewer for QC and editing FreeSurfer recons
- heudiconv "upgrades"
- Implementation of BIDS-model transformations in pybids
- Machine learning tutorial
- ME-QC: Quality Control for Multi-Echo ICA Processed Data
- Mozilla Working Open Workshop at OHBM2017
- Multi-objective Approach for ROI study of Schizophrenia using fMRI data.
- Multivariate analyses and resampling inference for neuroimaging in R (MARINeR)
- Neuroscout: a cloud-based platform for flexible re-analysis of naturalistic fMRI datasets
- Nipype regression testing with neurodocker, Testkraut revival
- NITRC-CE monitor tool expanded to monitor NiPype workflows
- pySTATIS: Multivariate analysis of individual differences
- Simple Re-executable Publication - Part 2
- TBN Python module to assist with "reactive" output
- MNE-DCM: Dynamic Causal Modelling for MNE and the nipy ecosystem
Machine learning tutorial
This project aims at creating an introduction to a real-life machine learning problem in neuroimaging, using nilearn. The current tutorial is here: https://github.com/KamalakerDadi/Tutorial/tree/master/BrainHack/Paris_2017
The hackpad with a more detailed description of the project, milestones and contributors is here: https://hackpad.com/Hacking-101-machine-learning-tutorial-DO7s0E1jIUD
Join the channel #mltutorial on the brainhack slack to follow or join the discussion on this project.
Pradeep Reddy Raamana
neuropredict is a new open source software being developed to automatically assess the predictive power of commonly used neuroimaging features (such as resting-state connectivity, fractional anisotropy, subcortical volumes and cortical thickness features). The goal is to automatically read the relevant features from the processed output of popular tools, including but not limited to, OPPNI, FSL, DTIstudio, Freesurfer, MRtrix and various BIDS apps and present a comprehensive predictive analysis report (see here) on a given dataset, in a plug and play fashion. The focus of neuropredict is to standardize and automate the predictive analysis to let the user to focus on building new and interesting features, and compare them. Hence we aim to support a wide variety of input formats for features (arbitrary user input by via CSVs and other popular ML formats). It is mainly aimed at users interested in identifying discriminative features, predictive brain regions, evaluating their predictive accuracy and performing statistical model comparison (each of which are non-trivial). The target user has datasets and hypotheses but lacks the necessary machine learning, programming and the technical skills needed to produce such a report. However, it is also beneficial to advanced users also whose focus is not on predictive modeling, but would like to complete their analysis by adding a predictive component to their standard analysis.
Note: There is no redundancy in the functionality and large audience of neuropredict with other similar packages, such as nilearn, pymvpa, PRoNTo and PyML etc. It serves a very different purpose and a different audience compared to the older software, which are albeit powerful and general, almost all of them require programming as well as domain expertise to learn and utilize them. The user may indeed use them to produce useful features, whose predictive power could be assessed effortlessly with neuropredict.
Join the neuropredict BrainHack channel to follow and contribute to the development.
Bidirectional jupyter widgets for neuroimaging and statistical visualisation
Katja Heuer & Roberto Toro
This project aims at creating bidirectional jupyter widgets for neuroimaging, bringing your results into a 2D or 3D interactive canvas, and being able to communicate selected data back to your code.
Join our channel #jydgets on the brainhack slack channel :)
Multivariate analyses and resampling inference for neuroimaging in R (MARINeR)
Jenny Rieck & Derek Beaton
MARINeR is an R-package designed for multivariate analyses with resampling inference testing for neuroimaging data (fMRI; fMRI + behavior; fMRI + structure). All multivariate techniques are based on the singular value decomposition, including PCA, MDS, PLS, and MFA. Resampling strategies will include permutation, bootstrap, and split-half resampling.
Our current repository lives @ https://github.com/derekbeaton/BrainHack_TO_2017
Join our slack channel #mariner for updates!
moving neuroscience to the cloud like a herd of cats (http://www.dictionary.com/browse/clowder[don't get it?])
Clowder is a tool which aims to make performing neuroscience computation more accessible, scalable, and portable. Given a set of installable instructions (such as a Docker container/BIDS-App), and a descriptive set of I/O specifications (such as a Boutiques descriptor), Clowder will be able to take any tool and wrap for scalable deployment on the cloud with a single command. Storing data in Amazon's S3 and launching computation through Amazon's Batch, Clowder will enable neuroscientists with limited local computational resources or expertise to process their data in the cloud easily with a variety of tools.
The current repository for this project lives @ https://github.com/gkiar/clowder
The current Dropbox Paper (aka Hackpad) file containing a project description, plan of attack, contributors and more lives @ https://paper.dropbox.com/doc/Clowder-WVCurcGb9jHSZRiUlSILd
Join our slack channel #clowder to get involved!
Matteo Visconti di Oleggio Castello & Yaroslav O. Halchenko
The goal of DueCredit is to provide a framework to automatically collect references for software and methods used in analyses pipelines, with minimal requirements for the user. DueCredit is already being introduced in Python packages (e.g., PyMVPA, Nipype). We have a series of easily actionable projects within DueCredit that can be completed during the hackathon (see https://github.com/duecredit/duecredit/issues?q=is%3Aopen+is%3Aissue+label%3Agood-for-hackathon), requiring a range of programming experience levels (from novice to advance pythonistas), and making it a great project to work on during a hackathon.
Dan Kessler, Matteo Visconti di Oleggio Castello, Sue Kulason, Ami Tsuchida, Luka Ruzic, Robert Welsh, & Jasper van den Bosch
CogFusion aims at creating a recommendation system for NeuroVault using Cognitive Atlas labels. The core algorithm was first applied to discover new similarities between drug and diseases. We started implementing it (https://github.com/mvdoc/gfusion), but it still needs work as it requires a series of optimizers that are currently not implemented in Python packages. This could be a very good project for more advanced participants who are familiar with numerical computing and optimization, or want to learn more about it.
Yaroslav O. Halchenko & Matteo Visconti di Oleggio Castello
We've been recently working on heudiconv to adapt it for our needs at the Dartmouth Brain Imaging Center. Heudiconv converts DICOMs into NIFTIs using configurable heuristics, and we adopted it to automatically convert the DICOMs from our scanner into BIDS format, in order to facilitate the use of BIDS apps and later sharing of datasets both within and outside our department. The main goal of this project would be to exploit the presence of the main developers at the hackathon (Satra Ghosh, Michael Hanke, Yarik, et al.) to introduce clean changes to the master branch that can be used by other sites, for example the monitoring tool we created to automatically convert DICOMs, or the numerous customizations (...breaking the API...) we added (see https://github.com/dartmouth-pbs/heudiconv/tree/enh-dbic2)
AFNI interfaces in Nipype
Matteo Visconti di Oleggio Castello
In our lab we mostly use AFNI, but not all interfaces are implemented in Nipype, in particular 3dDeconvolve and 3dREMLfit. The specific goal of this project would be to implement them into Nipype with testing coverage. This would be a small but useful project for the neuroscience community.
Multi-objective Approach for ROI study of Schizophrenia using fMRI data.
Region(s) of Interest (ROI) - based analysis to inspect functional changes in predefined region(s) in schizophrenic brain. Schizophrenia affects different regions of the brain which subsequently causes hallucination and delusion. Localization 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. This project will throw some light on the region-wise analysis and their individual working condition in the brain having schizophrenia.
Objective of the Project:
- ROI study of affected brain in schizophrenia using fMRI data to investigate the functional changes in each region.
- Identification of the most affected region(s) in Schizophrenia
- To develop a decision model using Multi-objective optimisation evolutionary approach.
We will be using some pre-defined atlases on FBIRN Phase II Data repository. With due acknowledgment, I have attached the PreProcessed(Direct Normalisation upto smoothing) Auditory Oddball task dataset for 4 runs of 1.5T fMRI dataset of 34 schizophrenic and 34 healthy subjects. Also attached the Contrast Maps for each run of the data after applying GLM approach. Repository with data and atlas can be found here: https://github.com/IndraChatterjee/fMRI-ROI-analysis-of-Schizophrenia
Atlas of the subcortical auditory system
The overall goal of this project is to improve structural, functional, and diffusion tractography definitions of subcortical auditory pathway structures and connections. To do this, we aim to develop an atlas of these structures based on high resolution, high quality anatomical MRI and test it on publicly available data sets.
The first couple steps will be making substructure definitions on high resolution images and tractography on high res DWI. If you are interested in brainstem anatomy, the auditory system, tractography, or like/have access to high res imaging (especially post mortem!), let's work together!
Jason Kai, Ali Khan
This project seeks to extend the current functionality of MRIQC, originally developed by the Poldrack Lab, which provides image quality metrics (IQMs) for structural T1-weighted and functional MR images. DWIQC aims to evaluate diffusion weighted images and report on analogous IQMs for these images. This project will be implemented following that of MRIQC - a Nipype workflow implementation and adaptation of BIDS-App standards. Join us on slack at #dwiqc
Alcoholism Analysis Done Right
This project seeks to promote the use of DCM for ERP-based group studies classification using a publicly available dataset - the UCI Machine Learning Repository EEG dataset (https://archive.ics.uci.edu/ml/datasets/eeg+database). It contains 122 subjects of 64 channel EEG data in a delayed matched to sample task from Henri Beglieter's Neurodynamics Lab. Since the data has already been epoched, we will focus on the comparison the standard comparison of alternative DCM models and the use of DCM parameter estimates as inputs to machine learning for group classification. Since no MRI is available for the subjects, we will use a standard space BEM head model (default in SPM). The resulting DCM modeling will be used in the near future for a Paris Saclay Center for Data Science ramp comparison with non-DCM-based classification methods.
TBN Python module to assist with "reactive" output
Yaroslav O. Halchenko and everyone else welcome to join
It is quite often desired to provide standard output from a script in a consistent (e.g. tabular) layout whenever not all entries are known ahead of time and some entries might either have values changing or affecting previous lines. E.g. it could be that underlying process either async providing values back for display later in time or just that values for already presented entries pulled again from time to time (e.g. status of a job). Or a simple use-case -- values for later output lines should adjust presentation of previous lines (e.g. a column should be expanded in the tabular view). The idea is to use basic ANSI lines navigation/editing commands to adjust previously presented output. It should be similar in vein to how e.g. "docker pull", multiple tqdm progress bar are managed on the screen (e.g. try doing
datalad install -g -J4 ///labs/haxby/raiders/ to see example, or how "tig" updates author field in the tree view. This module could then be used as a helper for various Python projects demanding "reactive" standard output.
It might as well be that such module already exists, so if you know some -- please share pointers.
NITRC-CE monitor tool expanded to monitor NiPype workflows
The NITRC Computational Environment (http://www.nitrc.org/ce) is rolling out a new feature in its next release that allows users to monitor long running processing remotely. Users can get the status, start, stop, and open output logs of workflows registered to the monitoring system. The project for the hackathon is to expand this feature to include monitoring the running states of NiPype workflows.
David Kennedy, Satra Ghosh, Yaroslav O. Halchenko, JB Poline, and everyone else who wants!
Following up on a 'successful' Simple Re-executable Publication project from the 2016 OHBM Brainhack, we continue upon our quest to 'make publications great again'. Given the idea that future publications should include the following supplementary information: 1) the raw data; 2) the analysis workflow; 3) the operating system description; and 4) a complete set of results; we seek to improve our example. We expect to: expand the query and data representation (multiple data sources, NIDM-E markup); execute a more complex workflow that includes a between group statistical test (so that test-statistics can be an outcome for evaluation); utilize a workflow that runs two (or more) different tools that are nominally supposed to generate the same outcome metric, etc. All of this will be undertaken with an eye to simplifying the approach of how to do this for the typical neuroimaigng researcher end-user.
Implementation of BIDS-model transformations in pybids
Tal Yarkoni, Alejandro de la Vega, Chris Gorgolewski, Satra Ghosh...
A draft extension of the BIDS standard proposes a standardized representation of event transformations (e.g., scaling event amplitudes, dummy-coding continuous predictors into discrete ones, etc.). The pybids library contains various tools for manipulating BIDS projects. In this project, we'll continue ongoing work to implement the draft transformations spec in pybids so as to enable fully automated application of complex transformations encoded in a compact JSON spec. This will allow researchers to create much more sophisticated design matrices by manipulating behavioral data and/or event files without having to write any new code.
Dan Lurie and anyone else who wants to help!
BDPDB is a browser-based application for managing, browsing, and searching demographic information and neuroimaging data from patients with brain injury. I (Dan) want to add functionality to BDPDB to make use of the BIDS file structure and JSON sidecar files. The goal is to get to a point where instead of adding scans one by one, users can just tell the app where their BIDS raw data and derivatives directories are, and the app will automatically find any scans (and scan metadata) associated with a subject label.
BIDS Derivatives for network neuroscience
Dan Lurie and anyone else who is interested!
I'd like to work with others who do network analysis and graph theory to discuss ideas for including things like extracted time series, correlation matrices, community partitions, nodal properties, etc. in the BIDS Derivatives spec.
Mindcontrol- collaborative web based viewer for QC and editing FreeSurfer reconsExpanding
Anisha Keshavan, Lee Tirrell, and you?
FreeSurfer is the most widely used software for modeling cortical surfaces, capable of providing a complete neuroanatomical description of the brain from T1 weighted images through both surface based and volume based processing streams. However, manual invervention is necessary to QC results or when certain stages of the pipeline fail, especially when analyzing pathological brains. When analyzing large datasets this process may become error prone. To help organize inspection and editing of FreeSurfer output among collaborators, Mindcontrol was developed as an open source web-based tool for quality control of neuroimaging pipeline outputs.
During this brainhack, we aim to extend Mindcontrol in the following ways:
- Create a Docker container encapsulating all of the components of Mindcontrol, to make it easier to deploy.
- Continue development of Nipype workflows to automatically prepare FreeSurfer output to be viewed within Mindcontrol.
- Create workflows to re-run various FreeSurfer processing steps after manual inteventions have been made in Mindcontrol
- Extend documentation to make it easier for other users to set up Mindcontrol for their own data
Nipype regression testing with neurodocker, Testkraut revival
Dorota Jarecka, Satra Ghosh, ...
Creating the framework for regression tests of nipype pipelines. The nipype pipelines will be run within docker containers created using Neurodocker. DataLad will be used to archive expected output from the regression tests. Reviewing Testkraut project, the framework that can help to facilitate statistical analysis of test results.
MNE-DCM: Dynamic Causal Modelling for MNE and the nipy ecosystem
John Griffiths et Friends
Dynamic Causal Modelling (DCM) is a framework for modelling (primarily) neuroimaging data signals using biophysically-based neural population models, with an emphasis on (small) networks and estimation of effective connectivity. DCM lives inside SPM, somewhat confusingly spread across multiple sub-toolboxes, and following the standard SPM convention of being cryptically coded and poorly (if at all) documented. This project aims to liberate DCM from these squalid matlab shackles, and (to mix metaphors somewhat) unleash unto it the beast that is the mne-python and broader nipy development community. A subsidiary aim is to make some of the better parts of the DCM optimization machinery available to the neurophysiological modelling and neuroinformatics platform The Virtual Brain (TVB).
There’s really two components to DCM – the neural modelling part, which (for M/EEG) are generally variants on the second-order linear filter-type model of Jansen & Rit, and the model estimation part, which use Variational Bayes E-M type algorithms. For this project we’ll focus on the neural models described in spm_dcm_erp.m, and the generic VB-inversion routine spm_nlsi_N.m, plus the related helper functions above and below these two. We will push hard, and aim to have a functioning MNE-Python ERP-DCM implementation by the end of the hackathon. The acid test shall be to be able to run the DCM ERP tutorial in the SPM manual.
There should be many interesting questions that come up along the way, to do with improvements and general integration with other nipy and generic python libraries. Can we make use of other python libraries such as scikit-learn for parts of this? Would the VB-inversion routine be useful for fitting non-DCM models in MNE? Etc. etc. I’m hoping to get lots of feedback and good ideas from the imaging community on these Qs.
Slacking on #mne-dcm
Automated network analysis for rsfMRI-dMRI
Derek P., Aki, Charles, Andrew, Dan https://github.com/dpisner453/PyNets
PyNets automates functional and diffusion-weighted MRI network analysis in python using the Networkx package.
Problem: Network analysis packages for neuroimaging are not implemented in python, preventing them from using the power of nipype.
Solution: In PyNets, we harness the power of nipype, nilearn, and networkx to automatically generate a range of graph theory metrics on a subject-by-subject basis.
More specifically: PyNets utilizes nilearn and networkx tools in a nipype workflow to automatically generate rsfMRI networks (whole-brain, or RSN's like the DMN) based on a variety of atlas-defined parcellation schemes, and then automatically plot associated adjacency matrices, connectome visualizations, and extract the following graph theoretical measures from those networks (both binary and weighted undirected versions, with a user-defined thresholding): global efficiency, local efficiency, transitivity, degree assortativity coefficient, average clustering coefficient, average shortest path length, betweenness centrality, degree pearson correlation coefficient, number of cliques
ME-QC: Quality Control for Multi-Echo ICA Processed Data
Elizabeth DuPre and you!
Building off the MRI-QC framework, create quality control metrics for multi-echo ICA (ME-ICA) preprocessed data. Join us on slack at #meqc
Neuroscout: a cloud-based platform for flexible re-analysis of naturalistic fMRI datasets
Alejandro de la Vega, Tal Yarkoni + more!
Although there are many openly available datasets, they are infrequently reused and only a small subset of all possible research hypotheses are ever tested. Turns out fMRI is hard! Neuroscout aims to provide a rapid and flexible platform for fMRI analysis, allowing researchers to go from hypothesis to shareable results in a matter of hours, not months.
Specific goals which are in progress:
- A flexible BIDS-y nipype workflow that can be fully specified without editing the workflow via JSON configuration files
- Command line interface to download data and software requirements and execute the workflows in the cloud or on local machines (thanks to DataLad and NeuroDebian!)
- Web front-end for Neuroscout.
Working Open Workshop at OHBM2017Mozilla
- Facilitator: Kirstie Whitaker, twitter: @kirstie_j
- Resource home page: https://whitakerlab.github.io/WOW-OHBM2017
- Description: I'm finishing my 10 month fellowship as a Mozilla Fellow for Science and I'd love to share the amazong resources that I've benefitted from: Mozilla's Working Open Workshop. I'd love to have you join in! 😄 🎈 🍰 Everyone at the hackathon is already an open leader and I hope that I can help you level up your projects by sharing the experiences that Mozilla have supporting open leaders. You can find all the resources linked from the WOW-OHBM2017 home page.
[pySTATIS]: Multivariate analysis of individual differences in connectivity
- Project homepage: https://github.com/mfalkiewicz/pySTATIS
- Description: Data-driven, individual-level decompositions of connectomes lead to different solutions for each subject. The goal is to implement methodology that makes these individual-level maps comparable.
- TODO: Documentation, tutorials, testing/validation
[BASC]: Bootstrap Analysis of Stable Clusters
Aki Nikolaidis & Pierre Bellec
- Project homepage: https://github.com/AkiNikolaidis/C-PAC/tree/BASC_refactor
- Description: BASC is a technique that allows you to assess the stability of your functional image parcellations at the individual level by performing a circular block bootstrap over the timecourse. BASC also creates group level functional parcellations, and by bootstrapping across the individual-wise stability maps, allows you to assess how representative your group level maps are of the individuals in your cohort. Importantly, this method is wholly data derived and does not place group level constraints to extract the individual level parcels.
- TODO: At BrainHack we are working on two features: (1) Outputting individual level parcellations for individual-level graph theoretical analysis in PyNets. (2) Refactoring code to speed up BASC calculations.
Estrid Jakobsen, AmanPreet Badhwar, Sophie Adler
Additional Collaborators: Jonathan Lau, Ali Khan, Katie Bottenhorn, Andrew Doyle, Greg Kiar, Aki Nikolaidis, Julie Bates, David Kennedy
Scientific measurements are often proxies for the biological processes we want to investigate, and neuroscientific tools are no exception. In the field of functional neuroimaging, we often refer to changes in brain activity when what we’re actually measuring are changes in the magnetic properties of blood flowing through the brain. While there is certainly value in the use of this particular proxy, it is important not to lose sight of the source of the signal. The discovery of how blood circulates throughout the body was perhaps the most significant medical breakthrough of the seventeenth century. Blood is what gives us life by connecting our hearts and our brains and is a common denominator for all humanity.
The artwork entitled "Deep Blood" is the result of a collaborative science and art project that took place during the OHBM Hackathon. It was created using the Deep Style algorithm, a more advanced version of the original Deep Dream approach that uses its own knowledge to interpret an image’s style and transfer it to another image. Initially Deep Dream was invented to help scientists and engineers to see what a deep neural network is seeing when it is looking in a given image, but it has recently been adopted as a method for generating psychedelic and abstract art.
Deep Blood presents an artistic interpretation of brain vasculature by displaying macro-level susceptibility-weighted imaging in the style of micro-level immunohistochemistry.