Main Research Topics
Multi-scale multi-physics modeling of muscles
In humans, there are three types of muscle: striated muscle, fast and fatiguable, mainly used for traction and maintaining posture, also known as skeletal muscle; slower smooth muscle and immune to fatigue, localized mainly in the walls of hollow organs (blood vessels, respiratory system, uterus, urinary and gastrointestinal systems); heart and skeletal muscle that forms the walls of the heart. Striated skeletal muscles are voluntary controlled via the somatic nervous system. Smooth muscle and cardiac muscle are managed unconsciously by the autonomic nervous system.
Skeletal muscle have a variety of structure, which may be composed of a few motor unit or several hundred. A driving unit is the group consisting of a set of muscle fibers and motor neuron innervating. Technical EMG multichannel recently developed for studying the recruitment of motor units or fatigue phenomena.
Smooth muscles are still relatively unknown, because of the functions they perform - less easily observable and quantifiable that the movement - and their location in the body, part of the internal organs. Thereby they have been less studied than skeletal muscle or cardiac muscle.
The focus of my research is physiology based multi-scale models to understand the function of muscles. Most of my previous work was on the electrical activity generated by the contractions. We now aim to have a more global understanding through multi-physics models: electrical, chemical, mechanical…
Sensitivity analysis and Parameter identification
Sensitivity analysis
It involves studying the model sensitivity to parameter variations to determine which are identifiable and among them, those whose values are to be specified to ensure the quality of the simulations. This study can be carried out analytically on the model equations or numerically on its software implementation.
I favor the second approach, because it takes into account the possible digital imperfections (convergence problems). In this case, we study the variation of different metrics (defined from the outputs of the model, the simulated signals) according to the magnitude of the error on each parameter.
These metrics should be representative of measurements which can be performed experimentally. They are often specific to the intended application (pressure changes, the frequency characteristics of the EMG signals…). In the case of commonly used metric, such studies can provide correlation elements between metric and underlying pathophysiological mechanisms. It is even possible to seek to define new metrics to highlight the influence of certain parameters.
Parameter Identification
Once the list of parameters which must be specified settled and the experimental data collected, we apply optimization algorithms on these parameters to minimize the difference in the metric chosen between simulation obtained by the model and the experimental data. The choice of metrics and optimization algorithms is important to ensure convergence to the correct solution. Depending on the number of parameters and model complexity, two family of methods can be considered:
- deterministic methods:
-
For example gradient descent or Levenberg-Marquardt algorithm. These are the simplest to use. Their convergence is ensured, but they can converge to a local optimum.
- heuristics:
-
For example particle filters, simulated annealing, genetic algorithms. These methods allow a wider exploration of the parameter space, but bring in more complexity in their tuning, even elements to define empirically (population size for genetic algorithms, simulated annealing parameters). This identification is usually performed offline as requiring significant computing time.
Software implementation of models
The performance simulations
The models we develop are non-linear, can have many variables (eg. 3 differential equations per cell for the uterus and hundreds of thousands of cells, generation of EMG on 64 or 128 channels at high sampling rate for striated muscle). They require a significant computation time for each simulation. This is a annoying point for model simulations, asking to wait several hours or even days to get the simulated signals. This becomes a major problem for identification, since the model has to be simulated many times until convergence of the optimization algorithm.
To improve the speed of simulations, one of the most simple way is:
- Parallelization:
-
Modern processors have an increasing number cores and clusters or servers become more and more affordable. GPU can also be used as massively parallel processing units. To take advantage of this computing power, it is necessary to think about software implementation accordingly. These time consuming calculations must be adapted depending on the available hardware architectures (CPU or GPU - shared memory machines or distributed).
User-friendly models
One aspect dear to my heart in the software implementation is to make the models accessible to a wide public: physiologists, medical doctors, engineers or researchers. Indeed, these people may wish to use the models developed without necessarily mastering all the technical aspects (mathematics, computer or biological…) or without the need to modify or extent the models.
Then this must be taken into account. My approach therefore includes a special care in these software implementations. First, I want as much as possible use of free licenses for software (CeCILL, GPL or BSD). These allow simpler diffusion of source code and its enhancement by the community while preserving its dissemination potential.
Also, the code should provide clear and documented interfaces. Both APIs (programming interfaces, between different parts of the software), as well as textual or graphical interfaces. The use of the Python language and an object-oriented approach greatly facilitate this work.