Quantitative Neurobiology

Notes, assignments, and code for NEUROBIO 735 (Spring 2025).

Class details:

1/9 – 4/15:
Tuesday, Thursday
3:00 – 4:30
301 Bryan Research Building

Syllabus

Exercises

Solutions

Book

Here's the plan

Before we get going on our first week of class, let’s talk about how we’re going to do this:

Overview

The goal of the course is to give you a sampler of techniques and ideas in quantitative neurobiology, which we consider to encompass computation, data analysis, modeling, and theory. The course is divided into three main sections (with a final week for project presentations):

  1. Introduction to programming (1/9 – 1/30): There are several good options here, but we’ll be using Python. More on details below, but we will not assume prior programming experience.

  2. Analyzing neural data (systems) (2/4 – 3/6): The goal here is to get you comfortable using programming to explore, visualize, analyze, and model several types of data generated by neuroscience experiments.

  3. Analyzing neural data (cellular/molecular) (3/18 – 4/15): Here, we’ll use R to analyze data from cellular and molecular neuro experiments.

Logistics

Getting together

Class will be in person in 301 Bryan.

Computing

This year, we will encourage you to use Google Colab for your assignments. This has the advantage of standardizing our Python environment and allowing you to easily share assignments for grading. If you prefer to use a local machine, that’s fine; please just discuss with us in advance, since we can’t necessarily provide support to debug your setup. Colab uses a variant of Jupyter Notebooks, which are covered in the Python Data Science Handbook, but we will also cover the basics of navigating this in our first class.

Assignments

We will have both in-class work and assignments. You are allowed to work collaboratively on homework, but your write-ups must be done independently. Please also note everyone you worked with when turning in your assignments.

Solutions should be submitted as saved Jupyter Notebooks or R Markdown. We’ll tell you where to put these and how to name them.

Solutions are due before class on Tuesdays (3pm EST). Given how difficult a period this is, we can work with you if something unexpected occurs, but we need to know in advance. Please help us help you. We can’t release solutions until we have everyone’s assignments turned in.

Phase I: Beginning Python

For the first several weeks of class, we’ll be offering a crash course in basic Python covering A Whirlwind Tour of Python, transitioning to the Python Data Science Handbook. This will be basic and focused on students who have limited programming background. This is purely optional. Those of you who are already comfortable with programming do not need to attend, though you will be responsible for the material. I will also be working with the TAs to set up additional help during this period for those who would like it.

Phase II: Data Analysis

This second phase of the course will cover five weeks and will focus on analyzing real neuroscience data sets.

I will not be lecturing. At least, not much. Most of what we’ll cover isn’t really learned effectively that way, so we’ll use our class time to complete programming and data analysis exercises that build on the basic Python knowledge you gained by reading A Whirlwind Tour of Python.

Each week, we’ll do two sessions of in-class assignments, for which you’ll be encouraged to work with a partner. The weeks are organized around both data and programming themes, and the in-class assignments often build on one another. After class is done for the day, we’ll post links to solutions. Typically, we’ll be walking you through an example analysis, with the goal of setting you up for the homework.

Outside of class

You are responsible for reading through the Python Data Science Handbook. I will try to (roughly) have assignments keep pace with the material in the book, but this will be loose.

You are also responsible for checking this website. All class materials will be posted here, as well as changes and corrections to homework assignments.

Getting help

Please make use of the TAs and their office hours. I am also glad to help. If something is confusing with the assignments, the fault is probably mine, and you’re probably not alone. If you alert me early, we can probably fix it.

Rough schedule for Part I

This will change as we go along, but in order to help you get started, here’s our tentative plan:

Date Topic Exercises Reading
1/9 Housekeeping, accessing computing, advanced Googling   WWTP Ch. 1 – 6
1/14 What can Python do? NMA tutorial 1 NMA tutorial 2 WWTP Ch. 7 – 8
1/16 Data structures, iteration notebook WWTP Ch. 9 – 12
1/21 Patterns, functions, duck typing notebook PDSH Ch. 1
1/23 NumPy and arrays notebook PDSH Ch. 2
1/28 Data frames notebook PDSH Ch. 3
1/30 Plotting Seaborn tutorials Matplotlib tutorials PDSH Ch. 4