Neurodata Tutors

UPDATE! Coding Challenge Complete, Neurodata tutors selected!

The Dynamic Brain Circuits coding challenge was held Mar 27, 2020. We had 6 challenges from 5 labs and 17 people taking part in the event via slack. Given the talent of those working on the challenges and the anticipated intensity of data analysis to occur during the period of social distancing and research curtailment, we offered 5 positions as DBC Neurodata tutors. Bios and emails of the tutors are below.

New online Databinge, Friday's starting 12:30pm

We have re-booted Databinge as an online meeting to tackle coding and new approaches to data analysis. The team will be online via slack and will breakout in to Zoom meetings to discuss points of interest in more detail. Contact a tutor via email (see bios below) for slack invites and zoom addresses. We recommend labs prep OSF projects in order to share data and code. Info on using OSF can be found here.

Tutor Bios

Abhijit Chinchani (Woodward lab)

Abhijit is an electrical engineer by training, with a strong drive to understand the brain. He uses his quantitative skills in signal processing and machine learning to solve convoluted problems in cognitive computational neuroscience. He is currently a graduate student in the Department of Bioinformatics at UBC. Under the guidance of Dr. Todd Woodward, he is investigating the physiological and behavioral effects of transcranial alternating current stimulation (tACS). His work involves using brain imaging techniques like EEG, MEG, and fMRI and developing analysis workflows to process the data. These include preprocessing, dimensionality reduction of the imaging data, and prediction. He is also involved in designing psychophysical experiments and analyzing behavioral data. Although most of his coding experience is in MATLAB, he also has some experience with Python, C, and Java. Abhijit's email

Analysis techniques/tools used:

  • Statistical control of artifacts in dense array EEG/MEG studies (SCADS) - MATLAB
  • Unsupervised dimensionality reduction techniques like PCA and ICA - MATLAB
  • Supervised dimensionality reduction
  • Partial least squares-discriminant analysis (PLS-DA) - MATLAB
  • Denoising Source Separation (DSS) using joint decorrelation - Noise toolbox, MATLAB
  • Gaussian Process Factor Analysis (GPFA) - MATLAB
  • Constrained PCA - MATLAB
  • Multitaper spectral analysis - Chronux Toolbox, MATLAB
  • Multidimensional signal detection model - MATLAB
  • EEGLAB, Fieldtrip - MATLAB
  • Psychtoolbox - MATLAB
  • Machine learning models like - SVM, KNN, decision trees, neural nets - MATLAB, Python

Pankaj Gupta (Murphy Lab)

Pankaj is a graduate student in Neuroscience at UBC. He is interested in building computational and quantitative tools to understand Brain functions and novel interventions in neurological disorders. He did Bachelor's in Computer Science and MSc. in Interactive Technologies and had worked in industry as a software developer as well as a research engineer in academia, prior to joining UBC. He has experience working with open-source tools (OpenCV, EEGLab, OpenGL) and has contributed to some, such as HOMER. He has experience working with programming languages (Python, Matlab, C#, C++, shell scripts) on Windows and Linux platforms. At UBC, he works with Dr. Timothy Murphy on a project aimed to study how to induce neuroplasticity in neo-cortex in mice. Calcium imaging is his primary tool to record neural activity but he has some experience with EEG and NIRS data as well. Apart from these, he is interested in working with and learning about other imaging techniques such as TMS, fMRI and ECoG. Pankaj's email

