First-Time Contributors’ Frequently Asked Questions#
Technical Questions#
How is the AutoEmulate project structured?
The key component is the
AutoEmulate
class inautoemulate/compare.py
, which is the main class for setting up and comparing emulators, visualising and summarising results, saving models, and applications such as sensitivity analysis.All other modules in
autoemulate/
are supporting modules for the main class, such as data splitting, model processing, hyperparameter searching, plotting, saving, etc.autoemulate/emulators/
contains the emulator models, which are implemented as scikit-learn estimators. Deep learning models have two main parts: The scikit-learn estimator interface inautoemulate/emulators/
and the neural network architecture inautoemulate/emulators/neural_networks/
.Emulators need to be registered in the model registry in
autoemulate/emulators/__init__.py
to be available inAutoEmulate
.autoemulate/simulations/
contains simple example simulations.epidemic.py
is a simple epidemiological SIR simulation.projectile.py
is a projectile motion with drag simulation.
tests/
contains tests for the package.data/
contains example datasets from three fields:cardiac1-6 are datasets from cardiac simulations in Strocci et al. 2023
climate1 is data from a climate simulation in Holden et al. 2018
engineering1 is data from a simulated cantilever truss design problem.
docs/
contains the documentation source files. We usejupyter-book
to build the documentation.
How do I set up my development environment for AutoEmulate?
See the ‘Install using Poetry’ section of the installation page.
How do I run tests for AutoEmulate?
We use
pytest
to run the tests. To run all tests:
pytest
To run tests with print statements:
pytest -s
To run a specific test module:
pytest tests/test_example.py
To run a specific test:
pytest tests/test_example.py::test_function
Community and Support#
Where can I ask questions if I’m stuck?
We use Discussion on GitHub for questions and general discussion.
Is there a code of conduct for contributors?
Yes, it’s here.
How can I get involved in decision-making or project planning as a contributor?
We use GitHub Discussions for general discussion and Issues for project planning and development.