Neurodata Tutors


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.


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.



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 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 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 the 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 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


Nick is a neuroscience graduate student with 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


Kaitlin is a Neuroscience PhD candidate with a background in cognitive science. Her research is focussed on identifying precise molecules and cell types participating in fear memory encoding and retrieval. In particular, her work involves the use of single cell transcriptomic techniques such as single cell RNA sequencing (scRNA-seq) and multiplexed fluorescent in situ hybridization (mFISH). As such, she is experienced in using R for the integration, dimensionality reduction, clustering, and identification of differential gene expression in scRNA-seq datasets. She furthermore is well-versed in the open-sourced image analysis software FIJI’s macro language (a Java-like language) and has developed user-friendly computational tools for mFISH analysis on this platform. Kaitlin furthermore has experience developing R Shiny Apps for sharing of simple, code-free analysis. In addition to her work, Kaitlin assists in the teaching of an R workshop for CAPS students at UBC alongside the DBC Tutorial. While her main language is R, she also has familiarity with Python and Java.

Analysis techniques/tools used:

  • Basic image processing – FIJI (IJM macro language)
  • Registration and Segmentation – FIJI (IJM macro language)
  • ImageJ macro creation – FIJI (IJM macro language)
  • Dimensionality Reduction (PCA, tSNE, UMAP) – R
  • Clustering (kmeans, hierarchical, Louvain) – R
  • scRNA-seq Analysis (with Seurat) – R
  • Visium Analysis (with Seurat) – R
  • R Package creation – R
  • Shiny App development – R


Nikita is a PhD Candidate in the Medical Genetics program, co-supervised by Dr. Wendy Robinson at BC Children’s Hospital Research Institute and Dr. Wan Lam at BC Cancer Research Centre. Her project focuses on characterising small RNAs in the human placenta and its cell types, while investigating the biological, clinical, and technical variables driving variation. She earned her BSc in Biomedical Genetics (2017) from Newcastle University, and her MSc in Genetics of Human Disease (2018) from University College London (UCL). Self-teaching herself R programming, she actively seeks out collaboration projects which measure different genomic data types to build up her experience. As the Co-Chair of the BC Children’s Trainee ’Omics Group (TOG), she organizes and leads workshops and support sessions at this data analysis and bioinformatics support group. Ultimately, she’s interested in applying her knowledge in elucidating how ancestry and ethnicity drive the genetic differences that exist between populations, and how we can better assimilate those differences towards providing truly personalized and individualistic diagnoses and treatment. Check out her website and GitHub!

Analysis techniques/tools used:

  • Raw sequence data (FASTQ) to genome alignment – BASH, Linux, IGV 
  • small and messenger RNA-seq: raw data → pathway analysis – R/RStudio/RMarkdown 
  • DNA methylation-small RNA expression correlation – R 
  • Single-cell RNA-seq (scRNA-seq) – R 
  • Polygenic Risk Scores (PRS) – BASH, Linux, R, PLINK, SNP data 
  • PRS-serum biomarker correlation – R (GEMMA package
  • Genomic heritability estimation  – BASH, Linux, R, Popcorn 
  • Trans-ethnic genomic correlation – BASH, Linux, R, Popcorn 
  • Data wrangling + Exploratory Data Analysis (PCA/UMAP, hierarchical clustering, etc.) – R 
  • Shiny web application development – R 


Will is a PhD candidate in UBC’s Bioinformatics Training Program, co-supervised by Dr. Sara Mostafavi and Dr. Jessica Dennis. He received a BS in Computational Biology at Carnegie Mellon University in 2017, pursuing research in phylogenetics under Dr. Russel Schwartz.  His research investigates the role of genetic and non-genetic factors in complex traits and disorders. In particular, he investigates how the genetic regulation of DNA methylation and gene expression is affected by sex and environmental exposures. This involves integrating a variety of techniques from statistics, genetic epidemiology and computer science in order to better understand the function of genetic loci that increase disease risk. As a co-chair and past study group leader with the Trainee Omics Group (TOG), he has helped to organize and conduct several tutorials regarding everything from introductory concepts in R, differential methylation analysis, and gene set enrichment analysis.

Analysis techniques/tools used:

  • Plink for quality control, processing, and hypothesis testing with genotyping data 
  • R programming (tidyverse, data.table, Several Bioconductor packages including: matrixeQTL (Quantitative trait loci analysis), Limma, minfi, PRSice 
  • Bash scripting (PBS and SLURM scheduling systems, GNU-Parallel, awk) 
  • Python (Snakemake (i.e. bioinformatics pipeline creation), Pandas, BeautifulSoup for Web Scraping, Regular expressions) 
  • SQL 
  • Anaconda for package installation 
  • GitHub 
  • Singularity containers for managing software 
  • Linkage disequilibrium score regression (heritability and genetic correlation) 
  • PrediXcanCEWAS (and related methods for transcriptome wide association studies) 
  • GCTA 
  • Inkscape 


Hannah is part of the Data Champions tutor team from the University of Victoria. She is a PhD candidate in the lab of Dr. Brian Christie. Her thesis work is on prenatal cannabis exposure and its affects on the developing hippocampus. She uses microscopy, electrophysiology, and behaviour in a rat model to study these brain changes. In her spare time, she likes hanging out with Autumn, her cat, and playing Dungeons and Dragons.


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.


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.