TLEM 2.0 model

Hi,

I can see in this paper (TLEM 2.0 – A comprehensive musculoskeletal geometry dataset for subject-specific modeling of lower extremity) that TLEM 2.0 has been implemented in AnyBody v 6.0.3.

But I only found TLEM 1.1 in this version of AnyBody or in the latest version 6.0.5. Does the 2.0 model have a different name in AMMR?

Thank you.

Regards,
Jerry

Hi Jerry,

The TLEM2.0 dataset is still in beta-testing and not available for public yet. We expect it to be released in foreseeable future, please wait.

Kind regards,
Pavel

Hello

I've got a question regarding the original data of the TLEM 2.0.

In the abstract of the paper about the model "TLEM 2.0 – A comprehensive musculoskeletal geometry dataset for subject-specific modeling of lower extremity" from March 2015 they mention that the

... complete dataset, including CT and MRI scans and segmented volume and surfaces, is made available at Finished projects | TLEMsafe | Department of Biomechanical Engineering for the biomechanical community, in order to accelerate the development and adoption of subject-specific models on large scale.
But I cannot find a download link on the website.

Do you know where to download the original data?

Thanks in advance

Hi Fritz,

I was not able to find information about this on the University of Tweente’s webpage either, please contact the corresponding author on the paper.

Best regards
Søren

While using the TLEM2.0 model, I recognized that the position of knee joint axis, that they have reported, seems to be too far proximal in my opinion (see pictures)

Do you have expierenced the same during beta-testing?

Hi Jerry

The location of the knee joint axis is a really tricky problem. In reality, the instantaneous location of the knee joint axis moves during knee flexion. Thus, a fixed knee joint axis as in an approximation.

The knee joint axis in the in the TLEM2.0 model was originally estimated in the TLEMSafe project with an unloaded functional method directly on the dissected cadaver bones.

Essentially, the two bones were moved by hand through a limited range of motion while the kinematics of the bones were recorded. I don't think this created a very good approximation of the knee joint axis. But it was never the less used in the TLEMSafe research project, and it may have been OK for activities such as gait.

The AnyBody models are used for very different activities. So the axis needs to be the best compromise which works for both small joint angles as well as full knee flexion (e.g. full knee squatting).

That is why most joint axis in TLEM 2.1 model was re-implemented taking into account that the idealized joint should work for the full range of motion.

You can read about this change in the release log:

https://anyscript.org/ammr-doc/changelog.html

Redefined revolute knee axis and patella joint axis and patella tendon length based on the bone geometry. The original TLEM knee axis was estimated using a functional method and was only valid for very small flexion angles. Thanks to Marco Antonio Marra (Radboudumc) for this for this improvement.

This is probably the reason you find the location of the knee joint axis a bit strange. It is a compromise between the instantaneous knee joint axis of flexed and extended knee.

You can try the original joint axis from the TLEMSafe project if you like. It involves changing the following:

Body/AAUHuman/LegTLEM/TLEM2.1/ModelJointParameters.any line: 42-46 :

  
  AnyVec3 KneeJoint = {-0.002171389,   0.006685766, 0}*.TF';
  AnyVec3 KneeJointAxis = ..Sign*{0.0487755, -0.04631672, -0.9977353}*.TF'/vnorm({0.0487755, -0.04631672, -0.9977353});

  AnyVec3 PatellaFemurJoint ={ 0.005458221, 0.005741691,0}*.TF';
  AnyVec3 PatellaFemurJointAxis = ..Sign*{0.1143518,-0.05854474, -0.9984416}*.TF'/vnorm({0.1143518,-0.05854474, -0.9984416});

Body/AAUHuman/LegTLEM/TLEM2.1/ModelJointParameters.any line: 60-61 :


  AnyVec3 PatellaFemurJoint = { -0.03663476, -0.005972708, 0.002046017}*.TF';
  AnyVec3 PatellaFemurJointAxis = ..Sign*{0.1143518,-0.05854474, -0.9984416}*.TF'/vnorm({0.1143518,-0.05854474, -0.9984416});

Body/AAUHuman/LegTLEM/TLEM2.1/ModelJointParameters.any line: 51-52 :


  AnyVec3 KneeJoint = { -0.01021331, 0.366972, -0.001585396}*.TF';
  AnyVec3 KneeJointAxis = ..Sign*{0.04877549, -0.04631671, -0.9977353}*.TF'/vnorm({0.04877549, -0.04631671, -0.9977353});