Analysis techniques/tools used:

  • Programming Languages: Python, Matlab, C#, C++, VC++ (Win32API), C (on POSIX compliant OS), Python, SQL, HTML, CSS
  • Raspberry-Pi programming with hardware devices and GPIO (Python)
  • DeepLabCut for tracking (Python)
  • Audio feedback generation and mapping to a range of inputs ( Python)
  • Image processing using OpenCV (C++, Python)
  • Augmented Reality and visualizations using OpenGL (C++)
  • Electroencephalogram data processing using EEGLab (Matlab)
  • Near-Infrared Spectroscopy data analysis using Homer toolkit (Matlab)
  • Microsoft Kinect (Depth Sensor) programming (C++, C#)
  • Nintendo Wiimote Programming (C#)
  • Microsoft .NET (C++, C#)
  • Virtualization (C#, C++)
  • Computer Networking (C++, C#, Python, Matlab)

Peter Hogg (Haas Lab)

Peter is a graduate student working in the Haas lab, his background is in cell and developmental biology. He uses Xenopus laevis tadpoles to study early neuronal development and dendritic arborization. Peter has a particular interest in bioimage informatics and image analysis. His experimental work makes use of in vivo two-photon imaging to collect structural data of single neurons during development. Additionally, he performs calcium imaging experiments of entire populations of neurons. As a primarily self-taught coder, he has experience using Python to create data analysis pipelines to help automate processing of experimental data. These include novel ways to visualize microscope images and volumes, using libraries to extract regions of interest from microscope data, analysis of calcium imaging data, statistical analysis and figure creation. Additionally, he has some previous experience with R and is currently using Matlab to control his microscope hardware. Peter's email

Analysis techniques/tools used:

  • Survival Analysis (R and Python)
  • Image Processing (Noise Reduction, Deconvolution, etc) (Matlab and Python)
  • Descriptive Statistics (R and Python)
  • Calcium Imaging Analysis (Python)
  • Automated Segmentation and Pixel Classification (Python)
  • Neuron Tracing and Drawing Software (Python)
  • ScanImage (Matlab)
  • Hardware Control/Raspberry Pi GPIO (Matlab and Python)
  • Multidimensional Data Visualization (Python)

Adrian Lindsay (Seamans Lab)

Adrian has a passion for the future of technology, in particular the future of our efforts to understand human intelligence, artificial intelligence and the interface between humans and machines. He has combined his mixed background in computer and animal science, and is currently pursuing a PhD in computational neuroscience under the guidance of Dr. Jeremy Seamans at the UBC DMCBH. His work involves developing computational models of the function of neural ensembles, their relation to behaviour, and applications of machine learning algorithms in neural encoding, computer vision, and other multi-data-stream analysis paradigms. In addition, he regularly works as a TA for the department of Computer Science, and has experience working in and teaching a variety of coding languages, including Python, MATLAB, Java, Javascript, C and C++. Adrian's email

Analysis techniques/tools used:

  • Artificial Neural networks for unsupervised, supervised, and semi-supervised learning (regression and classification)
  • Convolution NN models for computer vision and neural encoding
  • Recurrent NN for neural encoding and behavioural prediction
  • Phase space analysis for signal processing and behavioural classification
  • Global (PCA, ICA, etc.) and local (T-SNE) dimensionality reduction and data preprocessing methods
  • Unsupervised clustering (mixture models, watershed transforms, etc) for data exploration and discovery
  • Ensemble and bagging machine learning models for classification and regression (SVM, Random Forests, etc)
  • DeepLabCut – automated tracking of features from video: used to track features on lab animals during experiments
  • Motion Mapper – automated behaviour classification from video for fruit flies
  • B-SOID – automated behaviour classification in open field mouse experiments

Nicholas Michelson (Murphy Lab)

Nick is a neuroscience graduate studentwith a background in Biomedical Engineering. He currently uses in vivo wide-field imaging of mesoscale cortical calcium activity to investigate cortex-wide activity dynamics in the mouse brain during social interaction. His previous research incorporates analysis from multiple data acquisition modalities, including 2-photon imaging of neuronal calcium indicators, behavior video data, implanted electrode recordings, and human EEG recordings. His primary coding experience is in MATLAB, but he also has some experience with Python. Nick's email

Analysis tools and techniques used:

  • General image/signal processing – MATLAB, Python
  • Dimensionality reduction – PCA, NMF – MATLAB
  • Clustering – k-means, Gaussian mixture models, Louvain community detection – MATLAB
  • General linear models – ridge regression, lasso regression – MATLAB
  • Machine learning – Naïve Bayes, kNN, neural networks – MATLAB
  • Network analysis – MIT Strategic Engineering Network Analysis Toolbox – MATLAB
  • Ultrasonic vocalization detection – DeepSqueak Toolbox - MATLAB
  • Multitaper spectral analysis – Chronux Toolbox – MATLAB
  • Unsupervised discovery of temporal sequences in high-dimensional data – seqNMF – MATLAB

The Challenges

Individuals or labs will identify neurodata such as images, videos, genetic/genomics data, or electrophysiological recordings from animal or human sources, and deposit it using Open Science Framework.

Open Science Framework is accessible with your Campus Wide Login. For assistance, please email

The challenge will be to visualize and quantify the signal and apply appropriate hypothesis testing or report measures of effect size. Participants (individuals or labs) submitting a challenge will also provide a sketch of a possible solution (pseudocode, flow chart, block diagrams, existing code repositories tackling related issues) in order to facilitate the refinement and selection of challenges. 

  • Data volume should be the kept to the minimum needed to support the challenge due to the limited time available. 
  • Data should be from at least two experimental conditions where a hypothesized difference in signal exists. 
  • Data must include appropriate metadata to enable comprehensive analysis and interpretation.

Challenges will be posted on the cluster website at the beginning of the session (schedule to be confirmed).

Students will be given 60 minutes to select and work independently on a solution using Matlab, Python, R or other tools.

Members from the labs originating the challenges should be on hand to interact with the students selecting their challenge. After 60 minutes, each participant will be given up to 10 minutes to present their strategy and show their results to the audience and judges using their computer.

Food and drinks will be provided.

Supporting Documentation

Students will also be asked to provide a current CV and a one-page personal statement describing their teaching philosophy and experience with coding, version control, open science, etc. 

Final selection of the DBC Neurodata Tutors will consider performance in the DBC Coding Challenge, CV, personal statement and the overall synergy of the resulting Neurodata tutor team.