Project Aeon's main repository for manipulating acquired data. Includes modules for loading raw data, performing quality control on raw data, processing raw data, and ingesting processed data into a DataJoint MySQL database.
The various set-up tools mentioned below do some combination of python version, environment, package, and package dependency management. For basic information on the differences between these tools, see this blog post.
- Ssh into the HPC and clone this repository to your home directory.
ssh <your_SWC_username>@ssh.swc.ucl.ac.uk
mkdir ~/ProjectAeon
cd ~/ProjectAeon
git clone https://github.com/SainsburyWellcomeCentre/aeon_mecha
cd aeon_mecha
Ensure you stay in the ~/ProjectAeon/aeon_mecha directory for the rest of the set-up instructions, regardless of which set-up procedure you follow below.
Option 1: miniconda (python distribution) and conda (python version manager, environment manager, package manager, and package dependency manager)
- Note: mamba, a faster alternative to conda, is now installed as a module on the HPC, so the above instructions can be followed using 'mamba' instead of 'conda' if you prefer.
Option 2: pip (python package manager) and venv (python environment manager)
All commands below should be run in a bash shell (Windows users can use the 'mingw64' terminal that is included when installing git).
- Clone this repository: create a 'ProjectAeon' directory in your home directory, clone this repository there, and
cdinto the cloned directory:
mkdir ~/ProjectAeon
cd ~/ProjectAeon
git clone https://github.com/SainsburyWellcomeCentre/aeon_mecha
cd aeon_mecha
Ensure you stay in the ~/ProjectAeon/aeon_mecha directory for the rest of the set-up instructions, regardless of which set-up procedure you follow below.
Option 1: miniconda (python distribution) and conda (python version manager, environment manager, package manager, and package dependency manager)
- Note: mambaforge and mamba can be used as faster, drop-in replacements for 'miniconda' and 'conda', respectively. You can set up the Aeon environment using them, following roughly the same instructions as above. See here for more info.
Option 2: pip (python package manager) and venv (python environment manager)
.github/workflows/: GitHub actions workflows for building the environment and running testsaeon/: Source code for the Aeon Python packageaeon/dj_pipeline: Source code for the Aeon DataJoint MySQL database pipelineaeon/io: Source code for loading raw dataaeon/processing: Source code for processing raw dataaeon/qc: Source code for quality control of raw dataaeon/schema: Examples of 'experiment schemas': variables that can be used to load raw data from particular experiments
docker/: Dockerfiles for building Docker images for the Aeon DataJoint MySQL database pipeline.docs/: Documentation for the Aeon projectdocs/devs/: Documentation for developersdocs/env_setup/: Documentation for setting up the Aeon Python environmentdocs/examples/: Aeon usecase examplesdocs/using_hpc_jupyterhub.md: Instructions for using Jupyter notebooks to access Aeon data via SWC's HPCdocs/using_online_dashboard.md: Instructions for connecting to Aeon's online dashboard
env_config/: Configuration files for the Aeon Python environmenttests/: Unit and integration teststests/data: Data used by tests
If you use this software, please cite it as below:
Sainsbury Wellcome Centre Foraging Behaviour Working Group. (2023). Aeon: An open-source platform to study the neural basis of ethological behaviours over naturalistic timescales, https://doi.org/10.5281/zenodo.8411157