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
cd
into 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