Research

Main Research Topics

Multi-scale multi-physics modeling of muscles

In hu­man­s, there are three types of mus­cle: stri­at­ed mus­cle, fast and fa­tiguable, main­ly used for trac­tion and main­tain­ing pos­ture, al­so known as skele­tal mus­cle; slow­er smooth mus­cle and im­mune to fa­tigue, lo­cal­ized main­ly in the walls of hol­low or­gans (blood ves­sel­s, res­pi­ra­to­ry sys­tem, uterus, uri­nary and gas­troin­testi­nal sys­tem­s); heart and skele­tal mus­cle that forms the walls of the heart. Stri­at­ed skele­tal mus­cles are vol­un­tary con­trolled via the so­mat­ic ner­vous sys­tem. Smooth mus­cle and car­diac mus­cle are man­aged un­con­scious­ly by the au­to­nom­ic ner­vous sys­tem.

Skele­tal mus­cle have a va­ri­ety of struc­ture, which may be com­posed of a few mo­tor unit or sev­er­al hun­dred. A driv­ing unit is the group con­sist­ing of a set of mus­cle fibers and mo­tor neu­ron in­ner­vat­ing. Tech­ni­cal EMG mul­ti­chan­nel re­­cen­t­­ly de­vel­oped for study­ing the re­cruit­­ment of mo­­tor units or fa­­tigue phe­nom­e­­na.

Smooth mus­cles are still rel­a­tive­ly un­known, be­cause of the func­tions they per­form - less eas­i­ly ob­serv­able and quan­tifi­able that the move­ment - and their lo­ca­tion in the body, part of the in­ter­nal or­gan­s. There­by they have been less stud­ied than skele­tal mus­cle or car­diac ­mus­cle.

The fo­cus of my re­search is phys­i­ol­o­gy based mul­ti­-s­cale mod­els to un­der­stand the func­tion of mus­cle­s. Most of my pre­vi­ous work was on the elec­tri­cal ac­tiv­i­ty gen­er­at­ed by the con­trac­tion­s. We now aim to have a more glob­al un­der­stand­ing through mul­ti­-­physics mod­el­s: elec­tri­cal, chem­i­cal, me­chan­i­cal…

Sensitivity analysis and Parameter identification

Sensitivity analysis

It in­volves study­ing the mod­el sen­si­tiv­i­ty to pa­ram­e­ter vari­a­tions to de­ter­mine which are iden­ti­fi­able and among them, those whose val­ues ​​are to be spec­i­fied to en­sure the qual­i­ty of the sim­u­la­tion­s. This study can be car­ried out an­a­lyt­i­cal­ly on the mod­el equa­tions or nu­mer­i­cal­ly on its soft­ware im­ple­men­ta­tion.

I fa­vor the sec­ond ap­proach, be­cause it takes in­to ac­count the pos­si­ble dig­i­tal im­per­fec­tions (con­ver­gence prob­lem­s). In this case, we study the vari­a­tion of dif­fer­ent met­rics (de­fined from the out­puts of the mod­el, the sim­u­lat­ed sig­nal­s) ac­cord­ing to the mag­ni­tude of the er­ror on each ­pa­ram­e­ter.

These met­rics should be rep­re­sen­ta­tive of mea­sure­ments which can be per­formed ex­per­i­men­tal­ly. They are of­ten spe­cif­ic to the in­tend­ed ap­pli­ca­tion (pres­sure changes, the fre­quen­cy char­ac­ter­is­tics of the EMG sig­­nal­s…). In the case of com­­mon­­ly used met­ric, such stud­ies can pro­­vide cor­re­la­­tion el­e­­ments be­tween met­ric and un­der­­ly­ing patho­­phys­i­o­log­i­­cal mech­a­nis­m­s. It is even pos­si­ble to seek to de­fine new met­rics to high­­­light the in­­flu­ence of cer­­tain ­­pa­ram­e­ter­s.

Parameter Identification

Once the list of pa­ram­e­ters which must be spec­i­fied set­tled and the ex­per­i­men­tal da­ta col­lect­ed, we ap­ply op­ti­miza­tion al­go­rithms on these pa­ram­e­ters to min­i­mize the dif­fer­ence in the met­ric cho­sen be­tween sim­u­la­tion ob­tained by the mod­el and the ex­per­i­men­tal da­ta. The choice of met­rics and op­ti­miza­tion al­go­rithms is im­por­tant to en­sure con­ver­gence to the cor­rect so­lu­tion. De­pend­ing on the num­ber of pa­ram­e­ters and mod­el com­plex­i­ty, two fam­i­ly of meth­ods can be ­con­sid­ered:

