Finding the work done by a muscle for a action

#1

Hi,

I am using the freeposture moving model for my project.
I am trying to figure out the work done by each of the muscle to perform a particular action. My goal is to find out the list of the muscles that have contributed to a particular action from highest to lowest.
Initially, I thought of using muscle activity values but that was giving some wrong values. For instance, for my elbow flexion when my elbow pronation angle is -45, only the biceps muscle has to do most of the work while the same elbow flexion when my elbow pronation angle is zero, both brachioradialis and biceps have to work in tandem. But, when checking the muscle activity, it remains the same irrespective of what my elbow pronation is.
So, I decided to use muscle power instead of muscle activity. Will muscle power values correctly indicate the muscle work for a particular action? If not, which other parameters would provide me this value?
Moreover, sometimes, the power is negative, what does this mean? Once, I get these values, I need to compare it with my EMG to validate the results. I don’t even need an exact value but only sufficient values that would help me compare the work done by various muscles.
Kindly help me.

Thank you in advance.

#2

Hi Raman,

It sounds strange that the model will give you same activation values for different pronation angles. If you are using a model with motion in please also consider that there can be dynamic effects, so make sure to increase the end time if you want to ignore such effects.

What is the loading conditions did you add a weight to the hand or is it just the body weight itself, the picture may be more clear if you have a weight added, otherwise loads are very small and dynamics may make it difficult to understand.

I do not think power is a better option, negative power means that the muscles creates negative power. If you want to compare with EMG i would use muscle activation.

Best regards
Søren

#3

Hi,

Thanks for the response.
Sorry for not being clear about my query.
I have close to seven readings in the elbow flexion and pronation readings for trial purpose. I am using the free posture moving model. The following are those values for elbow flexion and pronation, No other joint is been used in this simulation except elbow flexion and pronation.
AnyVector ElbowFlexionTime=.TimeSerie;
AnyVector ElbowFlexion ={0.0,30,60,90,120,90,60};
AnyVector ElbowPronationTime=.TimeSerie;
AnyVector ElbowPronation ={ 0,-20,-45,0,20,45,20};
There are no weight added to the body. It has just the body weight alone.
I want to know which muscle has done most work for this particular action. The following is the value in muscle activity for biceps and brachioradialis.
XY
Main.Study.Output.Model.HumanModel.Right.ShoulderArm.Mus.biceps_brachii_caput_longum.Activity
0.00 4.76e-003
0.17 5.20e-003
0.33 5.38e-003
0.50 5.24e-003
0.67 4.97e-003
0.83 5.34e-003
1.00 5.32e-003

XY
Main.Study.Output.Model.HumanModel.Right.ShoulderArm.Mus.Brach_rad_1.Activity
0.00 5.09e-005
0.17 5.02e-005
0.33 5.07e-005
0.50 4.93e-005
0.67 4.74e-005
0.83 4.96e-005
1.00 5.06e-005

Now, the following is the activity value for latissimus dorsi muscle. Now technically, this muscle should play no part in the elbow flexion and pronation.
Again, i have mentioned the values for the this muscle below.
XY
Main.Study.Output.Model.HumanModel.Right.ShoulderArm.Mus.latissimus_dorsi_3.Activity
0.00 2.77e-002
0.17 2.73e-002
0.33 2.69e-002
0.50 2.68e-002
0.67 2.69e-002
0.83 2.68e-002
1.00 2.70e-002

