Skip to content

Introduction to Neurotechnology Coursework @ UofT

License

Notifications You must be signed in to change notification settings

mori-c/neurotech

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction to Neurotechnology

University of Toronto | NeuroTech | 2019


Format

Pairs of students to work towards the final brain-art project. Pairs will go through each week’s notebook, and fill in the code and run it. If it doesn’t work, no worries! We’ll have mentors floating around to help pairs debug or understand concepts better.

This is going to be a cross of our workshops from 2017-2018 and our initial Prezi workshops, but with less emphasis on hardware and more emphasis on sofware techniques and the brain.


General Outline

  1. Python Introduction21/1/19

  2. Git & Data28/1/19

  • Introduction to Git
  • Signal Processing Data
  • Graphing Data
  1. Neuroscience Introduction04/2/19
  • Brief history on neuroscience
  • Neuroanatomy
  • Rall's Cable Theory
  • Membrane potential
  1. Noise Filtering11/2/19
  • FFT ⋯ Fast Fourier Transform Introduction
  1. Reading Week ⃗ 18/2/19

  2. Digital Signal Processing4/3/19

  • Overview
  • Signal Processing
  • Signal Classification Types
  • Signal Systems
  1. EEG Oscillation Processes11/3/19
  • What exactly is Electroencephalography
  • GABA Brainwave Channels
  • EEG Physics
  • Oscillatory processes vs ERPs
  • Power spectral analysis for EEG power bands
  1. AngularJS18/3/19
  • AngularJS
  • Advanced Git
  • Offline Data, and Dataset
  • Work session
  1. Generative Brain Art Starter & MuseJs Framework25/3/19
  • Intro starter to Brain Art Project
  • MuseJs Introduction
  • Brain Art architecture
  • Brain artwork session (online)
  • Work session
  1. EEG Generative Art Project Presentation01/4/19


Core Concepts

🐍 ⋯ Python


ˉ ϟ ↑ ⑇ ⤻



A. Git

B. GitHub

C. Signal Processing Data

D. Graphing Data

  • CSVs
  • FIFs
  • Bayes Net Graphical Models
  • Graphing data with Matplotlib

🧠 ⋯ Neuroscience


Overview

  • Neurons
  • Axons
  • Neuroanatomy
  • Gamma-aminobutyric acid ⋯ GABA

Neuromodulation

Rall’s Cable Theory

Membrane potential

  • Nernst
  • GHK
  • HH ⋯ Hodgkin-Huxley Equations


Noise Filtering Types

Noise Filtering Analysis

Frequency Analysis

Multidimensional transform

Time Series

FFT ⋯ Fast Fourier Transform

  • Cooley-Tukey ALGM
  • GDL ⋯ Generalized distributive law

DFT ⋯ Discrete Fourier Transform



Signals

  • Sampling Audio, Biological, Images, and Video Signals
  • Fourier Analysis: Frequency Domain
  • DTFT ⋯ Discrete Time Fourier Transform & Properties
  • Aliasing: Overlapped Time & Frequency Signals Reconstructed
  • Nyquist's Theorem
  • Filter Designs
    • Filter Types
    • FIR vs IIR
    • Filter Order
    • Filter Characteristics

Signal Processing

  • Analyzing & Modifying Signals
  • Audio, Speech, Video, Image, Biological, Biomedical Imaging Application Variants
  • Brain-Computer Interfaces

Signal Classifications Types

  • x(t) Continuous vs x[n] Discrete
  • Digital vs Analog
  • 1D ⋯ x(t), v[n]
  • 2D ⋯ f(x, t), images
  • Unit Impluse (Delta) Function
  • Periodic Signals
  • Frequency
  • Signal Manipulation

Systems

  • Impulse responses
  • System Properties
  • LTI ⋯ Linear Time Invariant
    • Convolution


  1. Neural Oscillation
  1. Oscillation Processes
  1. EEG ⋯ Electroencephalography

  2. GABA Brainwave Channels

  • Delta ⋯ 0.1 - 3 Hz
  • Theta ⋯ 4 – 7 Hz
  • Alpha ⋯ 8 – 12.5 Hz
  • Mu ⋯ 7.5 – 12.5 Hz
  • Beta ⋯ 12.5 – 30 Hz
  • Gamma ⋯ 32 – 100 Hz
  1. EEG Analysis Methods
  • Frequency domain methods
  • Time domain methods
  • Time-frequency domain methods
  • Nonlinear methods
  • ANN methods

𝗔 ⋯ AngularJS


Overview

  • MVC : MVVM
  • MEAN Stack
    • MongoDB
    • ExpressJS
    • AngularJS
    • NodeJS

Architecture Framework

  • Controller

    ⋰ Data Binding | index.html

    angular.min.js
    
    ng-bootstrap
    
    {{main.class}}
    
    $scope:
    # 2-Way Binding
    

    ⋰ Controller | main.js

    class.subclass
    

    ⋰ JS Objects | main.js

    .class
    
  • Components

    ⋰ Directives | index.html

    <html ng-app="app">
    <div ng-controller="classObj string classObj">
    <ng-pluralize count="count" when="classObj"></ng-bootstrap>
    

    ⋰ Components | components.js

    .class('class', function() {
      return {
        restrict:'',
        translude: boolean,
        scope: {},
        controller: function($scope, $element) {
          var obj = $scope.obj = [];
          $scope.select = function(obj) {}
        },
        template:
          '<add html here>'
        }
    })
    

    ⋰ Localization | app.js

    angular.module('app', ['components'])
    
    .controller('classObj', function($scope, $locale) {
      $scope.class = [];
      if ($locale.id == 'html-syntax') {
        $scope.classObj = {};
      }
      else {
        $scope.classObj = {};
      }
    });
    

Angularity Unique

  • Deep Link Validation : AJAX Navigation
ng-form
  • Async Backend Return
inject test in main() 


A. Getting Started

  • Project Overview
  • EEG Data Visualised
  • Brain art as generative art
  • AngularJS App

B. MuseJs Framework

C. Brain Art Architecture



ˉ ϟ ↑ ⑇ ⤻