All data and code shared here is subject to the Eyewire II Principles of Collaboration. By the use of this repository, you agree to be bound by these Principles.
The code in this repository is under MIT license. All data in the repository, as stated in the principles of collaboration, is shared under CC-BY-NC-4.0. For the data, the license holders are H. Sebastian Seung, Thomas Euler, Philipp Berens, and Greg Schwartz.
This repository hosts tools to analyse the functional data from OGB-1 recordings in the Eyewire II dataset.
The following files are included:
- tutorial scripts to facilitate data exploration scripts/tutorial/*.py
- analysis scripts scripts/analysis/*.py
- preprocessing scripts, e.g. for the 2P-to-EM coordinate registration scripts/preprocessing/*.py
- spreadsheet data that are needed to map 2p to EM data (proofread cell main list, 2P-to-EM ROI mapping) in data/spreadsheets/*
- pre-processed calcium traces from recordings over five recording fields, stored as parquet files and downloadable from Hugging Face (see data/data-2p/README.md)
Scripts are plain .py files in jupytext "percent" format (# %% cell markers) rather than .ipynb notebooks — open them in Jupyter Lab to run them cell-by-cell like a notebook, or run them directly with uv run python <script>.py.
Documentation is still incomplete:
Feel free to open issues to ask questions and request features!
To use the code in this repository out of the box, you can use uv to reproduce our python environment. Follow these steps:
- Install
uv - Clone this repository and navigate to its root folder
- Run
uv run jupyter labto start jupyter lab - it should open in your browser, and allows you to run our scripts as notebooks.
On the first call, uv run will install all dependencies into a uv virtual environment (placed in the .venv folder), which is then invoked on all further calls of uv run.
The pre-processed 2P data is not included in this repository — download it from the eyewire2-data Hugging Face dataset and place it in data/data-2p/. See data/data-2p/README.md for details on the contents.
All data loading is handled by eyewire2_functional_analysis.data_loader. The easiest way to load all three DataFrames at once is:
from eyewire2_functional_analysis import data_loader
data_folder = "data/data-2p"
df_rois, df_fields, df_outline = data_loader.load_all_dfs(data_folder)You can also load each DataFrame individually using load_df_rois(), load_df_fields(), or load_df_outline().
See the tutorial scripts for full usage examples:
- plot_raw_data.py — load data and plot raw + preprocessed traces for individual ROIs
- plot_data_overview.py — plot chirp and bar response overviews grouped by cell type and recording field
- plot_morph_and_func.py — plot morphology and functional data for individual cells
- plot_retinal_outline.py — plot the retinal outline and recording field locations
- plot_DS_on_morph.py — plot direction selectivity on cell morphology