Skip to content

Commit

Permalink
adds jan 2025 workshop page, with presentation
Browse files Browse the repository at this point in the history
  • Loading branch information
billbrod committed Jan 27, 2025
1 parent 9c3dabc commit a25de60
Show file tree
Hide file tree
Showing 9 changed files with 642 additions and 32 deletions.
82 changes: 82 additions & 0 deletions site/_workshops/jan-2025.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
---
layout: home
title: Jan 2025
categories: workshops
date: Jan 2025
redirect_from: /workshops/jan-2025/
---

![image](/assets/jan2025-banner.svg)

# Flatiron CCN Software Workshop, January 2025

We are excited to see everyone at the Flatiron Center for Computational Neuroscience workshop on using open source packages to analyze neural data in January 2025!

Over the course of this two-day workshop, we will walk you through the notebooks included on this site in order to demonstrate how to use pynapple and NeMoS to analyze and visualize your data.

This website contains links to the presentations for the workshop, as well as to other useful information.

## Useful links

- [Workshop schedule](#schedule)
- [Notebook site](https://flatironinstitute.github.io/neurorse-workshops/workshops/jan-2025/branch/main/)
- Websites for the packages used in this workshop:
- pynapple: [documentation](https://pynapple.org/), [github repo](https://github.com/pynapple-org/pynapple), [twitter](https://x.com/thepynapple), [bluesky](https://bsky.app/profile/pynapple.bsky.social)
- NeMoS: [documentation](https://nemos.readthedocs.io/en/latest/), [github repo](https://github.com/flatironinstitute/nemos), [twitter](https://x.com/nemos_neuro)

## Setup

Before the workshop begins, please follow the setup instructions found on the [workshop notebook site](https://flatironinstitute.github.io/neurorse-workshops/workshops/jan-2025/branch/main/)

## Presentations, in chronological order

- [Welcome](/presentations/jan-2025/welcome), Billy Broderick ([pdf slides](https://users.flatironinstitute.org/~wbroderick/presentations/jan-2025/welcome.pdf) if html won't load)
- [Neurodata Without Borders](https://users.flatironinstitute.org/~wbroderick/presentations/fens-2024/2024_06_22_CCN_at_FENS_NWB_Ruebel.pdf), Oliver Rübel
- Introduction to Pynapple Core, Guillaume Viejo
- [A conceptual introduction to Generalized Linear Models](https://users.flatironinstitute.org/~wbroderick/presentations/jan-2025/glm_intro_jan_feb_2025.pdf), Edoardo Balzani
- [Basic Generalized Linear Models with NeMoS](/presentations/jan-2025/current_injection), Billy Broderick ([pdf slides](https://users.flatironinstitute.org/~wbroderick/presentations/jan-2025/current_injection.pdf) if html won't load)
- [Model Selection and Cross-Validation](https://users.flatironinstitute.org/~wbroderick/presentations/jan-2025/model_selection.pdf), Edoardo Balzani
- [Scikit learn](/presentations/jan-2025/scikit-learn), Billy Broderick ([pdf slides](https://users.flatironinstitute.org/~wbroderick/presentations/jan-2025/scikit-learn.pdf) if html won't load)
- [Conclusion](/presentations/jan-2025/conclusion), Billy Broderick ([pdf slides](https://users.flatironinstitute.org/~wbroderick/presentations/jan-2025/conclusion.pdf) if html won't load)

## Schedule

| Day 0 (Wed, Jan 29) | |
|---------------------------|-----------------------------------------------------------------------------------------|
| 2pm -- 5pm | Installation help |
| 5pm -- 7pm | Welcome reception |
|---------------------------|-----------------------------------------------------------------------------------------|
| **Day 1 (Thurs, Jan 30)** | **pynapple** |
|---------------------------|-----------------------------------------------------------------------------------------|
| 9 -- 10am | Breakfast |
| 10 -- 11am | Welcome and introduction to data standards |
| 11 -- 11:30am | Coffee break |
| 11:30am -- 1pm | Pynapple core |
| 1 -- 2pm | Lunch |
| 2 -- 3:30pm | Standard analyses in systems neuroscience, part 1: cross-correlations and tuning curves |
| 3:30 -- 4pm | Coffee break |
| 4 -- 5:45pm | Standard analyses in systems neuroscience, part 2: signal processing |
| 5:45 -- 6pm | [fastplotlib](https://github.com/fastplotlib/fastplotlib) advertisement |
| 6 -- 8pm | Dinner |
|---------------------------|-----------------------------------------------------------------------------------------|
| **Day 2 (Fri, Jan 31)** | **NeMoS** |
|---------------------------|-----------------------------------------------------------------------------------------|
| 9 -- 10am | Breakfast |
| 10 -- 11am | Introduction to Generalized Linear Models (GLMs) |
| 11 -- 11:30am | Coffee break |
| 11:30am -- 1pm | Fitting a basic GLM to single neuron patch-clamp recordings |
| 1 -- 2pm | Lunch |
| 2 -- 4pm | Functional connectivity analysis of head-direction neurons |
| 4 -- 4:30pm | Coffee break |
| 4:30 -- 6pm | Model comparison and cross-validation |
| 6 -- 8pm | Dinner |

## Speakers

{% assign speakers = "balzani,broderick,venditto,viejo,ruebel" | split: "," %}
{% include people_cards.html people=speakers %}

## TAs

{% assign speakers = "lewis,schomburg,tanelus,garon" | split: "," %}
{% include people_cards.html people=speakers %}
71 changes: 39 additions & 32 deletions site/assets/flatiron-slides.css
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*
* Liz Lovero
* Updated: 28 August 2019
*/
*/
@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,700');
@import url('https://fonts.googleapis.com/css?family=Tinos:400,700,400i,700i');
/*********************************************
Expand Down Expand Up @@ -84,7 +84,7 @@ body {
margin-top: 20%;
}

.reveal h2:not(:has(~ p, ~ div, ~ ul, ~ ol, ~ dl)):not(h1 + h2, h2 + h2) {
.reveal h2:not(:has(~ p, ~ div, ~ ul, ~ ol, ~ dl, ~ table)):not(h1 + h2, h2 + h2) {
text-shadow: none;
margin-bottom: 5%;
margin-top: 20%;
Expand Down Expand Up @@ -216,23 +216,6 @@ body {
word-wrap: normal;
}

.reveal table {
margin: auto;
border-collapse: collapse;
border-spacing: 0;
}

.reveal table th {
font-weight: bold;
}

.reveal table th,
.reveal table td {
text-align: left;
padding: 0.2em 0.5em 0.2em 0.5em;
border-bottom: 1px solid;
}

.reveal table.vert th,
.reveal table.vert td {
border-left: 1px solid;
Expand All @@ -242,19 +225,42 @@ body {
border-left: none;
}

.reveal table th[align='center'],
.reveal table td[align='center'] {
text-align: center;
}

.reveal table th[align='right'],
.reveal table td[align='right'] {
text-align: right;
}

.reveal table tbody tr:last-child th,
.reveal table tbody tr:last-child td {
border-bottom: none;
/* copied from main2.css and then modified slightly */
.reveal table {
width: 100%;
text-align: left;
border-collapse: collapse;
margin: auto;
border-spacing: 0;
border: 1px solid #e8e8e8;
th {
font-weight: bold;
}
th,
td {
padding: 0.2em 0.5em 0.2em 0.5em;
border-bottom: 1px solid;
}
td {
border-width: 1px 0px 1px 0px;
border-style: solid;
border-color: #e8e8e8;
}
th:first-child, td:first-child {
width: 30%
}
th[align='center'],
td[align='center'] {
text-align: center;
}
th[align='right'],
td[align='right'] {
text-align: right;
}
tbody tr:last-child th,
tbody tr:last-child td {
border-bottom: none;
}
}

.reveal sup {
Expand Down Expand Up @@ -492,3 +498,4 @@ div.two-column {
display: none;
visibility: hidden;
}

342 changes: 342 additions & 0 deletions site/assets/jan-2025/speakers.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions site/presentations/jan-2025/conclusion/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
layout: slides
title: "Conclusion"
markdown: slides.md
---
25 changes: 25 additions & 0 deletions site/presentations/jan-2025/conclusion/slides.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Flatiron CCN Software workshop

![image](/assets/jan2025-banner.svg)

#note: thanks everyone for coming to this workshop!

---
## Staying in touch

- [https://neurorse.flatironinstitute.org/](https://neurorse.flatironinstitute.org/)
- pynapple:
- [https://github.com/pynapple-org/pynapple](https://github.com/pynapple-org/pynapple)
- [https://x.com/thepynapple](https://x.com/thepynapple)
- [https://bsky.app/profile/pynapple.bsky.social](https://bsky.app/profile/pynapple.bsky.social)
- [email protected]
- NeMoS:
- [https://github.com/flatironinstitute/nemos](https://github.com/flatironinstitute/nemos)
- [https://x.com/nemos_neuro](https://x.com/nemos_neuro)

#note: all of these packages are on github, and we're always excited to get more people involved. you can ask us questions on github, open issues if you run into problems, and keep an eye on what we're up to

---
## Thank you!

Look for survey in the next day
5 changes: 5 additions & 0 deletions site/presentations/jan-2025/current_injection/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
layout: slides
title: "Basic GLMs with NeMoS"
markdown: slides.md
---
47 changes: 47 additions & 0 deletions site/presentations/jan-2025/current_injection/slides.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Basic Generalized Linear Models with NeMoS

## Billy Broderick
## Jan 2025

#note: welcome back everyone. I hope everyone's refreshed, caffeinated, and excited for modeling. I'm Billy, one of the developers of nemos, and from now until lunch, we're going to learn the basics of fitting a GLM with NeMoS, before Edoardo comes back and shows a more indepth example

---

![](https://users.flatironinstitute.org/~wbroderick/presentations_assets/fens-2024/allen_brain_map.png)

#note: for this first exercise, we're going to use a data from the Allen Brain Atlas, which contains recordings from a huge variety of mouse neurons.

---

<div data-animate data-load="https://users.flatironinstitute.org/~wbroderick/presentations_assets/fens-2024/allen_data.svg" crossorigin="anonymous">
<!-- {"setup": [
{"element": "#rect712", "modifier": "attr", "parameters": [ {"class": "fragment appear-disappear", "data-fragment-index": "0"} ]},
{"element": "#rect1342", "modifier": "attr", "parameters": [ {"class": "fragment appear-disappear", "data-fragment-index": "1"} ]},
{"element": "#rect1374", "modifier": "attr", "parameters": [ {"class": "fragment appear-disappear", "data-fragment-index": "2"} ]},
{"element": "#g1429", "modifier": "attr", "parameters": [ {"class": "fragment appear-disappear", "data-fragment-index": "4"} ]},
{"element": "#g1433", "modifier": "attr", "parameters": [ {"class": "fragment appear-disappear", "data-fragment-index": "5"} ]},
{"element": "#g1437", "modifier": "attr", "parameters": [ {"class": "fragment appear-disappear", "data-fragment-index": "6"} ]}
]} -->
</div>

#note: in this session, we're going to use data from one of these recordings.

**click** this is a layer 4 neuron from mouse V1.

**click** this is an in-vitro experiment, with the neuron in a patch-clamp setup in a dish. the experimenters are injecting current in different patterns and recording the cell's response, both the membrane voltage and the spikes.

we're going to ignore the membrane voltage, since you don't usually have that for the kinds of experiments analyzed with nemos, and we'll focus on the current as input and the spikes as output.

**click** they injected current in a bunch of different patterns, but we're just going to look at one of them, Noise 1. in this protocol, current was injected at three different time points throughout the trial, as a noisy sinusoid.

- **click** looking back at the data here, we can see that the cell doesn't respond at all to the first, lowest amount of current
- **click** then it responds a medium amount to the middle level of current
- **click** and responds a lot to the final current level

This behavior, this simple response to the current, is what we're going to build our model to explain.

I'm going to return to this behavior and talk about it in more detail as we work through the notebook, but any questions about this before we get started?

**pause**

first we're going to explore this data set with pynapple, then we'll put together a model in nemos, examine how it did, and then extend it a bit. okay, let's get started.
5 changes: 5 additions & 0 deletions site/presentations/jan-2025/welcome/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
layout: slides
title: "Welcome!"
markdown: slides.md
---
92 changes: 92 additions & 0 deletions site/presentations/jan-2025/welcome/slides.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Flatiron CCN Software workshop

![image](/assets/jan2025-banner.svg)

#note: welcome everyone to the CCN software workshop! we're excited to have you here. I'm Billy Broderick, one of the members of the neuroRSE team. Before we get started, I'm going to have the speakers and TAs introduce themselves. then we'll go around and have everyone introduce themselves. I'll finish up by giving an overview of our schedule, and then we'll get started!

but before all that --- couple quick notes:

- we're planning on taking some photos at this workshop, which we'll post on twitter or our websites. if you don't want your photo included there, just let one of us know
- has everyone run setup.py? did they see my slack message yesterday about `pip install -e .`?

---

## Everyone installed and ready to go?

```
cd path/to/ccn-software-jan-2025
git pull
pip install -e .
```

---

## Workshop staff

![image](/assets/jan-2025/speakers.svg)

#note: Okay, with all that out of the way, let's introduce who's here for this workshop. These are the people you can ask questions to if you have logistical or technical problems. I'm going to have us all go around and introduce ourselves briefly, saying who we are, where we are, what we work on, and one non-science fact about ourselves.

Since I'm standing up here, I'll go first: I'm Billy Broderick, I'm one of the members of the neuroRSE group I just mentioned. I'm one of the developers for nemos, and I'm the main developer for plenoptic, which we're not actually discussing here, but is a package for generating stimuli to better understand computational models of perceptual systems. If you're interested, happy to talk more about this, come find me. My non science fact is: I'm actually recently back from parental leave; I have a 15 week old daughter at home. so I'm really looking forward to getting a full nights uninterrupted sleep while I'm Vienna. And I have about a million photos, if anyone wants to see.

Okay, let's go through everyone else from top left to bottom right: Jessica?

---
## Introduce yourselves!

### Name, Lab, What you work on
### One non-science fact about yourself

#note: Now let's go through and introduce all the participants. Let's start at the front here and we'll snake our way back.

---
## Day 1: pynapple

| Time | Event |
|---------------|-----------------------------------------------------------------------------------------|
| 9 - 10am | Breakfast |
| 10 - 11am | Welcome and introduction to data standards |
| 11 - 11:30am | Coffee break |
| 11:30am - 1pm | Pynapple core |
| 1 - 2pm | Lunch |
| 2 - 3:30pm | Standard analyses in systems neuroscience, part 1: cross-correlations and tuning curves |
| 3:30 - 4pm | Coffee break |
| 4 - 5:45pm | Standard analyses in systems neuroscience, part 2: signal processing |
| 5:45 - 6pm | [fastplotlib](https://github.com/fastplotlib/fastplotlib) advertisement |
| 6 - 8pm | Dinner |

#note: Excellent. so, up next, we're going to hear from Oliver talking about the NWB data standard, then the rest of the day will be Guillaume and Sarah Jo talking about pynapple, alternating between presentations and hands-on exercises.

if you don't have your installation working now, come find one of us at the coffee break so we can get you ready to go for the rest of the day! please!

then we have dinner tonight all together at Flatiron

---
## Day 2: nemos

| Time | Event |
|---------------|-------------------------------------------------------------|
| 9 - 10am | Breakfast |
| 10 - 11am | Introduction to Generalized Linear Models (GLMs) |
| 11 - 11:30am | Coffee break |
| 11:30am - 1pm | Fitting a basic GLM to single neuron patch-clamp recordings |
| 1 - 2pm | Lunch |
| 2 - 4pm | Functional connectivity analysis of head-direction neurons |
| 4 - 4:30pm | Coffee break |
| 4:30 - 6pm | Model comparison and cross-validation |
| 6 - 8pm | Dinner |

#note: tomorrow is all Generalized Linear Models, all day. We'll start off with Edoardo giving an conceptual overview of the GLM, then I'll walk you through a simple example with some data from the Allen Brain Observatory, Edoardo will come back to walk you through a more involved example with head-direction tuned neurons, then I'll finish the day by discussing how to use nemos with scikit-learn to do model selection and cross-validation

And we'll again finish the day with a hackathon. we'll have some advanced concepts you can work through, or you can play around with using nemos on your data. again, we'll be here to help and answer any questions.

our dinner tomorrow will be offsite, so please let one of the admin know if you won't be joining for any reason.

---
## one link to rule them all

[https://neurorse.flatironinstitute.org/workshops/jan-2025/](https://neurorse.flatironinstitute.org/workshops/jan-2025/)

#note: Finally, I'm going to leave this up here for a bit. You've gotten this link on the slack, you've gotten this in your email, but one more time. This page has links to the slides of all the presentations you'll see, as well as to the workshop schedule and the github page that has the setup instructions and all the notebooks we'll be working through on this workshop.

Any questions before I pass things off to Oliver to talk about NWB?

0 comments on commit a25de60

Please sign in to comment.