RubyACRs enable red-shifted optogenetic inhibition in freely behaving Drosophila
Data files
Jul 29, 2025 version files 522.94 MB
-
README.md
16.76 KB
-
Repo_Main.zip
522.93 MB
Abstract
Optogenetic neuronal activators with red-shifted excitation spectra, such as Chrimson, have significantly advanced Drosophila neuroscience. However, until recently, available optogenetic inhibitors required shorter activation wavelengths, which do not penetrate tissue as effectively and are stronger visual stimuli to the animal, potentially confounding behavioral results. Here, we assess the efficacy of two newly identified anion-conducting channelrhodopsins with spectral sensitivities similar to Chrimson: A1ACR and HfACR (RubyACRs). Electrophysiology and functional imaging confirmed that RubyACRs effectively hyperpolarize neurons, with stronger and faster effects than the widely used inhibitor GtACR1. Activation of RubyACRs led to circuit-specific behavioral changes in three different neuronal groups. In glutamatergic motor neurons, activating RubyACRs suppressed adult locomotor activity. In PPL1-γ1pedc dopaminergic neurons, pairing odors with RubyACR activation during learning produced odor responses consistent with synaptic silencing. Finally, activation of RubyACRs in the pIP10 neuron suppressed pulse song during courtship. Together, these results demonstrate that RubyACRs are effective and reliable tools for neuronal inhibition in Drosophila, expanding the optogenetic toolkit for circuit dissection in freely behaving animals.
Dataset DOI: 10.5061/dryad.gxd2547zg respository
Description of the data and file structure
This dataset describes RubyACR performance in Drosophila melanogaster with 5 different assays. These five assays correspond to the 5 figures in the accompanying paper. In each assay, there is a "Data" folder containing a pickle file(s) with the data and a "Script" folder containing Python Jupyter notebooks that generate the graphs found in the paper. The Python version and libraries used in the Python environment are described in the Pipfile and Pipfile.lock text files.
Figure 1 includes electrophysiological recordings from the larval NMJ motor neurons expressing RubyACR.
Figure 2 includes imaging from Mi1 neurons expressing RubyACR in the adult.
Figure 3 includes walking behavior when RubyACRs are activated in glutamatergic neurons.
Figure 4 includes memory responses when RubyACRs are activated in dopamine neurons in the adult during training.
Figure 5 measures courtship song frequency when RubyACRs are expressed in pIP10.
Files and variables
The following section describes the files found in the "Repo_Main.zip" folder in this repository. There are 5 subfolders within the zip folder specific to each figure in the paper.
Figure_01: Electrophysiological recordings from larval motor neurons
Here are the folders and files found in the Figure_01 subfolder :
Figure_01
├── Data
│ ├── Protocol_488nm_100ms_0.2-4.9V.pckl
│ ├── Protocol_488nm_10ms_0.2-4.9V.pckl
│ ├── Protocol_488nm_1ms_0.2-4.9V.pckl
│ ├── Protocol_488nm_500ms_0.2-4.9V.pckl
│ ├── Protocol_530nm_100ms_0.2-4.9V.pckl
│ ├── Protocol_530nm_10ms_0.2-4.9V.pckl
│ ├── Protocol_530nm_1ms_0.2-4.9V.pckl
│ ├── Protocol_530nm_500ms_0.2-4.9V.pckl
│ ├── Protocol_660nm_100ms_0.2-4.9V.pckl
│ ├── Protocol_660nm_10ms_0.2-4.9V.pckl
│ ├── Protocol_660nm_1ms_0.2-4.9V.pckl
│ └── Protocol_660nm_500ms_0.2-4.9V.pckl
└── Scripts
├── C19_Genotype_Colors.csv
├── C49_Style.mplstyle
├── C61_GraphingResponsesOverTime_PNG_float16_v004.ipynb
├── C61_MeanVoltageChange_PNG_float16_v05.ipynb
├── C61_MeanVoltageResponseStarts_PNG_float16_v05.ipynb
├── C61_MeasureKinetics_PNG_float16_v003.ipynb
In the data folder, there are pickle files containing pandas dataframes for each type of protocol. The name of the folder indicates the light wavelength used to stimulate channelrhodopsin, the duration in ms, and the range in stimulation intensities. For example, "Protocol_488nm_100ms_0.2-4.9V.pckl" indicates the stimulation wavelength was 488 nm, duration was 100 ms, and the intensity used ranged from 0.2 V to 4.9 V to the LED. In the multi-index pandas dataframe within each pickle file, the column labels correspond with time (ms) when individual sample measurements occurred. The columns are labelled with the time (ms). Within the multi-index, the following describes information within each column:
Column | Description |
---|---|
statistic | The statistic being measured. See below for a description of each statistic. |
stim_duration | illumination duration (ms) |
stim_intensity | voltage sent to the LED |
stim_intensityW | illumination intensity mW/mm 2 |
stim_wavelength | illumination wavelength |
trial | The testing number in the protocol. |
genotype | Channelrhodopsin being tested. |
cross | In house, cross designation. |
larva | The larva being tested for the given day. |
date | The date of testing. |
The statistics being measured:
Statistic | Description |
---|---|
mem_voltage | NMJ membrane voltage measured using electrophysiology (mV) |
stim_voltage | Voltage being sent to the LED (V) |
stim_intensityW_time | The time between intervals (s) |
The Scripts subfolder contains Jupyter notebooks. Other files within the Scripts folder are dependencies defining styles and color guides for the graphs. The following table describes the Jupyter notebooks:
Jupyter Notebook | Description |
---|---|
C61_GraphingResponsesOverTime_PNG_float16_v004.ipynb | Graphing the change in membrane voltage over time. |
C61_MeanVoltageChange_PNG_float16_v05.ipynb | Graphing the mean change in voltage for each illumination intensity. |
C61_MeanVoltageResponseStarts_PNG_float16_v05.ipynb | Determining the minimal illumination intensity that can trigger a response. |
C61_MeasureKinetics_PNG_float16_v003.ipynb | Measuring half on and off kinetics. |
Figure_02 includes imaging from Mi1 neurons expressing RubyACR in the adult
Here are the files within the subfolder Figure_02:
Figure_02
├── Data
│ ├── C05_IntensityMeasurements.ods
│ └── Compiled01_02.pckl
└── Scripts
├── C49_Fig3_Graphing_v03.ipynb
├── ccModules3.py
└── pathlibDB.py
The Data folder contains two files. The C05_IntensityMeasurements.ods is a spreadsheet indicating the voltage sent to the LED and corresponding light intensity targeting the sample. The Compiled01_02.pckl file contains a pandas dataframe with the GCaMP6s intensity measurements during testing. The columns record measurements for each time point. The multi-index rows contain the following columns:
Column | Description |
---|---|
statistic | The statisitic being measured. See below for a description of each statistic. |
protocol | Name of the protocol being applied. Names range 'v01', 'v02', 'v03', 'v05', 'v08', 'v10', 'v15', 'v20' and lastly 'S02'. Divide the integer by 10 to get voltage sent to LED. The v protocols were performed with increasing voltage. The s was a voltage applied after all v protocols were run. |
animal | Specific designation for animal tested. |
genotype | Channelrhodopsin tested. |
stim_intensity | Voltage sent to the LED. |
The statistics being measured are as follows:
Statistic | Description |
---|---|
StimVoltage | The voltage being sent to LED at the given time |
time | Time (s) |
M8-10 | Region where intensity was measured. |
The Scripts subfolder contains the Jupyter notebook, C49_Fig3_Graphing_v03.ipynb used to generate graphs displaying changes in GCaMP intensity over time and per illumination intensity. Other files within the Scripts folder provide functions used in the Jupyter notebook.
Figure_03 includes walking behavior when RubyACRs are activated in glutamatergic neurons.
Here are the files in the subfolder Figure_03:
Figure_03
├── C13_UAS
│ └── 10sProtocol
│ ├── Data
│ │ ├── C13_ForC49_20240929.pckl
│ │ └── C13_MingRGBIntensity.xlsx
│ └── Scripts
│ ├── C49_GraphingGenieTen_v05.ipynb
│ └── C49_Style.mplstyle
└── C18_LexA
└── 10sProtocol
├── Data
│ ├── C13_MingRGBIntensity.xlsx
│ └── C18_ForC49_20241009.pckl
└── Scripts
├── C49_GraphingGenieTen_v06.ipynb
└── C49_Style.mplstyle
Data is divided into subfolders by driver type. Effectors driven by the GAL4 system are in the C12_UAS folder, while tests using the LexA are in the C18_LexA folder. The data subfolders contain the C13_MingRGBIntensity.xlsx spreadsheet containing the illumination intensity measurements (mW / mm2) per percent LED intensity. The pickle files (*.pckl) contain pandas dataframe detailing the walking velocity (mm/s) at each time point in the protocol. The multi-index has the following columns:
Column | Description |
---|---|
statistic | Measurement being taken. See below for a description of each measurement. |
male-short | Channelrhodopsin abbreviation |
male-full | Channelrhodopsin full transgene name |
female-short | Driver line abbreviation |
female-full | Full driver line name |
animal_num | Animal being tested |
frames | Number of image frames in protocol |
parent | Animal specific name |
protocol_name | Protocol name |
cross | Cross designation that generated animals. |
total_stims | Total number of stimulation tests in protocol |
protocol | Protocol name |
stim_num | Stim trial |
start | Frame number when stimulation started |
stop | Frame number when stimulation stopped |
stim_length | Number of frames in trial |
post | Number of frames included in baseline |
pre | Number of frames included after stim start |
red | Percent voltage passing to red LEDs |
green | Percent voltage passing to green LEDs |
blue | Percent voltage passing to blue LEDs |
Statistics measured in the frame :
Statistic | Description |
---|---|
timestamp | Timestamp for each frame in the image |
dig_intensity | Boolean array indicating when illumination occurs |
Red_Intensity (0-100%) | Red LED percent intensity |
Green_Intensity(0-100%) | Green LED percent intensity |
Blue_Intensity(0-100%) | Blue LED percent intensity |
Each Scripts subfolder contains a Jupyter notebook, C49_Graphing GenieTen_v05.ipynb, that graphs the change in velocity over time and mean velocity during baseline and testing periods.
Figure_04 includes memory responses when RubyACRs are activated in dopamine neurons in the adult.
The subfolder Figure_04 contains the following:
Figure_04
├── Data
│ └── PI_annotated.csv
└── Scripts
└── C49_Figure_04_v01.ipynb
In the Data subfolder, the PI_annotated.csv contains the preference index for each animal tested. Test1 uses 13 µW/mm2 while test 2 refers to 26 µW/mm2 red light illumination during the training.
The Scripts subfolder contains the Jupyter notebook, C49_Figure_04_v01.ipynb, that generates graphs comparing preference index after training between genotypes and illumination intensities.
Figure_05 measures courtship song frequency when RubyACRs are expressed in pIP10.
The subfolder Figure_05 contains the following files:
Figure_05
├── Data1_RedOnly
│ ├── Data
│ │ └── C79_Data1.pckl
│ └── Scripts
│ ├── 02_C79Data1_GraphingResponses-v07.ipynb
│ ├── 03_C79Data1_GraphingPercentChange-v02.ipynb
│ ├── C49_IndividualExamples_v03.ipynb
│ ├── C49_Style.mplstyle
└── Data2_RGB
├── Data
│ └── C79_Data2.pckl
└── Scripts
├── 02_C79Data2_GraphingResponses-v09.ipynb
├── 03_C79Data2_GraphingPercentChange-v02.ipynb
├── C49_Style.mplstyle
The subfolder Data1 contains an experiment testing red illumination intensity only while Data2 tests red, green, and blue illumination. Both folders are structured similarly with a Data subfolder containing a pickle (*.pckl) file storing a pandas dataframe containing the data from the experiment. Entries in the dataframe columns indicate the classification for song recorded during the interval : 0 : no song, 1 : 'pulse', and 2 : sine song. The columns in the multi-index are as follows:
Column | Description |
---|---|
species | Species tested in Drosophila melanogaster, abbreviated as mel |
effector | The channelrhodopsin tested |
driver | The driver used in combination with the effector |
The Scripts subfolders contain Jupyter notebooks used to generate graphs comparing courtship song between genotypes and at different illumination intensities. The following table describes the output for the jupyter notebooks:
Jupyter Notebook | Description |
---|---|
02_C79Data2_GraphingResponses-v09.ipynb | Graphs the percent duration for each song type during baseline, testing, and post periods. |
03_C79_GraphingPercentChange-v02.ipynb | Graphs the percent change from baseline for testing and post periods. |
Other files in the Scripts subfolder contain style guides for the graphs in the Jupyter notebook.