queries regarding CEINMS and MOtoNMS

Provides an easy to use toolbox, compatible with OpenSim, for the estimation of the human lower extremity muscle and joint dynamics.
POST REPLY
User avatar
Pouyan Mehryar
Posts: 6
Joined: Mon Mar 09, 2015 9:44 am

queries regarding CEINMS and MOtoNMS

Post by Pouyan Mehryar » Mon Aug 10, 2015 2:39 pm

Firstly I would like to thank you for all your effort to develop CEINMS toolbox and make it available for research purposes.

We have conducted motion capture and EMG experiment from two healthy subjects. EMG data from 12 upper knee muscles were captured (gmax, gmed, sartorious, vastus lateralis, vastus medialis, rectus femoris, tensor facia latae, biceps femoris long head, semitendinosus, semimembranosus, gracilis, adductor longus when performing level ground walking, stair ascending/descending, ramp ascending/descending and sitting/standing. We have several questions regarding the set up of CEINMS for these activities and we would really appreciate it if you guide us please.

Our first goal is to work on level ground walking data using openSim and then CEINMS. The subsequent section is related to queries regarding CEINMS

1) In Calibration folder -> Uncalibrated-> there is an xml file which defines the ankle muscles (DM_uncalibrated_ankle.xml). Should we define all the muscles that are responsible for this dof (ankle) or should it be the muscles that the sEMG have been taken from?

1.1) The data such as optimalFibreLength and PennationAngle is taken from the scaled model, however, the strengthCoefficient which is multiplicative factor for IsometricsForce has been defined to be '1' for Ankle muscles. Is that the same for all the other joint muscles (e.g. hip muscles) or those needs to have different strength coefficient? How these values are updated after calibration?

1.2) at the beginning of the aforementioned xml file, there are information about mtu_defaults (active force length, passive force length, force velocity and tendon force strain). How and where do we get these mtu default information from as they are not found in scaled osim file? How are they calculated?

1.3) Are these parameters related to one particular joint/muscle? Are these theoretical values or experimental values?

1.4) As you have mentioned in the user manual about the 4 curves in mtu defaults, is there any way to plot these curves?

2) In our case, we are using hip and knee muscles from the left leg, can we combine both joint muscles (i.e 12 muscles) in one xml file within calibration setup folder (e.g. DM_uncalibrated_hip_knee.xml)?

2.1) In addition, if it is two different xml files i.e knee and hip separately, how are we going to define the subject files in calibration setup xml?

3) Are the muscles defined in inputsignals in excitation generator xml the experimental ones in which EMG were taken from or are they the muscles responsible for that particular dof i.e all the ankle muscles or knee muscles?

4) In our experiment, we have taken EMG from glut_med and glut_max, and in OpenSim the aforementioned muscles have 3 MTUs (i.e. glut_med1, glut_med2, glut_med3 etc.). Which ones should be taken into consideration In CEINMS (uncalibrated and excitation generators)?

4.1) if we choose them as a group of muscles, what would be their weights?

5) Can we use CEINMS and MOtoNMS for different activities such as ramp asc/desc etc. That is to say, would it be possible to use MOtoNMS to get .trc and .mot files and then use them in OpenSim and later in CEINMS? what are the challenges of simulating other activities (ramp_ascending) in Opensim?


MOtoNMS queries

1) One of the input quantities required for running CEINMS simulation is muscle excitations which are simply the normalized linear envelope of EMG experimental data. In CEINMS manual, it has been suggested that the MVC of each muscle to be used for normalization of EMG signal. However, MOtoNMS uses the maximum peak from each muscle of all trials (if multiple trials were chosen for elaboration) to normalize the data. I would like to know if this is a correct procedure in MOtoNMS? would it be alright to proceed with maximum peak defined for each muscle as normalization technique? if no, is it possible to implement MVC data in MOtoNMS?

1.1) in MOtoNMS, in the dynamicElaboration, the EMG result has been plotted for different muscles (AllNormalizedEnvelopes) in which Y axis has been labelled as normalized Envelope (%max). In addition, for plot of individual muscle, this has also been mentioned as percentage. If that is muscle excitation, Do 0% and 100% mean muscle is not active and fully active, respectively? and what does the percentage in between represents (e.g. y axis for rectus femoris shows 20%)?

1.2) Is there an option in MOtoNMS to calculate muscle activation from muscle excitation?



Thanks a lot for your valuable time and support.

User avatar
Claudio Pizzolato
Posts: 48
Joined: Sat Apr 30, 2011 7:05 am

Re: queries regarding CEINMS and MOtoNMS

Post by Claudio Pizzolato » Tue Aug 11, 2015 5:45 pm

Thanks for posting your questions on the forum, I will start replying to the CEINMS questions.

1) Since it is not possible to acquire surface EMGs from each muscle we would like to model, it is necessary to perform some simplifications. These depend on your research questions and you should evaluate yourself what you believe to be the best choice. The current simplifications you can introduce are the following:
a) You model only the muscles from which you have acquired EMGs
b) You map some of the EMGs you have acquired to more than a single muscle[1]. This can be done using the excitation mapping xml file, section 3.3.3 of CEINMS manual.

1.1) So, all strengthCoefficients have 1 as initial value for all the muscles for the uncalibrated model. this is because
section 3.3.1 of CEINMS manual wrote:strengthCoefficient is a multiplicative factor for maxIsometricForce; the rationale for its inclusion
is that, instead of calibrating the maxIsometricForce parameter for each muscle, you may want to
keep it fixed and calibrate a reduced number of strength coefficient parameters instead, that can be
shared by multiple muscles (e.g., belonging to the same muscle group - this is under the assumption that muscles
in the same group develop in the same way).
Where the maxIsometricForce is the is the maximum isometric muscle force obtained from the OpenSim model

In the calibration configuration file calibration\Cfg\Rstance1\calibrationCfg_ankle.xml you can see how the parameters are getting calibrated. In particular (lines 72-82)

Code: Select all

 
<parameter>
    <name>strengthCoefficient</name>
    <muscleGroups>						
        <muscles>lat_gas_r med_gas_r</muscles>
	<muscles>soleus_r</muscles>
	<muscles>per_brev_r per_long_r</muscles>						
	<muscles>per_tert_r tib_ant_r</muscles>    					
    </muscleGroups>
    <absolute>
        <range>0.5 3.5</range>
    </absolute>
</parameter>
Which means that we are calibrating 4 different muscle groups (lat_gas_r + med_gas_r, soleus_r, per_brev_r + per_long_r, and per_tert_r + tib_ant_r), and muscles in the same group will have the same strengthCoefficient after the calibration. Moreover, strengthCoefficient are allowed to vary within 0.5 and 3.5.

1.2) Some OpenSim model allow extraction of these curves from APIs or xml. An example is Millard2012EquilibriumMuscle that provides public methods to read the spline values (see https://simtk.org/api_docs/opensim/api_ ... uscle.html)

1.3) These curves can be experimentally measured for some of the muscles in humans, but it is difficult and time consuming. Therefore, most models have to use generic curves that introduce some simplifications and assumptions on the muscles function. For an extensive reading I suggest [2], in particular section 3.2

1.4) It is possible to plot them in Matlab, importing the curves coordinates from the xml file.

I will continue answering your other questions as soon as possible.

[1] Sartori M et al., Plos One, 7:e52618, 2012.
[2] Zajac FE, Crit Rev Biomed Eng, 17:359-411, 1989.

POST REPLY