Software and workflows#
Software tutorials#
Neuroscience workflows#
Mini-projects#
Mini-project 1: GUI-based quiz system
Develop an adaptive learning tool for a Math topic (such as solving quadratic equations), or a Python topic (such as list manipulation), or a Physics topic (such as estimating motion of a projectile).
Requirements:
The tool should be a Python program and should include a graphical user interface (GUI). The user interacts with the program via UI buttons.
The program should have a tiny database of questions from 3 difficulty levels (easy, medium, hard). When the user starts the program, they are presented with questions from the “easy” category. Once the user answers 3 “easy” questions correctly, the program should start showing “medium” questions. After 3 correct responses, the program should switch to the “hard” questions. The database should contain at least 5 questions in each category.
Mini-project 2: Automated EEG data analysis
Develop an automated system for EEG data analysis and visualization.
Get familiar with what EEG data are, electrode positioning systmes and the notion of a montage. Summarize advantages and disadvantages of EEG recordings and differences between bipolar and referential montages.
Find any public EEG dataset (e.g., Emotion Recognition using EEG and Computer Games, EEG Brainwave Dataset: Feeling Emotions) and implement the following workflow:
The user selects the type of montage (referential or bipolar) and provides two frequency values (low and high).
The program re-references the data according to the type of montage and applies a band-pass filter using the provided frequencies.
The program plots the voltage trace of each processed channel in a dashboard format (i.e., all channels over a grid) and displays aggregate characteristics of each trace (e.g., mean, variance, Fano factor, etc.)
(Optional) The program predicts some target variable using the data and displays prediction results.
You can use this notebook, which explores the Computer Games dataset from above, for reference, but you are not required to implement the prediction model.
Note: public EEG datasets can lack descriptions and can be tricky to process – you might need to mine the dataset’s description to understand which column corresponds to which electrode, etc. However, if you find that a dataset misses crucial information, it might be wiser to switch to a different dataset early.
Mini-project 3: Classification of accelerometer data using the micro:bit
Develop a workflow for classifying accelerometer data recorded with the micro:bit.
Study the Movement data logger tutorial to learn about accelerometer data recording with micro:bit. These additional tutorials might be useful: Python data logger, Sensitive step counter, User guide – Data logging.
Create a MakeCode or Python script to record accelerometer data from the micro:bit to your PC. You can transfer the data either via a wire or through a radio connection.
Record the following movement sequence:
Hold the micro:bit steady for 5 seconds,
Shake the micro:bit for 5 seconds,
Hold the micro:bit steady for 5 seconds,
Shake the micro:bit for 5 seconds.
You should get approximately 20 seconds of recorded data.
Use this notebook to estimate a model for classifying whether the micro:bit is being held steady or being shaken. The notebook uses logistic regression as an example, but you are free to use any other model or create a rule-based classification system. Report the classification accuracy and give suggestions on how to improve it.
Mini-project 4: Comparison of computational capabilities of the micro:bit, PC and FABRIC
Compare computational capabilities of devices across 3 tiers: microprocessor (using the micro:bit), PC (using your laptop), cluster (using FABRIC).
Choose a difficult computational problem, e.g., calculating a factorial of a large number, inverting a large matrix, constructing a long series of prime numbers, sorting a large array, searching for patterns in a large text, etc.
Implement scripts which demonstrate a solution to this problem using both serial and parallel programming.
Run your scripts on the micro:bit, your PC and FABRIC and measure the run time. Make a plot which demonstrates gains and losses in simulation time.
(Optional) Record and present other efficiency metrics such as RAM usage, network usage, etc.
Final projects#
Below is a list of topics for the final projects. Each topic is followed by general guidelines; however, you are free to choose a particular implementation. You can also suggest your own project topic as long as it is related to neuroscience and/or neural engineering.
Analysis of neural data.
1.1. PCM using sMRI data, fMRI data or a combination of both.
Predictive connectome analysis (PCM) is a popular technique for analyzing brain connectivity. Traditionally, connectome matrices were built based on functional imaging data; however, a recent study showed that combining functional and structural features might give better insights into brain organization. Find an sMRI/fMRI/sMRI+fMRI dataset and identify features which might help predict connectivity between brain regions.
1.2 Automated workflow for sMRI/fMRI data processing with FreeSurfer
sMRI/fMRI processing involves several important steps such as movement correction and parcellation. Luckily, these steps are implemented in FreeSurfer. Implement a worflow for a particular problem that uses FreeSurfer to process user-provided sMRI/fMRI data. As an example, the following materials cover analysis of resting-state fMRI data: slides, video.
Example datasets: ConnectomeDB, fMRI dataset for Emotion Recognition, 3T fMRI dataset.
1.3. Automated workflow for fMRI data processing with AFNI
AFNI is an alternative to FreeSurfer which provides tools for automated processing of fMRI data. Choose any fMRI dataset from OpenNeuro and implement an automated processing workflow based on these guidelines.
1.4 Automated workflow for DSP of medical datasets.
Medical data come in a variety of spatial and temporal resolutions, ranging from the whole-brain recordings (EEG) to recordings from individual cells (single unit data). Choose a medical dataset and implement a workflow for performing digital signal processing (DSP) and analysis of the results. As an example, this folder contains EEG data, a paper describing denoising of these data (Zhang et al., 2020, “EEGdenoiseNet: A benchmark dataset for deep learning solutions of EEG denoising”), and a sample notebook demonstrating data loading. Consider one of the following projects:
1.4.1. Pick 1-2 architectures described in the Zhang et al., 2020, paper and reproduce the reported results.
1.4.2. Compare the architectures from the Zhang et al., 2020, paper with the architecture from the Wang et al., 2022 paper (you can find it in the same folder).
Movement prediction using micro:bot.
The micro:bot is a small programmable robot operated by the micro:bit. Implement a workflow for interactive movement control that reads data from the micro:bot’s camera and uses a predictive model run on a micro:bit to determine the robot’s next movemement.
Automated workflow for training a machine learning model with data from online databases.
Neural databases (e.g., AllenDB, DANDI) are becoming increasingly popular. Implement a workflow runnable on FABRIC or CloudLab that efficiently retrieves data from one of these databases and uses it for training of a machine learning model.
Automated workflow for genetics data classification.
4.1 Implement DNA-seq genome variant calling (.fastq to .vcf) followed phylogeny analysis
Use the dataset available for DNA-seq at link. For more information on this, please refer to Module 11 Lecture ppt, where guided information with hands-on tutorial is mentioned.
4.2 Implement RNA-seq genome variant calling (.fastq to .vcf) followed phylogeny analysis
Use the dataset available for DNA-seq at link. For more information on this, please refer to Module 11 Lecture ppt, where guided information with hands-on tutorial is mentioned.
4.3 Perform phylogeny analysis on TCGA cancer dataset using genome variant calling (.fastq to .vcf) workflow
Explore and find the .fastq format data at link and perform the same genetic workflow showed in Module 11 guided project then plot phylogeny tree.
4.4 Perform phylogeny analysis on your own explored data using genome variant calling (.fastq to .vcf) workflow
Explore and find the .fastq format data at link.