Geometric models reveal behavioural and neural signatures of transforming naturalistic experiences into episodic memories
This repository contains data and code used to produce the paper "Geometric models reveal behavioural and neural signatures of transforming naturalistic experiences into episodic memories" by Andrew C. Heusser, Paxton C. Fitzpatrick, and Jeremy R. Manning.
The repository is organized as follows:
root
├── code : all analysis code used in the paper
│ ├── notebooks : Jupyter notebooks for paper analyses
│ ├── scripts : Python scripts for running analyses on a HPC cluster (Moab/TORQUE)
│ │ ├── embedding : scripts for optimizing the UMAP embedding for the trajectory figure
│ │ └── searchlights : scripts for performing the brain searchlight analyses
│ └── sherlock_helpers : Python package with support code for analyses
├── data : all data analyzed in the paper
│ └── raw : raw video annotations and recall transcripts
│ └── processed : all processed data
└── paper : all files to generate paper
└── figs : pdf copies of all figures
We also include a Dockerfile
to reproduce our computational environment. Instruction for use are below (copied and modified from the MIND repo):
- Install Docker on your computer using the appropriate guide below:
- Launch Docker and adjust the preferences to allocate sufficient resources (e.g. >= 4GB RAM)
- To build the Docker image, open a terminal window, navigate to your local copy of the repo, and run
docker build -t sherlock .
- Use the image to run a container with the repo mounted as a volume so the code and data are accessible.
- The command below will create a new container that maps the repository on your computer to the
/mnt
directory within the container, so that location is shared between your host OS and the container. Be sure to replaceLOCAL/REPO/PATH
with the path to the cloned repository on your own computer (you can get this by navigating to the repository in the terminal and typingpwd
). The below command will also share port9999
with your host computer, so any Jupyter notebooks launched from within the container will be accessible atlocalhost:9999
in your web browser docker run -it -p 9999:9999 --name Sherlock -v /LOCAL/REPO/PATH:/mnt sherlock
- You should now see the
root@
prefix in your terminal. If you do, then you've successfully created a container and are running a shell from inside!
- The command below will create a new container that maps the repository on your computer to the
- To launch any of the notebooks, simply enter
jupyter notebook
and copy/paste the link generated into your browser.
- You can always fire up the container by typing the following into the terminal
docker start Sherlock && docker attach Sherlock
- When you see the
root@
prefix, letting you know you're inside the container
- If you launch the notebooks, you'll notice your shell is occupied by the output log from the
jupyter
server. To stop the notebook server, pressctrl + c
, and theny
when prompted. - To close the running container, press
ctrl + d
or typeexit
from the same terminal window you used to launch the container. - You can also open a second bash shell inside the container simultaneously by running
docker exec -it Sherlock bash
from the terminal outside the container. Note that when you enter the container this way (rather than by usingdocker attach Sherlock
), the container isn't automatically stopped when you exit it. To stop the container after exiting, enterdocker stop Sherlock
.