Software Skills for Systems Neuroscience

SWC/GCNU Neuroinformatics Unit

About us

Neuroinformatics Unit

(Systems) neuroscience & machine learning research software engineering group

Team

Adam Tyson

Laura Porta

Chang Huan Lo

Joe Ziminski

Alessandro Felder

Niko Sirmpilatze

Igor Tatarnikov

Sofía Miñano

What we do

  • Data analysis software (anatomy, electrophysiology, functional imaging, behaviour)
  • Data management (specifications, tools)
  • Collaborations (data science, software development, productionisation)

Current projects

  • Data standardisation and management
  • Developer tools
  • Modelling
  • Extracellular electrophysiology analysis
  • Video behavioural analysis
  • Multiphoton analysis
  • Computational neuroanatomy

More details

neuroinformatics.dev

The course

Installation

Installing Python

macOS and Linux

  1. Open a terminal
  2. Run the following commands:
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh

Windows

  1. Download and run the installer from https://github.com/conda-forge/miniforge
  2. Accept all defaults, BUT make sure to check the box to add Miniforge to your PATH

Set up Git and GitHub

  1. Follow the installation instructions found at https://git-scm.com/downloads to install Git
  2. Create a GitHub account at https://github.com
  3. Install GitHub CLI by following the instructions found at https://cli.github.com/
  4. Run gh auth login to authenticate your GitHub account

Installing an IDE

Follow the instructions found at https://www.jetbrains.com/pycharm/download/ to install PyCharm

Course details

Course schedule

Monday, September 30th - Introduction to Python (1)

Tuesday, October 1st - Data management and sharing (1 & 2)

Wednesday, October 2nd - Introduction to Python (2) & Version control and software development best practices

Thursday, October 3rd - Video behavioural analysis (1 & 2)

Friday, October 4th - Linux and high-performance computing

Monday, October 7th - General microscopy & Histology analysis (1)

Tuesday, October 8th - Histology analysis (2 & 3)

Monday, September 30th

13:00-17:30: Introduction to Python (1)

Aims: Run your first Python script and learn about variables, data types, loops and conditional statements in Python.

Location: SWC Brasserie Seminar Room

Lead by: Sofía Miñano, Igor Tatarnikov, Chang Huan Lo & Adam Tyson

Tuesday, October 1st

9:45-10:45: Data management and sharing (1)

Aims: Motivate the need for good neuroscience data management and introduce current best practices.

Location: SWC Ground Floor Lecture Theatre

Lead by: Joe Ziminski, Niko Sirmpilatze

15:00-17:30: Data management and sharing (2)

Aims: Learn our recommended data organisation principles and supporting software tools.

Location: SWC Ground Floor Lecture Theatre

Lead by: Joe Ziminski, Niko Sirmpilatze

Wednesday, October 2nd

10:00-12:30: Introduction to Python (2)

Aims: Learn how to use third-party Python libraries, work with functions, classes, and objects, and handle exceptions in Python.

Location: GCNU Seminar Room

Lead by: Sofía Miñano, Igor Tatarnikov, Chang Huan Lo & Adam Tyson

13:30-17:30: Version control and software development best practices

Aims: Learn how to keep track of changes to your code with Git and GitHub, work with others on code, and get an initial idea of how structure, document and test your code.

Location: GCNU Seminar Room

Lead by: Alessandro Felder, Laura Porta, Steve Lenzi

Thursday, October 3rd

10:00-13:00: Video behavioural analysis (1)

Aims: Introduction to the theory and practice of tracking animals in videos, including hands-on training of pose estimation models.

Location: SWC Brasserie Seminar Room

Lead by: Niko Sirmpilatze, Sofía Miñano, Chang Huan Lo

14:00-17:30: Video behavioural analysis

Aims: Using Python to analyse animal tracks produced via pose estimation: cleaning data, quantifying movement, extracting behavioural syllables.

Location: SWC Brasserie Seminar Room

Lead by: Niko Sirmpilatze, Sofía Miñano, Chang Huan Lo

Friday, October 4th

14:00-17:30: Linux and high-performance computing

Aims: To learn some basic principles of high-performance computing (HPC), and run a specific workflow on the SWC HPC system

Location: SWC Ground Floor Lecture Theatre

Lead by: Niko Sirmpilatze, Igor Tatarnikov, Adam Tyson

Monday, October 4th

11:00-12:00: General microscopy: basics

Aims: Learn basic concepts about microscopy to enable specific histology analyses

Location: SWC Brasserie Seminar Room

Lead by: Rob Campbell

13:00-14:30: General microscopy: applications

Aims: Learn basic concepts about microscopy to enable specific histology analyses

Location: SWC Brasserie Seminar Room

Lead by: Rob Campbell

14:30-17:30: Histology analysis (1)

Aims: Introduce napari and the BrainGlobe ecosystem of tools along with some basic image analysis concepts

Location: SWC Brasserie Seminar Room

Lead by: Alessandro Felder, Igor Tatarnikov, Adam Tyson

Tuesday, October 5th

10:00-11:00: Histology analysis (2)

Aims: Learn how to register whole brain microscopy data to an atlas, and analyse structures within the images.

Location: SWC Ground Floor Lecture Theatre

Lead by: Alessandro Felder, Igor Tatarnikov, Adam Tyson

14:00-17:30: Histology analysis (3)

Aims: Learn how to detect cells in large images, and analyse and visualise the results

Location: SWC Ground Floor Lecture Theatre

Lead by: Alessandro Felder, Igor Tatarnikov, Adam Tyson

Full details

software-skills.neuroinformatics.dev/courses/software-skills

Any questions?