It is also possible to redefine the knee joint without changing code in the AMMR folder, although this is mostly undocumented. There is a BM switch which will remove the knee joint completely.

#define BM_JOINT_TYPE_KNEE_RIGHT _JOINT_TYPE_USERDEFINED_

Then it is up to the user to redefine the knee completely from scratch. This is mostly used by advanced users who like to implement there own more advanced knee models.

Hopes this helps a bit.

Regards,
Morten

1 Like

Thanks for the detailed answer.

Another question.
The MassStandard of the pelvis of the TLEM2.1 is defined as:


  /// Based on the mass of TLEM1.2 but corrected with
  /// the ratio TLEM2/TLEM1 segment length ratio
  AnyVar MassStandard = 11.222;
 

Could you explain in detail how you calculated this value. Same for the thigh.

For the thigh I calculated a TLEM2/TLEM1 segment length ratio of 0.9. That doesn’t seem to fit with:

AnyVar MassStandard = 6.0191; //11.54; // kg, Klein Horsman dataset

Thanks in advance.

Hi,

Quick answer here. I can’t remember the details without having to dig into the old material.

But a quick guess is that length relates to mass as it does to volume.

For example, an elephant is 2.5 times higher than a cow, but weighs 10 times as much.

/Morten

Sorry, I don’t get your example.

Take your time. I would appreciate a detailed explanation.

Thanks in advance.

Still hoping for an answer. Thanks

^^^^^^^^^^

Hi Fritz,

The logic behind mass values was to normalize the values to represent an average guy with looking back at the TLEM1.2 being a some sort of reference.

We tried looking at the TLEM1.2 (7kg) vs TLEM2.1 scale of the thigh mass, and it looked to be 0.86 (which is not too far from your 0.9). This could be thought as idealizing masses to 2 cylinders of the same radius and density, but different length. How accurate is your 0.9 factor?

But it might also be that a more complex scaling was done, something like a Length Mass Scaling, which accounts for the thickness as well. Unfortunately, the thesis by V. Carbone is not very descriptive with respect to choosing these values.

We will look into this again to understand how accurate this value and whether it should be changed, but at the moment we will leave it like that.

Does it cause you some problems? Or you were just wondering about the source?

We also noticed a typo in the code, where a pelvis mass was used from the trunk dataset instead of the leg dataset. Not sure whether you would see the difference though or not. It’s already fixed and will be applied to the next patch of AMMR.

Kind regards,
Pavel

If all I want to do is to change the knee joint from a revolute joint to a spherical joint, where is recommended to make the change? Modify within Jnt.any of the LegTLEM model (from AnyRevoluteJoint to AnySphericalJoint) or redefine as suggested in the quote below?

Background: I am modifying the Plug-in-gait_Simple (LowerExtremity.main) so to customize the code for analyzing my gait data. My gait data comes from a study that emphasizes on a change in the frontal plane (joint angle and moment). Therefore, I find defining the knee joint as a hinge joint, allowing rotation in the sagittal plane, inadequate.

P.S., This is my first post in the forum. Please move it if it is not posted in the appropriate location.

Jade He
Rush University, Chicago

1 Like

Yes, I was wondering about the source.

It would be really benefical, if the source (and conversion formula) of these kind of values would be added as comment in the corresponding ANY-Files.

If the AMMR would be public on github, even users could push such simple improvements.

Kind regards

Hi Fritz,

As Morten already mentioned to you, the development repo of AMMR is already accessible on request, and you are allowed to contribute your corrections. We would very much appreciate useful contributions.

We do our best to document the repository. But we also sometimes lack information to be put into the documentation in the first place. For example, the TLEM2.0 dataset, even though an incredible amount work was put into it, is not perfectly documented due to the scientific nature of the project and time limitations associated with the project duration. Sometimes it does indeed slip through our fingers full of other work.

We appreciate your feedback and will try to incorporate all these comments into the coming version of the AMMR.

Kind regards,
Pavel

Dear Jade,

The approach that Morten suggested is preferred. This way you don't modify the repository and could keep getting the support from us. Otherwise we simply would not know how your repository looks like and how we could help. Please try and let us know if you run into problems.

Kind regards,
Pavel

This topic was automatically closed 125 days after the last reply. New replies are no longer allowed.