diff --git a/site/_workshops/jan-2025.md b/site/_workshops/jan-2025.md new file mode 100644 index 0000000..ebad857 --- /dev/null +++ b/site/_workshops/jan-2025.md @@ -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 %} diff --git a/site/assets/flatiron-slides.css b/site/assets/flatiron-slides.css index fe80258..ac18186 100644 --- a/site/assets/flatiron-slides.css +++ b/site/assets/flatiron-slides.css @@ -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'); /********************************************* @@ -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%; @@ -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; @@ -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 { @@ -492,3 +498,4 @@ div.two-column { display: none; visibility: hidden; } + diff --git a/site/assets/jan-2025/speakers.svg b/site/assets/jan-2025/speakers.svg new file mode 100644 index 0000000..c0fef26 --- /dev/null +++ b/site/assets/jan-2025/speakers.svg @@ -0,0 +1,342 @@ + +image/svg+xmlOliver RĂ¼belTAsEdoardo BalzaniBilly BroderickSpeakersGuillaume ViejoSarah Jo VendittoAdminJessica HauserICaitlin LewisErik Schomburg Aramis Tanelus Isabel Garon diff --git a/site/presentations/jan-2025/conclusion/index.html b/site/presentations/jan-2025/conclusion/index.html new file mode 100644 index 0000000..9d77660 --- /dev/null +++ b/site/presentations/jan-2025/conclusion/index.html @@ -0,0 +1,5 @@ +--- +layout: slides +title: "Conclusion" +markdown: slides.md +--- diff --git a/site/presentations/jan-2025/conclusion/slides.md b/site/presentations/jan-2025/conclusion/slides.md new file mode 100644 index 0000000..8f17c30 --- /dev/null +++ b/site/presentations/jan-2025/conclusion/slides.md @@ -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) + - thepynapple@gmail.com +- 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 diff --git a/site/presentations/jan-2025/current_injection/index.html b/site/presentations/jan-2025/current_injection/index.html new file mode 100644 index 0000000..7ee61b9 --- /dev/null +++ b/site/presentations/jan-2025/current_injection/index.html @@ -0,0 +1,5 @@ +--- +layout: slides +title: "Basic GLMs with NeMoS" +markdown: slides.md +--- diff --git a/site/presentations/jan-2025/current_injection/slides.md b/site/presentations/jan-2025/current_injection/slides.md new file mode 100644 index 0000000..fde6417 --- /dev/null +++ b/site/presentations/jan-2025/current_injection/slides.md @@ -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. + +--- + +
+ +
+ +#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. diff --git a/site/presentations/jan-2025/welcome/index.html b/site/presentations/jan-2025/welcome/index.html new file mode 100644 index 0000000..60fa6cb --- /dev/null +++ b/site/presentations/jan-2025/welcome/index.html @@ -0,0 +1,5 @@ +--- +layout: slides +title: "Welcome!" +markdown: slides.md +--- diff --git a/site/presentations/jan-2025/welcome/slides.md b/site/presentations/jan-2025/welcome/slides.md new file mode 100644 index 0000000..d2200cc --- /dev/null +++ b/site/presentations/jan-2025/welcome/slides.md @@ -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?