deterministic methods:

For ex­am­ple gra­di­ent de­scent or Lev­en­berg-­Mar­quardt al­go­rith­m. These are the sim­plest to use. Their con­ver­gence is en­sured, but they can con­verge to a lo­cal op­ti­mum.

heuristics:

For ex­am­ple par­ti­cle fil­ter­s, sim­u­lat­ed an­neal­ing, ge­net­ic al­go­rithm­s. These meth­ods al­low a wider ex­plo­ration of the pa­ram­e­ter space, but bring in more com­plex­i­ty in their tun­ing, even el­e­ments to de­fine em­pir­i­cal­ly (pop­u­la­tion size for ge­net­ic al­go­rithm­s, sim­u­lat­ed an­neal­ing pa­ram­e­ter­s). This iden­ti­fi­ca­tion is usu­al­ly per­formed off­line as re­quir­ing sig­nif­i­cant com­put­ing ­time.

Software implementation of models

The performance simulations

The mod­els we de­vel­op are non-­lin­ear, can have many vari­ables (eg. 3 dif­fer­en­tial equa­tions per cell for the uterus and hun­dreds of thou­sands of cell­s, gen­er­a­tion of EMG on 64 or 128 chan­nels at high sam­­pling rate for stri­at­ed mus­­cle­). They re­quire a sig­nif­i­­cant com­pu­­ta­­tion time for each sim­u­la­­tion. This is a an­noy­ing point for mod­­el sim­u­la­­tion­s, ask­ing to wait sev­er­al hours or even days to get the sim­u­lat­ed sig­­nal­s. This be­­comes a ma­jor prob­lem for iden­ti­­fi­­ca­­tion, since the mod­­el has to be sim­u­lat­ed many times un­til con­ver­­gence of the op­ti­miza­­­tion al­­go­rith­m.

To im­prove the speed of sim­u­la­tion­s, one of the most sim­ple way is:

Parallelization:

Mod­ern pro­ces­sors have an in­creas­ing num­ber cores and clus­ters or servers be­come more and more af­ford­able. GPU can al­­so be used as mas­­sive­­ly par­al­lel pro­cess­ing unit­s. To take ad­­van­­tage of this com­put­ing pow­er, it is nec­es­sary to think about soft­­ware im­­ple­­men­­ta­­tion ac­­cord­ing­­ly. These time con­­sum­ing cal­cu­la­­tions must be adap­t­ed de­pend­ing on the avail­able hard­ware ar­chi­tec­­tures (CPU or GPU - shared mem­o­ry ma­chines or dis­­tribut­ed).

User-friendly models

One as­pect dear to my heart in the soft­ware im­ple­men­ta­tion is to make the mod­els ac­ces­si­ble to a wide pub­lic: phys­i­ol­o­gist­s, med­i­cal doc­tors, en­gi­neers or re­searcher­s. In­deed, these peo­ple may wish to use the mod­els de­vel­oped with­out nec­es­sar­i­ly mas­ter­ing all the tech­ni­cal as­pects (math­e­mat­ic­s, com­put­er or bi­o­log­i­cal…) or with­out the need to mod­i­fy or ex­tent the ­mod­el­s.

Then this must be tak­en in­to ac­coun­t. My ap­proach there­fore in­cludes a spe­cial care in these soft­ware im­ple­men­ta­tion­s. First, I want as much as pos­si­ble use of free li­cens­es for soft­ware (Ce­CIL­L, GPL or BSD). These al­low sim­­pler dif­­fu­­sion of source code and its en­hance­­ment by the com­­mu­ni­­ty while pre­serv­ing its dis­­sem­i­­na­­tion po­ten­­tial.

Al­so, the code should pro­vide clear and doc­u­ment­ed in­ter­faces. Both APIs (pro­gram­ming in­ter­faces, be­tween dif­fer­ent parts of the soft­ware), as well as tex­tu­al or graph­i­cal in­ter­faces. The use of the Python lan­guage and an ob­jec­t-ori­ent­ed ap­proach great­ly fa­cil­i­tate this ­work.