An AiiDAlab application plugin for FEFF-based EXAFS and MD-EXAFS scientific workflows, maintained by the Ada Lovelace Centre (ALC).
The app is in active early development.
Launch the app within AiiDAlab or run the main interface in a Jupyter environment:
from aiidalab_feff.main import main
main()The Spectrum results tab accepts experimental files supported by Larch,
including plain text/CSV, XDI, and Athena project files. Uploaded files are
stored in AiiDA before Larch imports the selected spectrum, preserving both
the source upload and the import parameters. Select an Athena group when a
project contains more than one spectrum. For unlabelled or ambiguously labelled
text files, choose Specify column labels and enter Larch labels such as
k,chi or energy,mu,mu0 in file-column order.
Use the live S₀² and ΔE₀ controls to compare the selected FEFF spectrum
against the experimental reference in χ(k) and χ(R). Save scaled
simulation stores the current adjusted FEFF spectrum as a provenance-linked
XasData node; it never modifies the original calculation output.
Container tooling is provided in the containers/ directory for both development and deployment based on ghcr.io/stfc/alc-ux/base:py310.
To run the app in live development mode with local checkouts bind-mounted into an AiiDAlab container:
pipx install aiidalab-launch
python3 containers/launch.pyThis starts an AiiDAlab container, bind-mounts local package checkouts, installs them in editable mode, configures AiiDA, and provides local JupyterLab and App URLs.
To build and run a self-contained deployment image with the app and dependencies baked in:
# Build the image (tags aiidalab-feff:latest)
./containers/build.sh
# Start the container with data persistence
./containers/startup.shstartup.sh supports both Docker and Apptainer engines and maps Jupyter (port 8888) and the AiiDA REST API (port 5050).
Install the package in editable mode with development dependencies:
pip install -e ".[testing,pre-commit]"Pre-commit hooks are configured using Ruff and Mypy:
pip install pre-commit
pre-commit installTo run linting and formatting manually:
ruff check aiidalab_feff/ tests/
ruff format aiidalab_feff/ tests/Run unit tests using pytest:
pytestContributors to this project were funded by