First-Time Contributors’ Frequently Asked Questions

First-Time Contributors’ Frequently Asked Questions#

Technical Questions#

  1. How is the AutoEmulate project structured?

    • The key component is the AutoEmulate class in autoemulate/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 in autoemulate/emulators/ and the neural network architecture in autoemulate/emulators/neural_networks/.

    • Emulators need to be registered in the model registry in autoemulate/emulators/__init__.py to be available in AutoEmulate.

    • 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 use jupyter-book to build the documentation.

  2. How do I set up my development environment for AutoEmulate?

    See the ‘Install using Poetry’ section of the installation page.

  3. 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#

  1. Where can I ask questions if I’m stuck?

  2. Is there a code of conduct for contributors?

  3. 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.