This repo contains the source for the currently WIP version of Project Aeon's online docs.
The docs are built via Sphinx, and hosted via GitHub Pages at sainsburywellcomecentre.github.io/aeon_docs/. src/
is the Sphinx source directory, and the site is built and deployed from the gh-pages
branch. This is handled by a GitHub actions workflow (.github/workflows/docs_build_and_deploy.yml
). The build job is triggered on each PR, ensuring that the documentation build is not broken by new changes. The deployment job is only triggered whenever a tag is pushed to the main branch.
Create a conda
environment with the required dependencies and activate it:
conda create -n aeon_docs python dotnet -c conda-forge
conda activate aeon_docs
Make the docfx
tool available in the environment:
dotnet tool restore
From the root of the repository, install the requirements for building the documentation:
pip install -r requirements.txt
Then, populate submodules:
git submodule init
git submodule update
(Optional) Update submodules and point to the latest commits:
git submodule sync
git submodule update --remote
Finally, build the documentation:
make html
You can view the local build by opening docs/html/index.html
in a browser.
To apply new changes to the documentation, remove all automatically generated files and folders, and rebuild:
make clean && make html
To check that external URLs are correctly resolved, run:
make linkcheck
If the linkcheck step incorrectly marks URLs with valid anchors as broken,
you can skip checking the anchors in specific URLs by adding them to
linkcheck_anchors_ignore_for_url
in src/conf.py
, e.g.:
# linkcheck will skip verifying that anchors exist when checking
# these URLs
linkcheck_anchors_ignore_for_url = [
"https://example.com",
]
To skip linkcheck for specific URLs, add them to
linkcheck_ignore
in src/conf.py
, e.g.:
# linkcheck will skip checking these URLs entirely
linkcheck_ignore = [
"https://github.com/org/private_repository",
]
To suppress warnings for expected redirects, add them to
linkcheck_allowed_redirects
in src/conf.py
, e.g.:
# linkcheck will treat redirections from these source URI:canonical URI
# mappings as "working".
linkcheck_allowed_redirects = {
r"https://zenodo\.org/doi/.*": r"https://zenodo\.org/records/.*",
}
As mentioned above, the deployment job is triggered whenever a tag is pushed to the main branch. To deploy the documentation, follow these steps:
Fetch all tags:
git fetch --tags
Identify the latest tag:
git describe --tags
Create a new tag:
git tag <tag_name>
Push the tag to the main branch:
git push origin <tag_name>
ProjectAeon is a collaborative effort to perform behavioral neuroscience experiments where the behavior and neural activity of freely moving animals engaging in a complex task are continuously recorded. This project is contributed to by researchers and support staff at UCL's SWC, Neurogears, and Datajoint.
If you are interested in joining this project, please contact the project maintainers.
Below are the required sets of credentials for Project Aeon's members:
aeon
project: contact Jai Bhagat or Gonçalo Lopesaeon
HPC Linux group: contact SWC HelpdeskTo be granted these credentials, please send a single email to all contact parties requesting this access.
[!IMPORTANT] You must be an SWC Github
aeon
project member to view some of these repositories.
Project Aeon's main library for interfacing with acquired data. Contains Python modules for raw data file io, data querying, data processing, data qc, database ingestion, and building computational data pipelines. This is the main user repository.
[!NOTE] All experiment data is acquired and/or triggered and/or synced by Harp devices. Code in the 'aeon_acquisition' and 'aeon_mecha' repos makes use of the Harp protocol during data acquisition, raw data file writing, and raw data file reading. See also the documentation on Harp device operation and common registers, the Harp binary protocol, and Harp clock synchronization.
Contains experiment workflows written in the Bonsai visual programming language.
Contains the source code for the 'aeon_acquisition' Bonsai package, which is heavily used in workflows in 'aeon_experiments'.
Contains Python modules for analysis of Aeon experiment data.
Contains source code for actuating a linear drive motor used in Aeon experiments (designed primarily for moving electrophysiology cabling during freely-moving experiments).
Contains low-level source code for pellet delivery via feeders used in Aeon experiments.
Contains source code for the Aeon docs site, built via Sphinx. Built docs at: https://sainsburywellcomecentre.github.io/aeon_docs/
Jai Bhagat (jai.bhagat.21@ucl.ac.uk)
Gonçalo Lopes (g.lopes@neurogears.org)
Dario Campagner (d.campagner@ucl.ac.uk)
Chang Huan Lo (changhuan.lo@ucl.ac.uk)
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