Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tag v1.0 #2

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
*.asv
*.log
*.fig
*.png
*.mat
*.m
2 changes: 1 addition & 1 deletion NOTICE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,4 @@ by citing the following paper:

Modenese L and Kohout J (2020). Automated Generation of Three-Dimensional
Complex Muscle Geometries for Use in Personalised Musculoskeletal Models.
Annals of Biomedical Engineering (under review).
Annals of Biomedical Engineering, https://doi.org/10.1007/s10439-020-02490-4.
26 changes: 22 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
# Overview
# Table of Contents <!-- omit in toc -->
- [Overview](#overview)
- [Brief summary of the publication](#brief-summary-of-the-publication)
- [Video summary of the publication](#video-summary-of-the-publication)
- [Requirements](#requirements)
- [Contents](#contents)
- [Visualizing the anatomical dataset](#visualizing-the-anatomical-dataset)
- [Visualizing the OpenSim models](#visualizing-the-opensim-models)
- [Running the MATLAB scripts](#running-the-matlab-scripts)
- [Limitations and notes about reproducibility](#limitations-and-notes-about-reproducibility)
- [Future work](#future-work)

# Overview
This repository contains the data, models and the Matlab scripts to inspect and reproduce the results of the following publication:

```bibtex
@article{Modenese2019three,
@article{Modenese2020three,
title={Automated Generation of Three-Dimensional Complex Muscle Geometries for Use in Personalised Musculoskeletal Models},
author={Modenese, Luca and Kohout, Josef},
journal={Annals of biomedical engineering},
Expand All @@ -27,6 +38,13 @@ ranges of motion consistent with normal gait. If you need some background readin

![muscle_deformations](https://github.com/modenaxe/3d-muscles/blob/master/images/muscle_deformations.png)

## Video summary of the publication

The paper associated with this repository was awarded the [:trophy: Athanasiou postdoctoral award :trophy: of the Biomedical Engineering Society (BMES)](https://www.bmes.org/athanasiou) and the talk Luca gave for the occasion, presenting the work and its future developments, has been recorded and shared on YouTube. Click on the image below to see the recorded:

[![Alt text](images/youtube_thumbnail.png)](https://youtu.be/4YHMiScyYtg)


# Requirements
In order to take full advantage of the content of this repository you will need to:
1. download [OpenSim 3.3](https://simtk.org/projects/opensim). Go to the `Download` page of the provided link and click on `Previous releases`, as shown in [this screenshot](https://github.com/modenaxe/3d-muscles/blob/master/images/get_osim3.3.PNG).
Expand All @@ -40,7 +58,7 @@ This repository includes:
1. LHDL Anatomical dataset (see [reference publication](https://www.jstage.jst.go.jp/article/physiolsci/58/7/58_7_441/_article)) including:

a. bone geometries (pelvis, right femur)
b. muscle geometries for _iliacus_, _psoas_, _gluteus maximus_ and _gluteus medius_
b. muscle geometries for iliacus, psoas, gluteus maximus and gluteus medius
c. muscle attachments (as point clouds)
2. OpenSim model with `straight-lines muscles` built from the LHDL dataset using NMSBuilder
3. Motion data in OpenSim format (`.mot` files) to simulate the following hip motions:
Expand Down Expand Up @@ -78,7 +96,7 @@ So the order is:
# Limitations and notes about reproducibility
* The highly discretized muscle models are meant to be used for simulating the provided hip joint tasks and nothing else.
* Please note that the results for the highly discretized muscles presented in the manuscript were generated from kinematic simulations
performed in LHPBuilder, a multimodal viewer for biomechanical application that is not developed or supported anymore.
performed in LHPBuilder, a multimodal viewer for biomechanical applications that is not developed or supported anymore.
A version of LHPBuilder compatible with the use done in this paper can be downloaded from
[this website](https://mi.kiv.zcu.cz/en/research/musculoskeletal.html). LHPBuilder is a complex
tool requiring preliminary training to be used, so we decided instead to implement the muscle fibre kinematics in the OpenSim models directly.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
% DO NOT REDISTRIBUTE WITHOUT PERMISSION
%__________________________________________________________________________
%
function StorageMatStruc = Storage2MatStruct(Storage_file)
function StorageMatStruc = sto2MatStruct(Storage_file)
% OpenSim suggested settings
import org.opensim.modeling.*
OpenSimObject.setDebugLevel(3);
Expand Down
2 changes: 1 addition & 1 deletion c_generate_Fig4_Fig5.m
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
% ----------------------------------------------------------------------- %
% last modified 16 Oct 2017

function c_generate_Fig3_Fig4()
function c_generate_Fig4_Fig5()

clc; close all;

Expand Down
2 changes: 1 addition & 1 deletion d1_Table1_mom_arms_compare.m
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
cur_task = task_set{n_t};
% load mom arms from OpenSim model (saved from OpenSim GUI)
MSK_results_file = [MSK_results_folder, filesep ,model,'_',cur_task,'.mot'];
osim_MA_task = Storage2MatStruct(MSK_results_file);
osim_MA_task = sto2MatStruct(MSK_results_file);
% load results from highly discretized muscles
load(fullfile(biomech_res_folder, ['Results_',model,'_',cur_task]));

Expand Down
2 changes: 1 addition & 1 deletion d3_Table2_mom_arms_straight_lines.m
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
in_deg = 'yes';

% load mom arms from OpenSim model (saved from OpenSim GUI)
osim_MA = Storage2MatStruct(MSK_results_file);
osim_MA = sto2MatStruct(MSK_results_file);
if strcmp(cur_task, 'hip_flexion')
osim_MA.data = osim_MA.data(1:71, :);
end
Expand Down
Binary file added images/youtube_thumbnail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.