Welcome to shamo's documentation!
=================================
.. toctree::
:maxdepth: 1
quickstart/quickstart
api/api
reference/reference
Introduction
------------
Constructing accurate subject specific head model is of main interest in the fields of source imaging (EEG/MEG) and brain stimulation (tDCS/tMS).
*shamo* is an open source python package to calculate EEG leadfields, current flows, and electric potential distribution in the head.
From a labelled 3D image of the head, the whole process is fully automatized, relying only on a few parameter files, e.g. conductivities (including white matter anisotropy) plus source and electrode locations.
Since there is no non-invasive method to measure the electromagnetic (EM) properties of the head tissues, *shamo* can also be used to assess the sensitivity of the EM head model to these parameters.
Philosophy
----------
The idea leading the development of *shamo* is to provide a versatile, intuitive and extendable toolbox for electromagnetic modelling of the head.
Every object is though to be savable/loadable as a dictionary and stored as a JSON file on disk.
*shamo* is built around three main concepts:
#. **Problem:** The definition of a task to perform. Computing the EEG leadfield or simulating tDCS for examples.
#. **Solution:** The object resulting from the resolution of a problem.
#. **Surrogate:** If the problem-solution pair is parametric, e.g. some parameters are random variables, surrogate can be used to produce parametric models.
One of the leading rules while working on *shamo* was to use already existing quality tools to perform key steps.
Thus, the finite element generation is achieved by interfacing with `CGAL `_ and `Gmsh `_, the physical problem resolution is done with `GetDP `_, the Gaussian processes are generated with `scikit-learn `_ and the sensitivity analysis uses `SALib `_.