From a4216aa891924164bd8aa94d0f7ed85ff13d97eb Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Thu, 8 Jan 2026 09:38:40 -0500 Subject: [PATCH 01/37] Update onboarding.md --- docs/onboarding.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/onboarding.md b/docs/onboarding.md index 4d7b8b5..88b77d5 100644 --- a/docs/onboarding.md +++ b/docs/onboarding.md @@ -36,7 +36,7 @@ **Your first day** -- [Join the lab slack](https://join.slack.com/t/levensteinlab/shared_invite/zt-3coybbilg-4v5vsK2SFpaGU~NH5QD1lA) +- [Join the lab slack](https://join.slack.com/t/levensteinlab/shared_invite/zt-3coybbilg-4v5vsK2SFpaGU~NH5QD1lA). You'll be added to some channels, but take a look through the channels and join any that interest you! - Fill out [this form](https://docs.google.com/forms/d/e/1FAIpQLSe12BBIXdFappFJ2YZ-p2TmYv3zWBlScogv6I2Ko2xDxNuWVA/viewform) to get access to the Wu Tsai Institute slack. - Familiarize yourself with Lab policies, practices, and expectations. You don’t need to read the whole thing, but do read over the expectations for your position in the lab and [working hours, remote working, and vacation](https://levensteinlab.github.io/Lab-Handbook/Policies/hours_remote_vacation/) - Send Viggy a preferred email for the shared lab Google Calendar. You'll receive read & write access to see & add events. We also have an slack integration set up to send reminders for upcoming events. From c4345ee1b24d8477829c0f462b230842e7b6a106 Mon Sep 17 00:00:00 2001 From: Andrea Cumpelik Date: Mon, 12 Jan 2026 18:17:45 -0500 Subject: [PATCH 02/37] Update onboarding instructions for PyTorch tutorial Update to Dan-approved tutorial ("Learn the Basics" with FashionMNIST instead of "60-minute blitz" with CIFAR dataset) --- docs/onboarding.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/onboarding.md b/docs/onboarding.md index 4d7b8b5..43e39af 100644 --- a/docs/onboarding.md +++ b/docs/onboarding.md @@ -64,9 +64,9 @@ Discuss with Dan your interests and potential first projects. In addition to any **ANNs path** - - Your first project: PyTorch Tutorials (https://docs.pytorch.org/tutorials/, https://docs.pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html) - - [Set up a project repository](https://levensteinlab.github.io/Lab-Handbook/Policies/code_software/) in which you'll do the tutorial - THIS IS THE MOST IMPORTANT STEP. Setting up a project repository, with its own environment and specified dependencies, will save you infinite headaches in the future. Get in the practice now. - - By the end of this, you should have trained a multi-layer perceptron (MLP) to solve fMNIST + - Your first project: Complete the [Learn the Basics](https://docs.pytorch.org/tutorials/beginner/basics/intro.html) PyTorch Tutorial. + - [First set up a project repository](https://levensteinlab.github.io/Lab-Handbook/Policies/code_software/) in which you'll do the tutorial - THIS IS THE MOST IMPORTANT STEP. Setting up a project repository, with its own environment and specified dependencies, will save you infinite headaches in the future. Get in the practice now. + - By the end of this tutorial, you should have trained a multi-layer perceptron (MLP) to solve fMNIST. - Next, modify the network in some way you find interesting. - Get set up on the [misha compute cluster and learn how to use it](https://levensteinlab.github.io/Lab-Handbook/Resources/hpc/). - Your second project: [pRNN Tutorials](https://levensteinlab.github.io/Lab-Handbook/Resources/prnn_tutorial/) From 5cc9ec7e35256a5e0dc2408ec560487f40c95495 Mon Sep 17 00:00:00 2001 From: vviggyy Date: Tue, 13 Jan 2026 11:24:51 -0500 Subject: [PATCH 03/37] adding purchases.md and fixing typos --- docs/Policies/meetings.md | 4 ++-- docs/Resources/purchases.md | 6 ++++++ docs/contact.md | 1 + mkdocs.yml | 1 + 4 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 docs/Resources/purchases.md diff --git a/docs/Policies/meetings.md b/docs/Policies/meetings.md index 788b5f6..6cf8101 100644 --- a/docs/Policies/meetings.md +++ b/docs/Policies/meetings.md @@ -39,10 +39,10 @@ You can always message me on slack, and if my door is open, please come in! ### Journal Club -Journal clubs and lab buisness meetings are every Thursday, at 10AM. +As of Spring 2026, journal clubs and lab buisness meetings are every Friday, at 10AM. **Format:** -- We follow a rotation picking a paper to read. Paper should be sent to the group 1 week before the journal club (i.e. EOD the previous Thursday). There will usually be many interesting papers to pick from in the #papers channel on slack. +- We follow a rotation picking a paper to read. Paper should be sent to the group 1 week before the journal club (i.e. EOD the previous Friday). There will usually be many interesting papers to pick from in the #papers channel on slack. - Each lab member is assigned a figure or two to walk the group through. (This approach makes sure we all read the paper, and avoids the trap of one person reading and presenting while others do not engage.) - You should come prepared to explain your assigned figure (no slides needed), answer questions about it, and ask the group about anything you did not understand. If there are supplemental figures or methods associated with your figure, you should be familiar with those as well. It's OK to not understand everything fully - the point of journal club is to talk through and learn together. diff --git a/docs/Resources/purchases.md b/docs/Resources/purchases.md new file mode 100644 index 0000000..a735d88 --- /dev/null +++ b/docs/Resources/purchases.md @@ -0,0 +1,6 @@ +# Making Purchases + + +Generally, either Dan or Viggy will handle purchases for the lab. In this past, this included the shared coat rack, monitors for new members, cables, etc. Purchases/Requisitions are done through [Workday](https://www.myworkday.com/yale/d/home.html). You can check the catalogue of items by opening Workday and searching "Create Requisition". If you click OK to accept the default fields, you will see an option to "Connect to Supplier Website". There, you can choose from a list of suppliers, or search for products directly. Once you find the item you're looking for, confirm it with Dan, then send the supplier and product information to Viggy. If you'd like to make purchases yourself, you may need to take a few Workday Learning courses. + +If you have any boxes to dispose of, please leave them by the trash can in front of Dan's office, rather than in the main WTI lounge. This was particularly requested by the custodial staff. \ No newline at end of file diff --git a/docs/contact.md b/docs/contact.md index 9359629..1e5381e 100644 --- a/docs/contact.md +++ b/docs/contact.md @@ -1,6 +1,7 @@ **Lab Information** Wu Tsai Institute, Center for Neurocomputation and Machine Intelligence + 100 College Street, New Haven, CT 06511 **Lab Members** diff --git a/mkdocs.yml b/mkdocs.yml index 3c6bb70..0b948d2 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -25,5 +25,6 @@ nav: - VPN: Resources/vpn.md - VS Code: Resources/vs_code.md - Writing: Resources/writing.md + - Purchases: Resources/purchases.md - Onboarding: onboarding.md - Contact: contact.md From caf0241703df21961ea1bcc6423d18c8aed7e80a Mon Sep 17 00:00:00 2001 From: vviggyy Date: Tue, 13 Jan 2026 13:40:29 -0500 Subject: [PATCH 04/37] adding reqs.txt fix --- .github/workflows/deploy.yml | 2 +- docs/Resources/image.png | Bin 0 -> 10352 bytes requirements.txt | 2 ++ 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 docs/Resources/image.png create mode 100644 requirements.txt diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 33871eb..bc2e965 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -23,7 +23,7 @@ jobs: - name: Install dependencies run: | - pip install mkdocs # or your theme/plugins + pip install -r requirements.txt - name: Deploy to GitHub Pages run: | diff --git a/docs/Resources/image.png b/docs/Resources/image.png new file mode 100644 index 0000000000000000000000000000000000000000..805aedd614b9bb9d3cb2d1c794cdfc35a30d7a87 GIT binary patch literal 10352 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 B2nhfH literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..a007367 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +mkdocs>=1.5.0 +mkdocs-material>=9.0.0 From b4522ffd348a70d4f3e8c48eb6a7a1ccc9b37d4e Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Thu, 8 Jan 2026 09:38:40 -0500 Subject: [PATCH 05/37] Update onboarding.md --- docs/onboarding.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/onboarding.md b/docs/onboarding.md index 43e39af..118ac63 100644 --- a/docs/onboarding.md +++ b/docs/onboarding.md @@ -36,7 +36,7 @@ **Your first day** -- [Join the lab slack](https://join.slack.com/t/levensteinlab/shared_invite/zt-3coybbilg-4v5vsK2SFpaGU~NH5QD1lA) +- [Join the lab slack](https://join.slack.com/t/levensteinlab/shared_invite/zt-3coybbilg-4v5vsK2SFpaGU~NH5QD1lA). You'll be added to some channels, but take a look through the channels and join any that interest you! - Fill out [this form](https://docs.google.com/forms/d/e/1FAIpQLSe12BBIXdFappFJ2YZ-p2TmYv3zWBlScogv6I2Ko2xDxNuWVA/viewform) to get access to the Wu Tsai Institute slack. - Familiarize yourself with Lab policies, practices, and expectations. You don’t need to read the whole thing, but do read over the expectations for your position in the lab and [working hours, remote working, and vacation](https://levensteinlab.github.io/Lab-Handbook/Policies/hours_remote_vacation/) - Send Viggy a preferred email for the shared lab Google Calendar. You'll receive read & write access to see & add events. We also have an slack integration set up to send reminders for upcoming events. From b61a8163d7e1df904342ff36b6982edc1aa980d4 Mon Sep 17 00:00:00 2001 From: vviggyy Date: Tue, 13 Jan 2026 14:04:11 -0500 Subject: [PATCH 06/37] empty commit to force deployment From 1d45d7206e65663d9605297cf40789f4e066ea87 Mon Sep 17 00:00:00 2001 From: vviggyy Date: Thu, 15 Jan 2026 14:00:28 -0500 Subject: [PATCH 07/37] updating quickstart link in prnn_tutorial --- docs/Resources/prnn_tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Resources/prnn_tutorial.md b/docs/Resources/prnn_tutorial.md index 7e19ec6..d3f7214 100644 --- a/docs/Resources/prnn_tutorial.md +++ b/docs/Resources/prnn_tutorial.md @@ -36,5 +36,5 @@ There are some extra steps in managing the requirements needed for the [Predicti 3. If you run `jupyter kernelspec list`, you should see `prnn_tutorial` as an option. 4. You may need to restart your VSCode or kernel here. 1. If you're on VSCode, you can do this fast with `Cmd + Shift + P` to open the Command Palette and then `Developer: Reload Window`. -11. Your environment should be all set to run example code provided with the package, or to start going through the tutorials. The quickstart tutorial can be found [here](https://github.com/LevensteinLab/pRNN/blob/main/docs/quickstart.rst). This contains an example training run. +11. Your environment should be all set to run example code provided with the package, or to start going through the tutorials. The quickstart tutorial can be found [here](https://prnn.readthedocs.io/en/latest/quickstart.html). This contains an example training run. 1. If you would like to run through quickstart interactively, you will need to copy `pRNN/examples/tutorial.ipynb` to your `prnn_tutorial` folder. This can be done with `rsync -r ../pRNN/examples/ .` From 1a592aefbc193db5bcfcb12919b6530959785928 Mon Sep 17 00:00:00 2001 From: vviggyy Date: Fri, 16 Jan 2026 13:35:41 -0500 Subject: [PATCH 08/37] removing dan minigrid fork from prnn tutorial --- docs/Resources/prnn_tutorial.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/Resources/prnn_tutorial.md b/docs/Resources/prnn_tutorial.md index d3f7214..b8f1b0f 100644 --- a/docs/Resources/prnn_tutorial.md +++ b/docs/Resources/prnn_tutorial.md @@ -9,8 +9,7 @@ There are some extra steps in managing the requirements needed for the [Predicti 3. Clone the `pRNN` package into your `project` folder. This is accessible by typing `cd ~/../../project/levenstein/YOUR_NETID/`. This brings you to the `/gpfs/radev/project/levenstein/YOUR_NETID`. 1. `git clone git@github.com:LevensteinLab/pRNN.git` 2. 👁️ Watch the repository so you can be notified of any updates! -4. Also clone these external repositories into that project directory: - 1. Dan's fork of gym-minigrid (`git clone git@github.com:dlevenstein/gym-minigrid.git gym-minigrid-dan-fork`). +4. Also clone the following repository into that project directory: 2. Farama Foundation version of minigrid. This is the most up-to-date version. (`git clone git@github.com:Farama-Foundation/Minigrid.git`) 5. Create a conda environment with Python 3.9. 1. Misha doesn't come with Python 3.9 out of the box, and we need this version for later dependencies. @@ -25,8 +24,7 @@ There are some extra steps in managing the requirements needed for the [Predicti 1. `pip install "pip<24.1" setuptools==59.5.0 wheel==0.37.0` 2. `pip install gym==0.21.0 --no-binary gym` 3. `pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 --no-cache-dir` -8. We'll also need to install the external repositories from step 3 into environment. - 1. `pip3 install -e ~/../../project/levenstein/YOUR_NETID/gym-minigrid-dan-fork` +8. We'll also need to install the external repository from step 3 into environment. 2. `pip3 install -e ~/../../project/levenstein/YOUR_NETID/Minigrid` 9. Install the `pRNN` package itself into the environment. 1. Navigate to the repository, then `pip install -e .` From 4f35d930778430b0b5bde4b8e1d830721339b1fa Mon Sep 17 00:00:00 2001 From: Meghan Date: Fri, 16 Jan 2026 15:36:00 -0500 Subject: [PATCH 09/37] Changed link for quickstart to the readthedocs link --- docs/Resources/prnn_tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Resources/prnn_tutorial.md b/docs/Resources/prnn_tutorial.md index 7e19ec6..d3f7214 100644 --- a/docs/Resources/prnn_tutorial.md +++ b/docs/Resources/prnn_tutorial.md @@ -36,5 +36,5 @@ There are some extra steps in managing the requirements needed for the [Predicti 3. If you run `jupyter kernelspec list`, you should see `prnn_tutorial` as an option. 4. You may need to restart your VSCode or kernel here. 1. If you're on VSCode, you can do this fast with `Cmd + Shift + P` to open the Command Palette and then `Developer: Reload Window`. -11. Your environment should be all set to run example code provided with the package, or to start going through the tutorials. The quickstart tutorial can be found [here](https://github.com/LevensteinLab/pRNN/blob/main/docs/quickstart.rst). This contains an example training run. +11. Your environment should be all set to run example code provided with the package, or to start going through the tutorials. The quickstart tutorial can be found [here](https://prnn.readthedocs.io/en/latest/quickstart.html). This contains an example training run. 1. If you would like to run through quickstart interactively, you will need to copy `pRNN/examples/tutorial.ipynb` to your `prnn_tutorial` folder. This can be done with `rsync -r ../pRNN/examples/ .` From ed4064fc2da0b73f8e967357693297559d701b8f Mon Sep 17 00:00:00 2001 From: vviggyy Date: Tue, 20 Jan 2026 12:15:14 -0500 Subject: [PATCH 10/37] adding links for updating duo devices --- docs/onboarding.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/onboarding.md b/docs/onboarding.md index 118ac63..95bd83e 100644 --- a/docs/onboarding.md +++ b/docs/onboarding.md @@ -13,7 +13,9 @@ - Your NetID is a unique identifier for you in the system, and can also be used to log into the private *YaleSecure* WiFi network. - Emails typically follow `first.last@yale.edu`; you may need to wait for 20 minutes or more after your netID activation to access your email. - Set up multifactor authentication (MFA) - - Usually done through Duo, which you will need to accesss your email. + - Usually done through Duo, which you will need to access your email. + - Find additional information on how to set this up [here](https://cybersecurity.yale.edu/mfa). + - If you'd like to change your 2FA device(s), you can navigate directly to [mfa.its.yale.edu](mfa.its.yale.edu) and sign in. - Get Yale ID card - [Multiple offices](https://idcenter.yale.edu/id-center-hours) are available to get an ID card printed. Note the hours! - Yale Central ID Center, 57 Lock St (**M-F, 8am-4pm**), walk-in visits accepted but appointments are encouraged. From 45f375922073740d20ecf9d351715aae76276e2a Mon Sep 17 00:00:00 2001 From: Andrea Cumpelik Date: Fri, 30 Jan 2026 13:23:15 -0500 Subject: [PATCH 11/37] added info on gpu partitions in VS Code Proxy --- docs/Resources/prnn_tutorial.md | 2 +- docs/Resources/vs_code.md | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/Resources/prnn_tutorial.md b/docs/Resources/prnn_tutorial.md index b8f1b0f..67d8e00 100644 --- a/docs/Resources/prnn_tutorial.md +++ b/docs/Resources/prnn_tutorial.md @@ -3,7 +3,7 @@ There are some extra steps in managing the requirements needed for the [Predictive RNN](https://github.com/LevensteinLab/pRNN) project. This guide should help you get everything set up on Misha. 1. Ensure you have an account on Misha, and log on. - 1. Make sure to allocate an interactive session (e.g. `salloc -t 2:00:00`)! If are using the VS Code Proxy (as described on the [vs_code.md](https://levensteinlab.github.io/Lab-Handbook/Resources/vs_code/) page), you're already on a compute node. + 1. Make sure you're running a compute node. If you're in a normal terminal/SSH session, you can start an interactive session with e.g. `salloc -t 2:00:00`). If are using the VS Code Proxy (as described on the [vs_code.md](https://levensteinlab.github.io/Lab-Handbook/Resources/vs_code/) page), you're already on a compute node. 2. Make sure you've also set up SSH cloning from the cluster, because you'll need to clone repositories into your storage. We're using SSH clone links from here out. 3. See the page on HPCs for more information on this. 3. Clone the `pRNN` package into your `project` folder. This is accessible by typing `cd ~/../../project/levenstein/YOUR_NETID/`. This brings you to the `/gpfs/radev/project/levenstein/YOUR_NETID`. diff --git a/docs/Resources/vs_code.md b/docs/Resources/vs_code.md index f95eaed..1310ec4 100644 --- a/docs/Resources/vs_code.md +++ b/docs/Resources/vs_code.md @@ -15,4 +15,7 @@ To use VS Code with the cluster off campus, you will need to use a VPN (see `Res - Launch the session. It may take a few minutes depending on how busy the cluster is - If it's your first time using the VS Code proxy, follow the instructions listed to configure your `~/.ssh/config` file 3. Once the proxy is running, open the Command Palette in VS Code (Mac: Cmd + Shift + P; Windows: Ctrl + Shift + P) and type `Remote-SSH: Connect to Host...`, then choose `vscode-server`. -4. Complete the 2-factor authentication using Duo or a phone call (do this quickly or it will time out). If successful you should see `SSH: vscode-server` on the bottom left corner. \ No newline at end of file +4. Complete the 2-factor authentication using Duo or a phone call (do this quickly or it will time out). If successful you should see `SSH: vscode-server` on the bottom left corner. + +Some more useful information: +* If you're troubleshooting training networks or doing something similarly intensive, it can be useful to start a VSCode Proxy session on the `gpu_devel` partition. This allows you to use a GPU with some limits on processing power: e.g. you can use up to 16 GiB of memory per CPU core/node and 1 GPU per node for up to 6 hours. This type of partition is great for troubleshooting because you won't get dinged for using the partition inefficiently (which does happen e.g. with the `gpu` partition). \ No newline at end of file From 066512eca0097429365676e98bf2d5d8b39e30d9 Mon Sep 17 00:00:00 2001 From: Andrea Cumpelik Date: Fri, 30 Jan 2026 13:24:23 -0500 Subject: [PATCH 12/37] typo --- docs/Resources/prnn_tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Resources/prnn_tutorial.md b/docs/Resources/prnn_tutorial.md index 67d8e00..79ae71a 100644 --- a/docs/Resources/prnn_tutorial.md +++ b/docs/Resources/prnn_tutorial.md @@ -3,7 +3,7 @@ There are some extra steps in managing the requirements needed for the [Predictive RNN](https://github.com/LevensteinLab/pRNN) project. This guide should help you get everything set up on Misha. 1. Ensure you have an account on Misha, and log on. - 1. Make sure you're running a compute node. If you're in a normal terminal/SSH session, you can start an interactive session with e.g. `salloc -t 2:00:00`). If are using the VS Code Proxy (as described on the [vs_code.md](https://levensteinlab.github.io/Lab-Handbook/Resources/vs_code/) page), you're already on a compute node. + 1. Make sure you're running a compute node. If you're in a normal terminal/SSH session, you can start an interactive session with e.g. `salloc -t 2:00:00`. If are using the VS Code Proxy (as described on the [vs_code.md](https://levensteinlab.github.io/Lab-Handbook/Resources/vs_code/) page), you're already on a compute node. 2. Make sure you've also set up SSH cloning from the cluster, because you'll need to clone repositories into your storage. We're using SSH clone links from here out. 3. See the page on HPCs for more information on this. 3. Clone the `pRNN` package into your `project` folder. This is accessible by typing `cd ~/../../project/levenstein/YOUR_NETID/`. This brings you to the `/gpfs/radev/project/levenstein/YOUR_NETID`. From 6ca76a63493192116c2ee359ba32a6b10194d9aa Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Thu, 5 Mar 2026 16:49:48 -0500 Subject: [PATCH 13/37] Include support for workshops and summer schools Added guidelines for attending workshops and summer schools. --- docs/Policies/conferences_workshops.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/Policies/conferences_workshops.md b/docs/Policies/conferences_workshops.md index bc1bf94..de3d985 100644 --- a/docs/Policies/conferences_workshops.md +++ b/docs/Policies/conferences_workshops.md @@ -11,3 +11,13 @@ As with a paper submission, nothing goes out without all co-authors seeing and a The exact number of conferences you should expect to present at per year will depend on your career stage, and status of your project. IMO the best times to present are when you're halfway through a project, and trying to figure out what the story is, and just after you've posted a preprint. See [Resources - Travel](https://levensteinlab.github.io/Lab-Handbook/Resources/travel/) for information on booking travel. + +# Workshops/Summer schools + +If there's a summer school or educational workshop that would be good for your career/research, I'm quite happy for you to go and will support your application/pay for registration/travel/etc. I only ask that: + +1) if they have the option to apply for grants to waive registration fees that you apply for them, + +2) that you take them seriously (they're a lot of fun, and you'll meet friends and colleagues you'll have for the rest of your career. but they're also a lot of material to learn in a short amount of time), and + +3) that you make an effort to think about how you can bring back the things you learn to your work in the lab. at the very least you'll have to give a "what I learned at summer camp" presentation in lab meeting 🏕️ From 5db00dc1ee1f7bfdcc870773135ad18f39088af3 Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Thu, 5 Mar 2026 16:54:38 -0500 Subject: [PATCH 14/37] Enhance workshops/summer schools section with details Expanded the section on workshops and summer schools to include specific examples and additional context for attendance. --- docs/Policies/conferences_workshops.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Policies/conferences_workshops.md b/docs/Policies/conferences_workshops.md index de3d985..137d9e4 100644 --- a/docs/Policies/conferences_workshops.md +++ b/docs/Policies/conferences_workshops.md @@ -14,7 +14,7 @@ See [Resources - Travel](https://levensteinlab.github.io/Lab-Handbook/Resources/ # Workshops/Summer schools -If there's a summer school or educational workshop that would be good for your career/research, I'm quite happy for you to go and will support your application/pay for registration/travel/etc. I only ask that: +If there's a summer school or educational workshop that would be good for your career/research, I'm quite happy for you to go and will support your application/pay for registration/travel/etc. Some common ones are the Woods Hole Methods in Computational Neuroscience course, Kavli Mathematical Methods in Computational Neuroscience, and Cajal course in Computational Neuroscience. Often these are most useful to take halfway through your PhD, or at the beginning of your postdoc to pick up new techniques. If you do attend, I only ask that: 1) if they have the option to apply for grants to waive registration fees that you apply for them, From d34dcf1eb2935f5d595e1e26c502b443bd74f6ce Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Fri, 6 Mar 2026 18:06:17 -0500 Subject: [PATCH 15/37] Add resource on responsible AI use for scientists Added a new resource link about responsible AI use for scientists. --- docs/Resources/gen_ai.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/Resources/gen_ai.md b/docs/Resources/gen_ai.md index cbd9844..9ead528 100644 --- a/docs/Resources/gen_ai.md +++ b/docs/Resources/gen_ai.md @@ -7,6 +7,7 @@ There has been immense progress in the last 2-3 years regarding the use of langu 3. [Effective and Responsible Use of AI in research (University of Washington, Georgia Tech)](https://grad.uw.edu/advice/effective-and-responsible-use-of-ai-in-research/) 4. [Slide from Patrick Mineault on potential pros of AI use (Dan on Bluesky)](https://bsky.app/profile/dlevenstein.bsky.social/post/3lxz5nnhfi22w) 5. [Should neuroscientists 'vibe code'?(Benjamin Dichter, The Transmitter)](https://www.thetransmitter.org/craft-and-careers/should-neuroscientists-vibe-code/) +6. [AI agents are aeroplanes for the mind: five ways to ensure that scientists are responsible pilots](https://www.nature.com/articles/d41586-026-00665-y) ### GitHub Copilot Access As university-affiliated researchers, we may have access to AI completion tools such as GitHub Copilot. The Pro tier provides a 30-day free trial for researchers/educators. Here are the steps to get access: @@ -15,4 +16,4 @@ As university-affiliated researchers, we may have access to AI completion tools 2. Click on "Apply to GitHub Education as a teacher". 3. Navigate to Education Benefits settings 4. Complete the form and submit. You may need to verify that you have an `@yale.edu` email address and provide a picture of your ID card. The application will be approved by GitHub admins. -5. You should see a coupon for GitHub Copilot Pro populate in 48-72 hours. This provides access for 30 days. This can get renewed. \ No newline at end of file +5. You should see a coupon for GitHub Copilot Pro populate in 48-72 hours. This provides access for 30 days. This can get renewed. From 1cbefbfab270ad1fa417549b2fc8a2c36706a482 Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Fri, 6 Mar 2026 18:33:22 -0500 Subject: [PATCH 16/37] Update funding resources in funding.md Removed a link to postdoctoral funding opportunities and added HFSP funding link. --- docs/Resources/funding.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/Resources/funding.md b/docs/Resources/funding.md index c8db600..a8383b1 100644 --- a/docs/Resources/funding.md +++ b/docs/Resources/funding.md @@ -1,6 +1,5 @@ **Postdoc fellowships** -Many postdoc fellowships can be found here, along with the time you should try to apply: - [https://research-development.zuckermaninstitute.columbia.edu/content/postdoctoral-funding-opportunities](https://research-development.zuckermaninstitute.columbia.edu/content/postdoctoral-funding-opportunities) - +-[HFSP](https://www.hfsp.org/funding/hfsp-funding/research-grants) Please add to this list as you find more that may be appropriate for the lab From b94819e81c2ceec1ff8c2cb0a748416b9e98d7ce Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Fri, 6 Mar 2026 18:33:44 -0500 Subject: [PATCH 17/37] Fix formatting for HFSP funding link in funding.md --- docs/Resources/funding.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/Resources/funding.md b/docs/Resources/funding.md index a8383b1..4451095 100644 --- a/docs/Resources/funding.md +++ b/docs/Resources/funding.md @@ -1,5 +1,6 @@ **Postdoc fellowships** - [https://research-development.zuckermaninstitute.columbia.edu/content/postdoctoral-funding-opportunities](https://research-development.zuckermaninstitute.columbia.edu/content/postdoctoral-funding-opportunities) --[HFSP](https://www.hfsp.org/funding/hfsp-funding/research-grants) +- [HFSP](https://www.hfsp.org/funding/hfsp-funding/research-grants) + Please add to this list as you find more that may be appropriate for the lab From 71555aeb52f99c92e3d3ba641bd44be3a3425c17 Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Fri, 6 Mar 2026 18:39:19 -0500 Subject: [PATCH 18/37] Add EMBO and Marie Curie funding links --- docs/Resources/funding.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/Resources/funding.md b/docs/Resources/funding.md index 4451095..86db236 100644 --- a/docs/Resources/funding.md +++ b/docs/Resources/funding.md @@ -2,5 +2,7 @@ - [https://research-development.zuckermaninstitute.columbia.edu/content/postdoctoral-funding-opportunities](https://research-development.zuckermaninstitute.columbia.edu/content/postdoctoral-funding-opportunities) - [HFSP](https://www.hfsp.org/funding/hfsp-funding/research-grants) +- [EMBO](https://www.embo.org/funding/fellowships-grants-and-career-support/postdoctoral-fellowships/) +- [Marie Curie](https://marie-sklodowska-curie-actions.ec.europa.eu/actions/postdoctoral-fellowships) Please add to this list as you find more that may be appropriate for the lab From 7b20a77c34632f19eb09f62f425c94cbd911eccf Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Fri, 6 Mar 2026 18:52:30 -0500 Subject: [PATCH 19/37] Update funding resources for postdoc fellowships Added additional postdoctoral funding opportunities and organized them into categories. --- docs/Resources/funding.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/Resources/funding.md b/docs/Resources/funding.md index 86db236..3983caa 100644 --- a/docs/Resources/funding.md +++ b/docs/Resources/funding.md @@ -1,8 +1,16 @@ **Postdoc fellowships** -- [https://research-development.zuckermaninstitute.columbia.edu/content/postdoctoral-funding-opportunities](https://research-development.zuckermaninstitute.columbia.edu/content/postdoctoral-funding-opportunities) +- [https://research-development.zuckermaninstitute.columbia.edu/content/postdoctoral-funding-opportunities](https://research-development.zuckermaninstitute.columbia.edu/content/postdoctoral-funding-opportunities) + +Early Postdoc - [HFSP](https://www.hfsp.org/funding/hfsp-funding/research-grants) - [EMBO](https://www.embo.org/funding/fellowships-grants-and-career-support/postdoctoral-fellowships/) - [Marie Curie](https://marie-sklodowska-curie-actions.ec.europa.eu/actions/postdoctoral-fellowships) +- [Life Sciences Research Fund (LSRF)](https://lsrf.org/apply/) +- [Helen Hay Whitney](https://hhwf.org/research-fellowship/) +- [Jane Coffin Childs](https://www.jccfund.org/eligibilty-criteria/) + +Transition to Independence (Mid-Late Postdoc) +- [Borroughs Wellcome CASI](https://www.bwfund.org/grants/interfaces-in-science/career-awards-at-the-scientific-interface/) Please add to this list as you find more that may be appropriate for the lab From 8947a1c033d5960aa30370dda71261e5137db5cc Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Sun, 8 Mar 2026 15:40:55 -0400 Subject: [PATCH 20/37] added presentations, and updated menu organization --- .gitignore | 2 + docs/Resources/presentations.md | 75 +++++++++++++++++++++++++++++++++ mkdocs.yml | 28 ++++++------ 3 files changed, 93 insertions(+), 12 deletions(-) create mode 100644 docs/Resources/presentations.md diff --git a/.gitignore b/.gitignore index 4d0e806..983c5c3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ .DS_Store .vscode/settings.json +CLAUDE.md +memory.md diff --git a/docs/Resources/presentations.md b/docs/Resources/presentations.md new file mode 100644 index 0000000..245dd91 --- /dev/null +++ b/docs/Resources/presentations.md @@ -0,0 +1,75 @@ +## Presentations + +Over the course of your time in the lab, you'll give a lot of presentations — lab meetings, conference talks, practice talks, 1-on-1 updates. Presenting is a skill, and like writing, it's one of the most important skills you'll develop. Your ideas are only as impactful as your ability to communicate them, and a good presentation doesn't just convey your results — it helps you *think* about your results. + +A heads up: I care about this a lot, and I'll give you a lot of feedback on your presentations. That's a good thing. The goal is to help you become someone who can walk into any room and clearly explain what you're doing and why it matters. + + +### Lab Meeting Presentations + +Your first opportunities to present any project will be in lab meeting. This is your chance to start to develop your story, bring the group up to speed on your project, get feedback, and work through challenges together. Here's what a lab meeting presentation should look like: + +- **Start with the big picture question.** Give a general overview of the scientific *problem* that motivates your work - why is it interesting, what's the history and state of the field? Don't assume everyone remembers the details of your project and don't assume everyone knows the relevant literature around your project. Preparing this section will help you situate your work, don't skimp on it. +- **Narrow to your specific question.** What is the specific problem that, if your project is successful, will be solved? This is your project's contribution — the thing you're actually working on, in the context of the bigger picture you just laid out. +- **Show your methods.** How will you solve the problem, and why is it the right approach? Include figures that show your approach — the model architecture, the analysis pipeline, the experimental setup. We need to understand *how* you're doing something and *why* to evaluate *what* you found. +- **Remind us where you left off.** A brief summary of what you told us about last time you presented in lab meeting. +- **Walk us through new results.** This is the core of the presentation. Make sure you take the time to explain all plots — what are the axes? What are the data points? Part of lab meeting is the group discussing your plots and interpreting them together. +- **Include challenges you're facing.** Lab meeting isn't just a show-and-tell, it's a chance for us to help solve problems together. If something isn't working, or you're not sure what to do next, bring it up. That being said, don't just dump everything you tried on us. +- **End with what's next.** Where are you headed from here? What are your plans for the next few weeks? Let's think about next steps together. + +One thing I want to emphasize: lab meeting is not a performance. It's a working meeting. You don't need to have a polished story with a clean narrative arc. You *do* need to communicate clearly enough that the rest of us can follow along and contribute. + + +### Slide Design + +A few principles that will make your slides dramatically better: + +**Slide titles should be the take-home message of the slide.** Not "Results" or "Background" — a declarative sentence that tells the audience what you want them to learn from this slide. If I were to read the sequence of your slide titles in a row, I should be able to come away knowing the message of your talk. A title like "SI vs representational distance" is the labels of the axes, not the title of the slide. Something like "Representational distance increases with sleep" is. + +**One idea per slide.** Everything on the screen is something you're asking your audience to think about. If your slide has three different things on it, your audience is thinking about three things while you're talking about one of them. Be consciencious of your audience's attention span and working memory capacity. That being said, if you need three plots to communicate one idea, then they should all be on the same slide. Don't make us hold plots in working memory. + + +### Explaining Figures + +This is the single most common thing that goes wrong in scientific presentations: someone throws up a figure and starts talking about the results without explaining what the audience is looking at. One technique for quantitative presentations is to **build up your plots on multiple overlays**: + +1. Show just the x-axis — explain it +2. Add the y-axis — explain it +3. Add one data point — explain what it represents +4. Plot the rest of the data — now explain the result + +This might feel slow, but your audience will thank you. They can't interpret your results if they don't understand the plot, and they almost certainly don't understand the plot as well as you do. Similarly, don't just show summary statistics, build to them. First show what a single "trial" looks like (or whatever the equivalent of a trial is in your case - a learning curve, a simulation, an example). Then show how the summary statistic is calculated from the trial. Then show the statistics over all data points. + + +### Mindset and Delivery + +When presenting, your job is not to get through your slides. It's to make sure everyone follows the story, that they learn about the things you want to tell them about. To do this: slow down, take a breath, read each slide, tell the audience what's on the slide and how it fits in your story, then move to the next one. The audience doesn't have your bird's-eye view of the whole talk, they only have the slide they're looking at. + +**Pause.** This is the simplest and most underrated presentation skill. Pause after making a key point. Pause before transitioning to a new section. Pause to let a figure sink in. The silence feels longer to you than it does to the audience. + +**Watch good talks and PAY ATTENTION.** You'll learn more about presenting from actively watching great speakers than from any list of tips (including this one). Pay attention to how they structure their story, how they use their slides, how they handle transitions, how they explain figures. + + +### Structuring a Talk (Beyond Lab Meeting) + +For conference talks, job talks, or any presentation to an external audience, the structure matters more because the audience doesn't have context on your work. A few principles: + +**Give the TL;DR in the beginning.** Methods, results, conclusion — walk through each briefly in your introduction. It should be enough for someone to take home the message of your talk. If the audience knows where you're going, they'll pay attention to the journey. A good phrase to have in mind is: "tell them what you're going to tell them, tell them, tell them what you told them." + +**Start with a hook.** A story, a picture, a question, a provocative claim — something that grabs attention and motivates the problem you're going to address. Then transition: "Why do I tell this story?" and preview what you're going to talk about. + +**Make your story linear.** Don't assume people remember what you said 30 minutes ago. Each section should flow naturally from the one before it, and if you need to refer back to something, remind the audience. + + +### Preparing a Presentation + +Everyone has their own process for building a talk. Here's a workflow that has worked well for me: + +1. **Collect ideas as they come.** Any time you have an idea for a talk (a cool figure, a way to frame a result, a transition that works) write it down somewhere. Don't try to build a talk all at once from scratch. +2. **Start at least 2 weeks before.** Sketch out an idealized narrative — make empty slides with just titles (remember: declarative sentences). Write the conclusions slide. This forces you to figure out what your story actually is. The point isn't to make your slides weeks in advance, it's to get started so your brain has time to think about them when you're not in front of the computer. Again, make empty slides with just titles (remember: declarative sentences). +3. **Pull in existing slides.** If you've been making slides for lab meetings and 1-on-1 meetings (which I encourage — see the [meetings page](../Policies/meetings.md)), you'll have a library of semi-presentable figures to draw from. +4. **Write the narrative in your presenter notes.** For each slide, write out roughly what you want to say. This isn't a script — it's a way to check that your story makes sense. +5. **Print and review on paper.** Print your slides (I like notes view and a 2×6 grid per page), go through with a pen writing narrative ideas and noting figures to change/add. Make those hanges on the computer, repeat. A related tip for your research process more broadly: **draw your plots before you touch a computer.** Sketch what you expect the results to look like. This helps you think about what you're actually testing, and it makes for much better presentations down the road because you've already thought about what the figure is *for*. Pen(cil) and paper is your friend. +6. **Check that your ducks are in a row.** Before you present, check: Is each figure needed? Is each figure explained? Are figure legends, axis labels, and citations all in order? +6. **Give a practice talk to the lab, ideally one week in advance.** At the very least, this forces you to have a working draft. Most likely, it will make clear to you where that draft needs work. We'll have lots of feedback for improvement. +7. **Before you present, re-read your tips.** Seriously — re-read the mindset section above. It's easy to forget in the moment. diff --git a/mkdocs.yml b/mkdocs.yml index 0b948d2..43ab7f5 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -8,23 +8,27 @@ nav: - Health & Wellness: Policies/health_wellness.md - Hours & Remote Work: Policies/hours_remote_vacation.md - Meetings: Policies/meetings.md - - Resources: - - Adobe: Resources/adobe.md - - Basic Github: Resources/basic_github.md - - Booking Rooms: Resources/booking.md + - Doing Science: + - General: Resources/science_general.md + - Writing: Resources/writing.md + - Presentations: Resources/presentations.md - Fellowships/Grants: Resources/funding.md - GenAI: Resources/gen_ai.md + - Training: + - Recommended Reading: Resources/recommended_reading.md + - pRNN Tutorial: Resources/prnn_tutorial.md + - Tools & Setup: - HPC: Resources/hpc.md - - Mailing Lists: Resources/mailing_lists.md - - Mental Health: Resources/mental_health.md + - VS Code: Resources/vs_code.md + - VPN: Resources/vpn.md + - Basic Github: Resources/basic_github.md + - Adobe: Resources/adobe.md - Printing: Resources/printers.md - - pRNN Tutorial: Resources/prnn_tutorial.md - - Recommended Reading: Resources/recommended_reading.md - - Doing Science: Resources/science_general.md + - Lab Logistics: - Travel: Resources/travel.md - - VPN: Resources/vpn.md - - VS Code: Resources/vs_code.md - - Writing: Resources/writing.md - Purchases: Resources/purchases.md + - Booking Rooms: Resources/booking.md + - Mailing Lists: Resources/mailing_lists.md + - Mental Health: Resources/mental_health.md - Onboarding: onboarding.md - Contact: contact.md From fce9540f9ca2e689c90627f01dbd87432bcf3ab7 Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Sun, 8 Mar 2026 15:53:18 -0400 Subject: [PATCH 21/37] Update presentations.md --- docs/Resources/presentations.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/Resources/presentations.md b/docs/Resources/presentations.md index 245dd91..c175913 100644 --- a/docs/Resources/presentations.md +++ b/docs/Resources/presentations.md @@ -40,6 +40,10 @@ This is the single most common thing that goes wrong in scientific presentations This might feel slow, but your audience will thank you. They can't interpret your results if they don't understand the plot, and they almost certainly don't understand the plot as well as you do. Similarly, don't just show summary statistics, build to them. First show what a single "trial" looks like (or whatever the equivalent of a trial is in your case - a learning curve, a simulation, an example). Then show how the summary statistic is calculated from the trial. Then show the statistics over all data points. +More generally: **bring in elements as you talk about them.** Don't throw up a multi-panel figure and then narrate it — reveal each piece as you discuss it, so the audience knows exactly what to look at. If everything appears at once, they're reading ahead while you're still explaining panel A. + +**Avoid jargon, describe results in plain terms first.** It's tempting to lean on jargon - e.g. calling something "consolidation" or "generalization" the moment you show it. But your audience will follow much better if you first describe what's actually happening in the data, and *then* connect it to the technical label. Treat jargon as a conclusion, not a shorthand. + ### Mindset and Delivery @@ -58,7 +62,11 @@ For conference talks, job talks, or any presentation to an external audience, th **Start with a hook.** A story, a picture, a question, a provocative claim — something that grabs attention and motivates the problem you're going to address. Then transition: "Why do I tell this story?" and preview what you're going to talk about. -**Make your story linear.** Don't assume people remember what you said 30 minutes ago. Each section should flow naturally from the one before it, and if you need to refer back to something, remind the audience. +**Your intro should pose a question that is answered by the talk.** It's not enough to just motivate why you started working on something — the introduction should set up a specific question that the audience is waiting to see resolved. Everything that follows should feel like it's building toward that answer. + +**Have your self-introduction ready.** It sounds trivial, but the first 10 seconds set the tone. Know what you're going to say about yourself and your lab so you start with confidence, not fumbling. + +**Make your story linear.** Don't assume people remember what you said 30 minutes ago. Each section should flow naturally from the one before it, and if you need to refer back to something, remind the audience. And don't say "I'll come back to this later" — either tell us now or don't mention it at all. ### Preparing a Presentation From db2563ba5b59d16277f989892b38544610063014 Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Sun, 8 Mar 2026 18:26:05 -0400 Subject: [PATCH 22/37] added claude teams instructions --- .gitignore | 2 ++ docs/Resources/claude_teams.md | 7 +++++++ mkdocs.yml | 1 + 3 files changed, 10 insertions(+) create mode 100644 docs/Resources/claude_teams.md diff --git a/.gitignore b/.gitignore index 4d0e806..983c5c3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ .DS_Store .vscode/settings.json +CLAUDE.md +memory.md diff --git a/docs/Resources/claude_teams.md b/docs/Resources/claude_teams.md new file mode 100644 index 0000000..69fd4ff --- /dev/null +++ b/docs/Resources/claude_teams.md @@ -0,0 +1,7 @@ +# Claude Team Access + +The lab has a Claude Teams subscription. Claude is an AI assistant that can help with writing, coding, data analysis, literature review, and more. + +To join the lab's team plan, use this invite link: [Request Access to Claude Teams](https://claude.ai/join/org/zHXXo3Tq5z8M_rpQRi8gAw). You'll need to sign up for a Claude account (or link your existing one) and your request will be approved by the team admin. + +For guidelines on using generative AI responsibly and effectively in research, see the [GenAI](gen_ai.md) page. diff --git a/mkdocs.yml b/mkdocs.yml index 0b948d2..f2cd3c3 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -13,6 +13,7 @@ nav: - Basic Github: Resources/basic_github.md - Booking Rooms: Resources/booking.md - Fellowships/Grants: Resources/funding.md + - Claude: Resources/claude_teams.md - GenAI: Resources/gen_ai.md - HPC: Resources/hpc.md - Mailing Lists: Resources/mailing_lists.md From fcf2c58c25c665377b953556c85093d2ec039e81 Mon Sep 17 00:00:00 2001 From: Andrea Cumpelik Date: Tue, 10 Mar 2026 09:44:50 -0400 Subject: [PATCH 23/37] Fix typos --- docs/Resources/presentations.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Resources/presentations.md b/docs/Resources/presentations.md index c175913..7d6a762 100644 --- a/docs/Resources/presentations.md +++ b/docs/Resources/presentations.md @@ -26,7 +26,7 @@ A few principles that will make your slides dramatically better: **Slide titles should be the take-home message of the slide.** Not "Results" or "Background" — a declarative sentence that tells the audience what you want them to learn from this slide. If I were to read the sequence of your slide titles in a row, I should be able to come away knowing the message of your talk. A title like "SI vs representational distance" is the labels of the axes, not the title of the slide. Something like "Representational distance increases with sleep" is. -**One idea per slide.** Everything on the screen is something you're asking your audience to think about. If your slide has three different things on it, your audience is thinking about three things while you're talking about one of them. Be consciencious of your audience's attention span and working memory capacity. That being said, if you need three plots to communicate one idea, then they should all be on the same slide. Don't make us hold plots in working memory. +**One idea per slide.** Everything on the screen is something you're asking your audience to think about. If your slide has three different things on it, your audience is thinking about three things while you're talking about one of them. Be conscientious of your audience's attention span and working memory capacity. That being said, if you need three plots to communicate one idea, then they should all be on the same slide. Don't make us hold plots in working memory. ### Explaining Figures @@ -77,7 +77,7 @@ Everyone has their own process for building a talk. Here's a workflow that has w 2. **Start at least 2 weeks before.** Sketch out an idealized narrative — make empty slides with just titles (remember: declarative sentences). Write the conclusions slide. This forces you to figure out what your story actually is. The point isn't to make your slides weeks in advance, it's to get started so your brain has time to think about them when you're not in front of the computer. Again, make empty slides with just titles (remember: declarative sentences). 3. **Pull in existing slides.** If you've been making slides for lab meetings and 1-on-1 meetings (which I encourage — see the [meetings page](../Policies/meetings.md)), you'll have a library of semi-presentable figures to draw from. 4. **Write the narrative in your presenter notes.** For each slide, write out roughly what you want to say. This isn't a script — it's a way to check that your story makes sense. -5. **Print and review on paper.** Print your slides (I like notes view and a 2×6 grid per page), go through with a pen writing narrative ideas and noting figures to change/add. Make those hanges on the computer, repeat. A related tip for your research process more broadly: **draw your plots before you touch a computer.** Sketch what you expect the results to look like. This helps you think about what you're actually testing, and it makes for much better presentations down the road because you've already thought about what the figure is *for*. Pen(cil) and paper is your friend. +5. **Print and review on paper.** Print your slides (I like notes view and a 2×6 grid per page), go through with a pen writing narrative ideas and noting figures to change/add. Make those changes on the computer, repeat. A related tip for your research process more broadly: **draw your plots before you touch a computer.** Sketch what you expect the results to look like. This helps you think about what you're actually testing, and it makes for much better presentations down the road because you've already thought about what the figure is *for*. Pen(cil) and paper is your friend. 6. **Check that your ducks are in a row.** Before you present, check: Is each figure needed? Is each figure explained? Are figure legends, axis labels, and citations all in order? 6. **Give a practice talk to the lab, ideally one week in advance.** At the very least, this forces you to have a working draft. Most likely, it will make clear to you where that draft needs work. We'll have lots of feedback for improvement. 7. **Before you present, re-read your tips.** Seriously — re-read the mindset section above. It's easy to forget in the moment. From 6b5fc0a3d431d4172c48d498accd3ab31ec3b34e Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Tue, 10 Mar 2026 09:47:11 -0400 Subject: [PATCH 24/37] Reorganize resources section in mkdocs.yml --- mkdocs.yml | 47 ++++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 26e7d2e..fd3c335 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -8,28 +8,29 @@ nav: - Health & Wellness: Policies/health_wellness.md - Hours & Remote Work: Policies/hours_remote_vacation.md - Meetings: Policies/meetings.md - - Doing Science: - - General: Resources/science_general.md - - Writing: Resources/writing.md - - Presentations: Resources/presentations.md - - Fellowships/Grants: Resources/funding.md - - Claude: Resources/claude_teams.md - - GenAI: Resources/gen_ai.md - - Training: - - Recommended Reading: Resources/recommended_reading.md - - pRNN Tutorial: Resources/prnn_tutorial.md - - Tools & Setup: - - HPC: Resources/hpc.md - - VS Code: Resources/vs_code.md - - VPN: Resources/vpn.md - - Basic Github: Resources/basic_github.md - - Adobe: Resources/adobe.md - - Printing: Resources/printers.md - - Lab Logistics: - - Travel: Resources/travel.md - - Purchases: Resources/purchases.md - - Booking Rooms: Resources/booking.md - - Mailing Lists: Resources/mailing_lists.md - - Mental Health: Resources/mental_health.md + - Resources: + - Doing Science: + - General: Resources/science_general.md + - Writing: Resources/writing.md + - Presentations: Resources/presentations.md + - Fellowships/Grants: Resources/funding.md + - GenAI: Resources/gen_ai.md + - Training: + - Recommended Reading: Resources/recommended_reading.md + - pRNN Tutorial: Resources/prnn_tutorial.md + - Tools & Setup: + - HPC: Resources/hpc.md + - VS Code: Resources/vs_code.md + - VPN: Resources/vpn.md + - Basic Github: Resources/basic_github.md + - Adobe: Resources/adobe.md + - Printing: Resources/printers.md + - Claude: Resources/claude_teams.md + - Lab Logistics: + - Travel: Resources/travel.md + - Purchases: Resources/purchases.md + - Booking Rooms: Resources/booking.md + - Mailing Lists: Resources/mailing_lists.md + - Mental Health: Resources/mental_health.md - Onboarding: onboarding.md - Contact: contact.md From d087c313a6d0846cfd4b596b5848a59000eb5c4d Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Wed, 11 Mar 2026 17:19:44 -0400 Subject: [PATCH 25/37] Add Future House fellowship link to funding resources --- docs/Resources/funding.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/Resources/funding.md b/docs/Resources/funding.md index 3983caa..2d693e2 100644 --- a/docs/Resources/funding.md +++ b/docs/Resources/funding.md @@ -9,6 +9,7 @@ Early Postdoc - [Life Sciences Research Fund (LSRF)](https://lsrf.org/apply/) - [Helen Hay Whitney](https://hhwf.org/research-fellowship/) - [Jane Coffin Childs](https://www.jccfund.org/eligibilty-criteria/) +- [Future House](https://www.futurehouse.org/fellowship) Transition to Independence (Mid-Late Postdoc) - [Borroughs Wellcome CASI](https://www.bwfund.org/grants/interfaces-in-science/career-awards-at-the-scientific-interface/) From 3b2f6aeae8dd05b1ea22e9a94958168e10e6d2ba Mon Sep 17 00:00:00 2001 From: Andrea Cumpelik Date: Fri, 13 Mar 2026 15:55:19 -0400 Subject: [PATCH 26/37] add QOS-based GPU allocation info for job submissions --- docs/Resources/hpc.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/Resources/hpc.md b/docs/Resources/hpc.md index 9d32c8d..45911aa 100644 --- a/docs/Resources/hpc.md +++ b/docs/Resources/hpc.md @@ -49,6 +49,9 @@ To get started visit this page for [some info](https://docs.ycrc.yale.edu/cluste 5. `mpi`: for highly-parallelized code 6. `pi_NAME`: PI and lab specific nodes available for purchace from YCPC +### QOS-Based GPU Allocation +By default, jobs are submitted with standard priority. This means that when cluster resources are scarce, these jobs can be preempted, or terminated, in favor of high-priority jobs. This isn't generally a problem for shorter jobs, but for long jobs that are resource-intensive, it may make sense to submit a high-priority job using a SLURM mechanism called QOS (Quality of Service). Our lab has a certain number of guaranteed resources which you can gain access by using the `--qos=qos_levenstein` along with `salloc` or `sbatch`. See the [Misha Guide](https://ood-misha.ycrc.yale.edu/public/misha/04-qos.html) for more info. It's also recommended to use checkpoints in case a job does get terminated. + ### Cheat Sheet * Interactive jobs: From f74e90b15bd7297ab165d498aba77c302eb98e73 Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Fri, 13 Mar 2026 17:32:10 -0400 Subject: [PATCH 27/37] added authorship guidelines --- docs/Policies/authorship_guidelines.md | 48 ++++++++++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 49 insertions(+) create mode 100644 docs/Policies/authorship_guidelines.md diff --git a/docs/Policies/authorship_guidelines.md b/docs/Policies/authorship_guidelines.md new file mode 100644 index 0000000..89889f3 --- /dev/null +++ b/docs/Policies/authorship_guidelines.md @@ -0,0 +1,48 @@ +## Authorship Guidelines + +In a theory group, it's often difficult to tell who has contributed to a project enough to merit authorship. A lot of our work is conceptual, and progress often arises from ongoing discussions between people in the lab. Intellectual work is work, and should not be devalued relative to "hands on" work. Our work also uses code that, once developed, is shared widely — and good code can take many hours of work to develop. This is similar to the case of experimental work, in which datasets can take years of work to collect. + +Because of this, authorship in our lab isn't always obvious, and it's important that we talk about it openly rather than let assumptions lead to misunderstandings. For reference, the [NIH guidelines for authorship contributions](https://oir.nih.gov/system/files/media/file/2024-07/guidelines-authorship_contributions.pdf) are a useful reference for which types of contributions do and don't typically warrant authorship. Here are some guidelines for our group: + +### Guidelines + +**If you use someone else's code that has not been published, they get authorship.** + +**If you use someone else's code that has been published and shared,** they should be offered authorship if they contributed to significantly modifying or adapting the code to your project. + +We want to encourage the writing of good, reusable code. One way to do that is with the incentive that if your code is usable by others in the lab, you'll get credit for it. + +**If you've had significant discussions with someone that contributed to the conceptual development of your project,** they should be offered authorship. This is a grey area, and it's ultimately up to your discretion — but when in doubt, offer. + +**If you collaborate with experimentalists or use their data,** they get offered authorship. This includes discussions about interpretation of your results, which I highly recommend doing early in a project. + +**In general, err on the side of giving authorship rather than not.** The cost to existing authors is close to zero, and the value it creates — especially for early-career researchers — can be significant. + +That being said, we should also be thoughtful about the possible downsides of overly generous authorship. Research has shown that e.g. [women can be perceived as "less responsible" for papers with many authors than their male colleagues](https://www.journals.uchicago.edu/doi/abs/10.1086/711401). Authorship decisions should reflect real contributions, and we should be aware of how credit is perceived in the broader academic context. + + +### Author Order + +Author order conventions vary across fields, but here's how it typically works in ours: + +**First author** — the person who did the bulk of the work on the project. In our lab, this is usually the PhD student or postdoc who led the project. + +**Last author** — the senior author, typically the PI. This position signals supervisory and intellectual oversight of the project. + +**Middle authors** — listed roughly in order of contribution, though this can be flexible. If you're unsure where you fall, ask. + +**Co-first authors** — when two people contributed roughly equally to the work. This is indicated with an asterisk or footnote in the paper. This is a bit of a grey area in the field - in theory it should be equal credit. In practice, some people see it as equal-but-unequal... But certainly being second co-first author is seen as better than second author. Personally, I think the value of a close collaboration usually outweighs the potential negative value of this impression, and I always try to cite co-first author papers as (Author*, Author*, et al). + +If you have questions about author order on a project, bring it up with me. I'd rather we have a slightly uncomfortable conversation than have anyone feel their contributions aren't recognized. + + +### When to Discuss Authorship + +One standard piece of advice is to "discuss authorship early" — ideally when a collaboration or project begins, not when the paper is being written. To be honest, I find this a bit difficult because the nature of science is that projects grow and develop over time. If this feels useful to you, by all means go for it. Authorship expectations can change as a project evolves. If someone's role grows or shrinks significantly, revisit the conversation. + + +### Before You Submit + +**Submit nothing without all authors seeing it and giving approval.** This is standard practice in academic science, but it's one of those things nobody explicitly tells you. No paper, abstract, or grant goes out the door without sign-off from everyone involved. Give your co-authors enough time to actually read and respond — don't send a draft the night before a deadline and expect approval by morning. + + diff --git a/mkdocs.yml b/mkdocs.yml index fd3c335..269bf8e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -3,6 +3,7 @@ site_url: https://levensteinlab.github.io/lab-handbook repo_url: https://github.com/LevensteinLab/Lab-Handbook nav: - Policies: + - Authorship Guidelines: Policies/authorship_guidelines.md - Good Software: Policies/code_software.md - Conferences and Workshops: Policies/conferences_workshops.md - Health & Wellness: Policies/health_wellness.md From 32904bc38b39fba77a61c13399a541e8b02f9214 Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Mon, 16 Mar 2026 14:58:09 -0400 Subject: [PATCH 28/37] Add tip for presenting to the least knowledgeable audience Added a tip about presenting to the least knowledgeable person in the room to enhance audience understanding. --- docs/Resources/presentations.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/Resources/presentations.md b/docs/Resources/presentations.md index 7d6a762..41783c3 100644 --- a/docs/Resources/presentations.md +++ b/docs/Resources/presentations.md @@ -53,6 +53,8 @@ When presenting, your job is not to get through your slides. It's to make sure e **Watch good talks and PAY ATTENTION.** You'll learn more about presenting from actively watching great speakers than from any list of tips (including this one). Pay attention to how they structure their story, how they use their slides, how they handle transitions, how they explain figures. +**Present to the least knowledgable person in the room.** A common mistaken assumption most students have is that everyone else knows everything they know, and more. However, most of your audience (including professors!) will not know everything you know about your project or its background. If the students in the audience come away understanding your project, it's motivation, and results, that's a win. Present as if you're presenting for THEM, not as if you're presenting to the one expert. + ### Structuring a Talk (Beyond Lab Meeting) From 7215d6dc5d2bd9e133c4cd6c0d881b89b73bbc90 Mon Sep 17 00:00:00 2001 From: Andrea Cumpelik Date: Mon, 16 Mar 2026 17:12:39 -0400 Subject: [PATCH 29/37] Typo --- docs/Resources/presentations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Resources/presentations.md b/docs/Resources/presentations.md index 41783c3..2e792eb 100644 --- a/docs/Resources/presentations.md +++ b/docs/Resources/presentations.md @@ -53,7 +53,7 @@ When presenting, your job is not to get through your slides. It's to make sure e **Watch good talks and PAY ATTENTION.** You'll learn more about presenting from actively watching great speakers than from any list of tips (including this one). Pay attention to how they structure their story, how they use their slides, how they handle transitions, how they explain figures. -**Present to the least knowledgable person in the room.** A common mistaken assumption most students have is that everyone else knows everything they know, and more. However, most of your audience (including professors!) will not know everything you know about your project or its background. If the students in the audience come away understanding your project, it's motivation, and results, that's a win. Present as if you're presenting for THEM, not as if you're presenting to the one expert. +**Present to the least knowledgable person in the room.** A common mistaken assumption most students have is that everyone else knows everything they know, and more. However, most of your audience (including professors!) will not know everything you know about your project or its background. If the students in the audience come away understanding your project, its motivation, and results, that's a win. Present as if you're presenting for THEM, not as if you're presenting to the one expert. ### Structuring a Talk (Beyond Lab Meeting) From 80174ab6ba8ee82beaae558fd692c8cc8115726a Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Fri, 20 Mar 2026 13:17:47 -0400 Subject: [PATCH 30/37] added update to meetings.md -new lab meeting time/format -suggestions about sending plots on slack - add interpretation! --- docs/Policies/meetings.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/Policies/meetings.md b/docs/Policies/meetings.md index 6cf8101..e7d2c76 100644 --- a/docs/Policies/meetings.md +++ b/docs/Policies/meetings.md @@ -36,13 +36,15 @@ I am always happy to discuss results: positive or negative, challenges you’re or anything else you want to talk about related to your project, career, or science in general. You can always message me on slack, and if my door is open, please come in! +One thing worth mentioning: when you share plots or results on slack between meetings, please send some interpretation along with them. Point out what you notice, what you think it means, potential caveats, and what you're thinking of doing next. It's tempting (and very easy on slack) to just drop a figure with no comment, but even a few sentences of written analysis makes the conversation much more useful — it prompts you to think through what you're seeing, and it gives me something specific to respond to. And for what it's worth, seeing and discussing your plots is one of the best parts of this job, so don't be shy about sharing (: (See also: [Communication](https://levensteinlab.github.io/Lab-Handbook/Policies/communication/).) -### Journal Club -As of Spring 2026, journal clubs and lab buisness meetings are every Friday, at 10AM. +### Lab Meeting -**Format:** +Lab meeting is every Thursday at 10AM. We follow a rotation where each person alternates between presenting a research update and picking a paper for journal club. The schedule is posted in the #lab-meeting channel on Slack. -- We follow a rotation picking a paper to read. Paper should be sent to the group 1 week before the journal club (i.e. EOD the previous Friday). There will usually be many interesting papers to pick from in the #papers channel on slack. -- Each lab member is assigned a figure or two to walk the group through. (This approach makes sure we all read the paper, and avoids the trap of one person reading and presenting while others do not engage.) -- You should come prepared to explain your assigned figure (no slides needed), answer questions about it, and ask the group about anything you did not understand. If there are supplemental figures or methods associated with your figure, you should be familiar with those as well. It's OK to not understand everything fully - the point of journal club is to talk through and learn together. +**Research presentations** are a chance to get feedback, practice presenting, and keep everyone up to date on what's happening in the lab. See the [presentations guide](https://levensteinlab.github.io/Lab-Handbook/Resources/presentations/) for tips on giving a good lab meeting talk. + +**Journal club** works a bit differently from the standard format: one person picks the paper, but everyone reads it, and each lab member is assigned a figure or two to walk the group through. You should come prepared to explain your assigned figure (no slides needed), answer questions about it, and ask the group about anything you didn't understand. If there are supplemental figures or methods associated with your figure, you should be familiar with those as well. It's OK to not understand everything fully — the point of journal club is to talk through and learn together. There will usually be many interesting papers to pick from in the #papers channel on Slack. + +The Geiller lab also has lab meeting on Mondays at 9AM, and everyone in our group is welcome to join. If you're interested in hippocampal circuits, I'd encourage you to sit in on theirs as well — it's a great way to broaden your exposure and build connections across labs. From 944809d260ab0f1cad9349e92e5cd77b3426ba4c Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Fri, 20 Mar 2026 13:18:30 -0400 Subject: [PATCH 31/37] added communication.md with communication policies --- docs/Policies/communication.md | 23 +++++++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 24 insertions(+) create mode 100644 docs/Policies/communication.md diff --git a/docs/Policies/communication.md b/docs/Policies/communication.md new file mode 100644 index 0000000..efc67c0 --- /dev/null +++ b/docs/Policies/communication.md @@ -0,0 +1,23 @@ +### How We Communicate + +Our primary communication tool is Slack. Day-to-day lab communication — sharing results, asking questions, posting interesting papers, coordinating logistics — all happens there. Email is mostly for communicating with people outside the lab (collaborators, departments, etc.), and I'll rarely email you about lab stuff. + +A few norms worth making explicit: + +**Reaching me.** You can always message me on Slack, and if my door is open, come on in. I try to be responsive on Slack during the workday, but I'm not always glued to it — if something is time-sensitive, don't hesitate to message me again or stop by. If you send me something that requires a longer or more thoughtful response, it might take me a bit to get back to you, but I will. If I haven't responded and you need an answer, please nudge me — I won't be annoyed, I'll be grateful. + +**Sharing results between meetings.** When you share plots or results on Slack, please include some interpretation with them. Don't just drop a figure — point out what you notice, what you think it means, and what you're thinking of doing next. A few sentences of context turns a plot into a conversation. (More on this in the [meetings page](https://levensteinlab.github.io/Lab-Handbook/Policies/meetings/#1-on-1-meetings).) + +**Off-hours messages.** I will sometimes message at evenings, or on weekends. Please do not think this means I expect you to act on, or even read, the message until the next workday unless it's specifically designated as urgent/time sensitive. It only means that I thought of something relevant to your project and didn't want to forget. If you'd prefer I not message you outside of working hours (unless urgent), please let me know and I'll schedule these for the next workday. (See also: [Hours & Remote Work](https://levensteinlab.github.io/Lab-Handbook/Policies/hours_remote_vacation/).) + +**Slack channels.** We have a few channels worth knowing about: + +- **#all-levenstein-lab** — lab announcements, logistics, and anything important for everyone to see +- **#papers** — interesting papers you come across. Post freely here! Even if you've only read the abstract, sharing papers helps everyone stay aware of what's happening in the field. This channel also feeds our [journal club](https://levensteinlab.github.io/Lab-Handbook/Policies/meetings/#lab-meeting) paper selection. +- **#lab-meeting** — coordination and scheduling for lab meeting (the schedule spreadsheet is pinned here) +- **#lab-handbook** — discussion about development and changes to this handbook +- **#code / #gen-ai-tools** — sharing coding tips, tools, and AI/LLM resources (see also: [GenAI guidelines](https://levensteinlab.github.io/Lab-Handbook/Resources/gen_ai/)) +- **#lunch** — coordinating lunch plans +- **#seminars-events** — upcoming seminars, talks, and events worth attending + +**A general note on asking questions.** There is no such thing as a dumb question in this lab. If you're stuck, confused, or just want to think something through with someone, ask. Ask me, ask your labmates, post in Slack. One of the things I value most about being in a lab is that we can think together — and that only works if people are willing to say "I don't understand this" or "can someone help me think through this?" diff --git a/mkdocs.yml b/mkdocs.yml index 269bf8e..27f3b93 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -3,6 +3,7 @@ site_url: https://levensteinlab.github.io/lab-handbook repo_url: https://github.com/LevensteinLab/Lab-Handbook nav: - Policies: + - Communication: Policies/communication.md - Authorship Guidelines: Policies/authorship_guidelines.md - Good Software: Policies/code_software.md - Conferences and Workshops: Policies/conferences_workshops.md From 944661891743fa2b61a9beb8c18b3ff47d192e36 Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Fri, 20 Mar 2026 13:18:43 -0400 Subject: [PATCH 32/37] added many cross links between pages --- docs/Policies/code_software.md | 2 +- docs/Policies/conferences_workshops.md | 4 ++-- docs/Policies/hours_remote_vacation.md | 2 +- docs/Resources/claude_teams.md | 2 +- docs/Resources/presentations.md | 2 +- docs/Resources/prnn_tutorial.md | 4 ++-- docs/Resources/travel.md | 2 +- docs/Resources/vs_code.md | 2 +- docs/Resources/writing.md | 8 ++++---- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/Policies/code_software.md b/docs/Policies/code_software.md index 1db15ae..8f4fe94 100644 --- a/docs/Policies/code_software.md +++ b/docs/Policies/code_software.md @@ -16,7 +16,7 @@ Here's how we may format our code as a lab: ### Conventions Patrick Mineault's code handbook above is a must-read before you start coding. It reviews the best ways to set up your project, to maintain clarity and cleanliness, to test your code, and to document your code as well. The handbook is the best way to learn these conventions, especially when it comes to efficiency and testing, which rely on great examples. However a few helpful tips to get you started in the right direction -- Use `git` often, often more than you think you should. See `Resources and How-Tos/basic_github.md` for additional information. +- Use `git` often, often more than you think you should. See the [basic GitHub tutorial](https://levensteinlab.github.io/Lab-Handbook/Resources/basic_github/) for additional information. - Setup your repository correctly, from the beginning. - Mineault's base directory structure works really well to keep the inputs and outputs of your code separate: - `data` folder: raw input data diff --git a/docs/Policies/conferences_workshops.md b/docs/Policies/conferences_workshops.md index 137d9e4..3857b4d 100644 --- a/docs/Policies/conferences_workshops.md +++ b/docs/Policies/conferences_workshops.md @@ -6,7 +6,7 @@ If you are presenting your work, the lab will fund your registration and travel Please plan to **send me a draft of your abstract one week before deadline**. This gives us enough time for a few rounds of edits and discussion, and to develop the story together. Your work, and your abstract acceptance rate, will thank you. I’ll note that you often feel like your project is not-quite-ready when you start writing your abstract, and that the abstract writing process is often when the project gets developed to the point where it’s ready to submit… long story short, don’t be afraid to write an abstract even if you feel you’re not ready :) -As with a paper submission, nothing goes out without all co-authors seeing and approving the final version. +As with a paper submission, nothing goes out without all co-authors seeing and approving the final version (see [authorship guidelines](https://levensteinlab.github.io/Lab-Handbook/Policies/authorship_guidelines/)). The exact number of conferences you should expect to present at per year will depend on your career stage, and status of your project. IMO the best times to present are when you're halfway through a project, and trying to figure out what the story is, and just after you've posted a preprint. @@ -20,4 +20,4 @@ If there's a summer school or educational workshop that would be good for your c 2) that you take them seriously (they're a lot of fun, and you'll meet friends and colleagues you'll have for the rest of your career. but they're also a lot of material to learn in a short amount of time), and -3) that you make an effort to think about how you can bring back the things you learn to your work in the lab. at the very least you'll have to give a "what I learned at summer camp" presentation in lab meeting 🏕️ +3) that you make an effort to think about how you can bring back the things you learn to your work in the lab. at the very least you'll have to give a "what I learned at summer camp" presentation in lab meeting 🏕️ (See [presentations guide](https://levensteinlab.github.io/Lab-Handbook/Resources/presentations/) for tips.) diff --git a/docs/Policies/hours_remote_vacation.md b/docs/Policies/hours_remote_vacation.md index 6bcd408..e76ded8 100644 --- a/docs/Policies/hours_remote_vacation.md +++ b/docs/Policies/hours_remote_vacation.md @@ -4,6 +4,6 @@ As our work is predominantly theoretical/computational, we have a lot of flexibi If it fits you, I would encourage you to plan one day a week where you work from home (or elsewhere out of office). This shift in perspective can be helpful for your work and I encourage you to take advantage of this time to think freely and critically about your project and current approaches. I do ask that you plan to attend lab meetings in person -- in my experience, remote attendance encourages people to listen (at best), rather than participate, in lab meetings. Also, I ask that you plan to be physically in lab 3-4 days a week. Of course, this can vary week to week and exceptions will be made to fit people’s circumstances. -I will sometimes message at evenings, or on weekends. Please do not think this means I expect you to act on, or even read, the message until the next workday unless it’s specifically designated as urgent/time sensitive. It only means that I thought of something relevant to your project and didn’t want to forget. If you'd prefer I not message you outside of working hours (unless urgent), please let me know and I'll schedule these for the next workday. +I will sometimes message at evenings, or on weekends. Please do not think this means I expect you to act on, or even read, the message until the next workday unless it’s specifically designated as urgent/time sensitive. It only means that I thought of something relevant to your project and didn’t want to forget. If you’d prefer I not message you outside of working hours (unless urgent), please let me know and I’ll schedule these for the next workday. (See also: [Communication](https://levensteinlab.github.io/Lab-Handbook/Policies/communication/).) I expect you will be taking vacations. I usually take off from the weekend before Christmas until the weekend after new years, a few days around thanksgiving, a week or two over the summer, and the various official 3-day weekends. I’ll lightly respond to emails during these times, do some reading, maybe some writing. But in general I like to use this time to recharge, spend some time with family and hobbies, and I encourage you all to do the same. For more about work-life balance in academia, please see [Work-life balance] **TODO: @dan include link**. diff --git a/docs/Resources/claude_teams.md b/docs/Resources/claude_teams.md index 69fd4ff..6ba34f9 100644 --- a/docs/Resources/claude_teams.md +++ b/docs/Resources/claude_teams.md @@ -4,4 +4,4 @@ The lab has a Claude Teams subscription. Claude is an AI assistant that can help To join the lab's team plan, use this invite link: [Request Access to Claude Teams](https://claude.ai/join/org/zHXXo3Tq5z8M_rpQRi8gAw). You'll need to sign up for a Claude account (or link your existing one) and your request will be approved by the team admin. -For guidelines on using generative AI responsibly and effectively in research, see the [GenAI](gen_ai.md) page. +For guidelines on using generative AI responsibly and effectively in research, see the [GenAI](https://levensteinlab.github.io/Lab-Handbook/Resources/gen_ai/) page. diff --git a/docs/Resources/presentations.md b/docs/Resources/presentations.md index 7d6a762..d519af0 100644 --- a/docs/Resources/presentations.md +++ b/docs/Resources/presentations.md @@ -75,7 +75,7 @@ Everyone has their own process for building a talk. Here's a workflow that has w 1. **Collect ideas as they come.** Any time you have an idea for a talk (a cool figure, a way to frame a result, a transition that works) write it down somewhere. Don't try to build a talk all at once from scratch. 2. **Start at least 2 weeks before.** Sketch out an idealized narrative — make empty slides with just titles (remember: declarative sentences). Write the conclusions slide. This forces you to figure out what your story actually is. The point isn't to make your slides weeks in advance, it's to get started so your brain has time to think about them when you're not in front of the computer. Again, make empty slides with just titles (remember: declarative sentences). -3. **Pull in existing slides.** If you've been making slides for lab meetings and 1-on-1 meetings (which I encourage — see the [meetings page](../Policies/meetings.md)), you'll have a library of semi-presentable figures to draw from. +3. **Pull in existing slides.** If you've been making slides for lab meetings and 1-on-1 meetings (which I encourage — see the [meetings page](https://levensteinlab.github.io/Lab-Handbook/Policies/meetings/)), you'll have a library of semi-presentable figures to draw from. 4. **Write the narrative in your presenter notes.** For each slide, write out roughly what you want to say. This isn't a script — it's a way to check that your story makes sense. 5. **Print and review on paper.** Print your slides (I like notes view and a 2×6 grid per page), go through with a pen writing narrative ideas and noting figures to change/add. Make those changes on the computer, repeat. A related tip for your research process more broadly: **draw your plots before you touch a computer.** Sketch what you expect the results to look like. This helps you think about what you're actually testing, and it makes for much better presentations down the road because you've already thought about what the figure is *for*. Pen(cil) and paper is your friend. 6. **Check that your ducks are in a row.** Before you present, check: Is each figure needed? Is each figure explained? Are figure legends, axis labels, and citations all in order? diff --git a/docs/Resources/prnn_tutorial.md b/docs/Resources/prnn_tutorial.md index 79ae71a..0083845 100644 --- a/docs/Resources/prnn_tutorial.md +++ b/docs/Resources/prnn_tutorial.md @@ -3,9 +3,9 @@ There are some extra steps in managing the requirements needed for the [Predictive RNN](https://github.com/LevensteinLab/pRNN) project. This guide should help you get everything set up on Misha. 1. Ensure you have an account on Misha, and log on. - 1. Make sure you're running a compute node. If you're in a normal terminal/SSH session, you can start an interactive session with e.g. `salloc -t 2:00:00`. If are using the VS Code Proxy (as described on the [vs_code.md](https://levensteinlab.github.io/Lab-Handbook/Resources/vs_code/) page), you're already on a compute node. + 1. Make sure you're running a compute node. If you're in a normal terminal/SSH session, you can start an interactive session with e.g. `salloc -t 2:00:00`. If are using the VS Code Proxy (as described on the [VS Code page](https://levensteinlab.github.io/Lab-Handbook/Resources/vs_code/)), you're already on a compute node. 2. Make sure you've also set up SSH cloning from the cluster, because you'll need to clone repositories into your storage. We're using SSH clone links from here out. - 3. See the page on HPCs for more information on this. + 3. See the [HPC guide](https://levensteinlab.github.io/Lab-Handbook/Resources/hpc/) for more information on this. 3. Clone the `pRNN` package into your `project` folder. This is accessible by typing `cd ~/../../project/levenstein/YOUR_NETID/`. This brings you to the `/gpfs/radev/project/levenstein/YOUR_NETID`. 1. `git clone git@github.com:LevensteinLab/pRNN.git` 2. 👁️ Watch the repository so you can be notified of any updates! diff --git a/docs/Resources/travel.md b/docs/Resources/travel.md index 0bc3cb9..c6ec7c1 100644 --- a/docs/Resources/travel.md +++ b/docs/Resources/travel.md @@ -1,4 +1,4 @@ -To book travel and accommodation for conferences, use World Travel/Concur, Yale's platform for business travel. See [here](https://your.yale.edu/work-yale/campus-services/yale-travel-management) for more information. You can log into the Concur website [here](https://concur.yale.edu/). +To book travel and accommodation for [conferences](https://levensteinlab.github.io/Lab-Handbook/Policies/conferences_workshops/), use World Travel/Concur, Yale's platform for business travel. See [here](https://your.yale.edu/work-yale/campus-services/yale-travel-management) for more information. You can log into the Concur website [here](https://concur.yale.edu/). There is a training in Workday called ["Booking Federally Sponsored Travel with World Travel"](https://www.myworkday.com/yale/learning/course/1e7e093ab7a21001abc67bad56c90001?type=9882927d138b100019b928e75843018d&record=00f9b09f318e102c62781e428a3d0001) that you should complete in order to understand the restrictions on booking travel when using federal funds. diff --git a/docs/Resources/vs_code.md b/docs/Resources/vs_code.md index 1310ec4..6890880 100644 --- a/docs/Resources/vs_code.md +++ b/docs/Resources/vs_code.md @@ -8,7 +8,7 @@ Some basic tips to get started: 5. Create an environment 6. Use the debugger. You can copy `Resources/debug_me.py` to try it out! If you want, you can create a new project repo that you will also use for the pytorch tutorial as part of your first project. -To use VS Code with the cluster off campus, you will need to use a VPN (see `Resources/hpc.md` for more information on using the cluster and `Resources/vpn.md` to configure the VPN). To connect VS Code to the Misha cluster: +To use VS Code with the cluster off campus, you will need to use a VPN (see the [HPC guide](https://levensteinlab.github.io/Lab-Handbook/Resources/hpc/) for more information on using the cluster and [VPN setup](https://levensteinlab.github.io/Lab-Handbook/Resources/vpn/) to configure the VPN). To connect VS Code to the Misha cluster: 1. Go to the [Misha OnDemand website](https://ood-misha.ycrc.yale.edu/). 2. Start a VS Code Proxy from the Interactive Apps section. - Configure the proxy according to your needs (e.g. time, memory, number of cores, and type of partition) diff --git a/docs/Resources/writing.md b/docs/Resources/writing.md index a9043bc..c2f67e0 100644 --- a/docs/Resources/writing.md +++ b/docs/Resources/writing.md @@ -18,10 +18,10 @@ because writing is a thinking tool as much as it’s a communication tool A heads up: when you get a draft back from me, it will likely have a lot of red ink. [More red ink is good](https://x.com/gbosslet/status/1109544049583841280). Make sure to give yourself, and me, enough time to work on drafts together -(e.g. I want to see abstract drafts a week before conference submission). -For any document you submit, expect a lot of comments/suggestions and few rounds of back-and-forth editing. -This is a dialogue of iterative, collective development of your document, your project, and your abilities as a writer; -not a corrective exercise. +(e.g. I want to see abstract drafts a week before [conference](https://levensteinlab.github.io/Lab-Handbook/Policies/conferences_workshops/) submission). +For any document you submit, expect a lot of comments/suggestions and few rounds of back-and-forth editing. +This is a dialogue of iterative, collective development of your document, your project, and your abilities as a writer; +not a corrective exercise. See also the [authorship guidelines](https://levensteinlab.github.io/Lab-Handbook/Policies/authorship_guidelines/) for how we handle co-authorship. I prefer to use google doc because I think it has the best tools for co-writing. **Tips and tricks** From f742852eabd2e4fb862cdc7fdf70e2dc06dd26a8 Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Fri, 20 Mar 2026 13:26:38 -0400 Subject: [PATCH 33/37] Update gen_ai.md --- docs/Resources/gen_ai.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/Resources/gen_ai.md b/docs/Resources/gen_ai.md index 9ead528..9ad8817 100644 --- a/docs/Resources/gen_ai.md +++ b/docs/Resources/gen_ai.md @@ -9,8 +9,11 @@ There has been immense progress in the last 2-3 years regarding the use of langu 5. [Should neuroscientists 'vibe code'?(Benjamin Dichter, The Transmitter)](https://www.thetransmitter.org/craft-and-careers/should-neuroscientists-vibe-code/) 6. [AI agents are aeroplanes for the mind: five ways to ensure that scientists are responsible pilots](https://www.nature.com/articles/d41586-026-00665-y) +### Claude Teams Access +The lab has a Claude Teams subscription. See the [Claude Teams page](https://levensteinlab.github.io/Lab-Handbook/Resources/claude_teams/) for how to join and get started. + ### GitHub Copilot Access -As university-affiliated researchers, we may have access to AI completion tools such as GitHub Copilot. The Pro tier provides a 30-day free trial for researchers/educators. Here are the steps to get access: +Note: for AI-assisted coding, we recommend using our lab's [Claude Teams](https://levensteinlab.github.io/Lab-Handbook/Resources/claude_teams/) account (which includes Claude Code) instead of Copilot. That said, as university-affiliated researchers, we may have access to AI completion tools such as GitHub Copilot. The Pro tier provides a 30-day free trial for researchers/educators. Here are the steps to get access: 1. Visit the [GitHub documentation](https://docs.github.com/en/copilot/how-tos/manage-your-account/get-free-access-to-copilot-pro) on Copilot Pro access. 2. Click on "Apply to GitHub Education as a teacher". From 582472fdcf0cdb297ca256f10f81c77d0cb03fc5 Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Mon, 23 Mar 2026 16:45:08 -0400 Subject: [PATCH 34/37] added lab handbook page --- docs/Policies/communication.md | 2 ++ docs/Policies/lab_handbook.md | 28 ++++++++++++++++++++++++++++ docs/onboarding.md | 2 +- mkdocs.yml | 1 + 4 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 docs/Policies/lab_handbook.md diff --git a/docs/Policies/communication.md b/docs/Policies/communication.md index efc67c0..ea23418 100644 --- a/docs/Policies/communication.md +++ b/docs/Policies/communication.md @@ -20,4 +20,6 @@ A few norms worth making explicit: - **#lunch** — coordinating lunch plans - **#seminars-events** — upcoming seminars, talks, and events worth attending +**Handbook updates.** When changes are made to the lab handbook, a pull request will be submitted and all lab members will be requested as reviewers — you'll get an email notification and a message in #lab-handbook. Only one person needs to approve a PR, but the notification is a prompt for everyone to look over the changes. So: (1) when you get this notification, go look over the changes, and (2) if no one else has approved the PR yet, please approve it. For more on how the handbook works and how to contribute, see the [lab handbook page](https://levensteinlab.github.io/Lab-Handbook/Policies/lab_handbook/). + **A general note on asking questions.** There is no such thing as a dumb question in this lab. If you're stuck, confused, or just want to think something through with someone, ask. Ask me, ask your labmates, post in Slack. One of the things I value most about being in a lab is that we can think together — and that only works if people are willing to say "I don't understand this" or "can someone help me think through this?" diff --git a/docs/Policies/lab_handbook.md b/docs/Policies/lab_handbook.md new file mode 100644 index 0000000..b49b017 --- /dev/null +++ b/docs/Policies/lab_handbook.md @@ -0,0 +1,28 @@ +### About This Handbook + +This handbook is a living document — it will evolve as the lab grows and as we figure out what works. I'll be honest: I have no clue how to run a lab aside from what I've seen and heard does and doesn't work. This handbook is part of a journey to facilitate the best lab environment I can, for its members and for the research, and I want it to be something we build together. + +That means every lab member is expected to contribute. If you find something out of date, poorly described, or missing, fix it. If you disagree with something, bring it up — in the #lab-handbook channel on Slack, in a 1-on-1, or in a PR comment. The handbook should reflect how we actually work, not how I imagined we would work when I wrote the first draft. + +### How to Make Changes + +The handbook is an [MkDocs](https://www.mkdocs.org/) site hosted on GitHub Pages. The source files live in the [Lab-Handbook repository](https://github.com/LevensteinLab/Lab-Handbook) on GitHub — each page is a markdown file in the `docs/` folder, and the site structure is defined in `mkdocs.yml`. + +To make a change: + +1. Create a branch and edit the relevant markdown file(s). +2. If you're adding a new page, add it to both the `docs/` folder and the `nav` section of `mkdocs.yml` — otherwise it won't show up on the site. +3. Open a pull request. + 1. Request `Levensteinlab/lab-members` as reviewers (this also sends a notification to #lab-handbook on Slack). +4. Once at least one person has reviewed and approved your PR, it can be merged. + +If you're not sure how to do any of this, see the [basic GitHub tutorial](https://levensteinlab.github.io/Lab-Handbook/Resources/basic_github/) or ask in #lab-handbook. Your first contribution is part of [onboarding](https://levensteinlab.github.io/Lab-Handbook/onboarding/) — you should have made at least one improvement to the handbook by the time you complete onboarding. + +### Reviewing Changes + +When a pull request is opened, all lab members are requested as reviewers. You'll get an email notification and a message in the #lab-handbook channel. Only one person needs to approve a PR, but the notification is a prompt for everyone to look over the changes. So: + +1. When you get this notification, go look over the changes. +2. If no one else has approved the PR yet, please approve it. + +This is how we keep the handbook accurate and up to date as a team. diff --git a/docs/onboarding.md b/docs/onboarding.md index 95bd83e..4dcdb58 100644 --- a/docs/onboarding.md +++ b/docs/onboarding.md @@ -47,7 +47,7 @@ - Join [Levenstein Lab github organization](https://github.com/LevensteinLab) - send Dan your github username and he'll add you - [Basic Github tutorial](https://levensteinlab.github.io/Lab-Handbook/Resources/basic_github/) - make your github account, learn to make a PR. - Follow the lab handbook repository so you get notified of future updates to the handbook, and have the opportunity to read and discuss them - - Your first PR: [Update the lab handbook](https://github.com/LevensteinLab/Lab-Handbook) to improve something that was unclear or missing up until now. Add your contact information to [contact.md](https://levensteinlab.github.io/Lab-Handbook/contact/) + - Your first PR: [Update the lab handbook](https://github.com/LevensteinLab/Lab-Handbook) to improve something that was unclear or missing up until now. Add your contact information to [contact.md](https://levensteinlab.github.io/Lab-Handbook/contact/). See the [lab handbook page](https://levensteinlab.github.io/Lab-Handbook/Policies/lab_handbook/) for how contributions work. - Join [Mailing lists/groups at Yale](https://levensteinlab.github.io/Lab-Handbook/Resources/mailing_lists/) **First readings (first week)**: diff --git a/mkdocs.yml b/mkdocs.yml index 27f3b93..3feb214 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -3,6 +3,7 @@ site_url: https://levensteinlab.github.io/lab-handbook repo_url: https://github.com/LevensteinLab/Lab-Handbook nav: - Policies: + - Lab Handbook: Policies/lab_handbook.md - Communication: Policies/communication.md - Authorship Guidelines: Policies/authorship_guidelines.md - Good Software: Policies/code_software.md From 4e3ef0d622659970d1213f11747e210a5ef7a23e Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Mon, 23 Mar 2026 16:46:49 -0400 Subject: [PATCH 35/37] Revise handbook updates for clarity on PR reviews Updated the handbook updates section to encourage discussion on changes. --- docs/Policies/communication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Policies/communication.md b/docs/Policies/communication.md index ea23418..e59d9a8 100644 --- a/docs/Policies/communication.md +++ b/docs/Policies/communication.md @@ -20,6 +20,6 @@ A few norms worth making explicit: - **#lunch** — coordinating lunch plans - **#seminars-events** — upcoming seminars, talks, and events worth attending -**Handbook updates.** When changes are made to the lab handbook, a pull request will be submitted and all lab members will be requested as reviewers — you'll get an email notification and a message in #lab-handbook. Only one person needs to approve a PR, but the notification is a prompt for everyone to look over the changes. So: (1) when you get this notification, go look over the changes, and (2) if no one else has approved the PR yet, please approve it. For more on how the handbook works and how to contribute, see the [lab handbook page](https://levensteinlab.github.io/Lab-Handbook/Policies/lab_handbook/). +**Handbook updates.** When changes are made to the lab handbook, a pull request will be submitted and all lab members will be requested as reviewers — you'll get an email notification and a message in #lab-handbook. Only one person needs to approve a PR, but the notification is a prompt for everyone to look over and discuss the changes. So: (1) when you get this notification, go look over the changes, and (2) if no one else has approved the PR yet, please approve it. For more on how the handbook works and how to contribute, see the [lab handbook page](https://levensteinlab.github.io/Lab-Handbook/Policies/lab_handbook/). **A general note on asking questions.** There is no such thing as a dumb question in this lab. If you're stuck, confused, or just want to think something through with someone, ask. Ask me, ask your labmates, post in Slack. One of the things I value most about being in a lab is that we can think together — and that only works if people are willing to say "I don't understand this" or "can someone help me think through this?" From df063f1986a95ec190649869c2de846070dd319d Mon Sep 17 00:00:00 2001 From: Dan Levenstein Date: Tue, 7 Apr 2026 14:37:47 -0400 Subject: [PATCH 36/37] Update meeting notes and scheduling flexibility Added a note about taking notes during meetings and the flexibility of scheduling. --- docs/Policies/meetings.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/Policies/meetings.md b/docs/Policies/meetings.md index e7d2c76..6efa9d9 100644 --- a/docs/Policies/meetings.md +++ b/docs/Policies/meetings.md @@ -19,6 +19,8 @@ it prompts you to think of where you’re at and where you should go next, and you'll have many slides to start from when you have to present your work (e.g. in lab meeting). Over time, you become quite good at quickly putting together and presenting effective slide presentations. +During these meetings, it's likely that I'm going to write things on the board - you should take notes, especially on the parts that translate into to do items for you over the next week. + Of course, we’re not always able to have new results for each meeting - sometimes we’ve been productive, but just thinking; sometimes life has happened and we haven’t made any progress on our projects. That’s ok, and I’m always happy to chat about anything, either why you think things aren’t working, some ideas you've been thinking about, or just generally how things are going. From 198f93317e8288cf1b03df844d3785bdcca54f63 Mon Sep 17 00:00:00 2001 From: vviggyy Date: Thu, 23 Apr 2026 18:41:15 -0400 Subject: [PATCH 37/37] adding note about requeue --- docs/Resources/hpc.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/Resources/hpc.md b/docs/Resources/hpc.md index 45911aa..ed0459b 100644 --- a/docs/Resources/hpc.md +++ b/docs/Resources/hpc.md @@ -82,6 +82,7 @@ conda activate env_name * `-o` or `--output=` (output file name) * `--mail-user` (email address to receive alerts about job completions, default: Yale address) * `--mail-type=ALL` (receive email notifs at beginning and end of job) + * `--requeue` (automatically resubmit if your job gets preempted) * `squeue --me` (get status of all your submitted jobs) * `seff JOBID` (get job stats when done e.g. CPU usage, time run) * `scancel JOBID` (cancel job)