I am just using latissimus dorsi muscle as an example.
My question is why does a muscle like latissimus dorsi which does not help with elbow flexion or pronation have a higher activity than biceps and brachioradialis which actually contributes for the elbow flexion or pronation.
Even the muscle such as pronator teres which is primarily responsible for pronation has lesser activity.
XY
Main.Study.Output.Model.HumanModel.Right.ShoulderArm.Mus.Pronator_teres_caput_ulnare_1.Activity
0.00 5.09e-005
0.17 5.02e-005
0.33 5.07e-005
0.50 4.93e-005
0.67 4.74e-005
0.83 4.96e-005
1.00 5.06e-005
Why does this happen? And how to overcome this?
My next question is about no change in activity values with change in elbow pronation value. The elbow flexion value remains the same as mentioned above. The new pronation value is
AnyVector ElbowPronation ={ 0,-45,-45,-45,-45,-45,-45};
The brachioradilais activity value is as follows:
XY
Main.Study.Output.Model.HumanModel.Right.ShoulderArm.Mus.Brach_rad_1.Activity
0.00 5.11e-005
0.17 5.00e-005
0.33 5.08e-005
0.50 4.94e-005
0.67 4.73e-005
0.83 4.94e-005
1.00 5.08e-005
Now, i am changing the elbow pronation value alone.
AnyVector ElbowPronation ={ 0,0,0,0,0,0,0};
The brachioradialis value for this pronation angle is
XY
Main.Study.Output.Model.HumanModel.Right.ShoulderArm.Mus.Brach_rad_1.Activity
0.00 5.09e-005
0.17 4.99e-005
0.33 5.08e-005
0.50 4.94e-005
0.67 4.73e-005
0.83 4.94e-005
1.00 5.08e-005
As we can see, there is no change in muscle activity as the pronation angle changes. The same goes for biceps as well. Why does this happen?
My research requires me to find out the contribution of each muscle for a particular body motion. So, how do i use the activity to find that out or would you suggest something else ?
Please let me know.

Thank you.

#4

Hi Raman,

I will try to explain

It is not given that the Latissimus dorsi muscle will be lower activated just because it is not moving a joint. All muscles are being activated to ensure dynamic balance in the system. Due to the nature of the mechanical system it is all linked together and can not be isolated. The humerus bone still needs to be in balance for the position you have described, this position may not be the optimal 100% relaxed position for all muscles, like the lat. muscle.

Sidenote: Please be aware of the timeseries you are using i can not see it in your script, as i wrote earlier please ensure you are using a long time-span to rule out dynamic effects of the motion, you have some rapid angles changes on the pronation -45->0 . If you are using the default values from the model the time series has a duration of 1 sec which is very short.

So back to the question on how to ensure that the you will see the highest activation only in the muscles providing the some motion, the short answer to this is that you can not. There will always be some muscles in the model which will be needed to hold the static balance, and which may have a higher activation than muscles doing some work.

I tried to modify the latest version of the free posture model to replicate the results you are listing i get different results. The image displays the activation in the Brach_rad1+2 muscles while doing the flexion function you have and three different constant pronation angles. Note that i used tEnd =100 not the default tEnd=1.

Which version of AMMR have you based your model on? and what is your affiliation?

My recommendation is to apply some real loads to the model, for example as a AnyForce3D

Best regards
Søren

#5

Hi,

Thank you for the quick response.
Yes, you are right.
Even when there is no motion, there is a bit of activity in them and it makes sense based on what you said.
I just have a couple more doubts. You mentioned about changing the timeseries. Could you explain further? Right now, i am using following time.
AnyVector TimeSerie={0/6,1/6,2/6,3/6,4/6,5/6,6/6};
tEnd = 1;
nstep = 7;
Would you like me to change it into the following to get the desired results?
AnyVector TimeSerie={0,1,2,3,4,5,6};
tEnd = 6;
Is that what you meant? So, in your simulation, did you use timeseries raging from 0 to 100 like the following mentioned below?
AnyVector TimeSerie={0,1,2,3,4,5,6…,100};
tEnd = 100;
Please let me know. I think this could solve my problem.
And, i am also nstep = 6. My idea is to have the number of input and nstep equal to one another. If i have 50 inputs, i would use nstep = 50. Is that the right approach?

One last question, in the documentation, it was mentioned that Pm is the power exerted by the muscle and activity is the activity of the muscle. So, what is the difference between them? Is the difference only the unit in which the value is displayed? With power being displayed in hp or watt whereas the activity is displayed in newton.

Please let me know.
Thank you.

#6

Hi Raman,

Yes, in the original model the timevector if effectively 0…1 and tend is 1, you can remove/reduce dynamic effects by making this 0…100 and tEnd =100.

The nStep values do not need to match the number of items in the vectors, the motion is being interpolated so nStep could e.g. be 100 while you have 7 items in the input vector. This would mean the angle is being interpolated using 7 key points, but the analysis will use 100 frames and interpolated in-between, this is in principle ok.

Muscle activation is force in muscle divided by its strength, so if the number is 1 the muscle is supplying as much force it possibly can. Activity has no unit.

Pm is the mechanical power exerted to the system by the muscle, it will have the unit watt (for an AMMR model)

Hope it helps

Best regards
Søren