This software is dedicated to the estimation of rigid-body motions and bone deformity analysis for the ankle joint in children from a stationnary high-resolution static MRI scan and a set of low-resolution dynamic MRI scans. It can be also adapted for other articulated structures such as the shoulder etc...
Main contributor: Karim Makki (karim.makki@imt-atlantique.fr)
- OS: Mac OS X and Linux
- FSL: https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FslInstallation
- NiBabel
- All data to analyse need to be in NIFTI format
In order to respect the segmentation protocol, it is highly recommended to segment the tibia for a height of 35 mm. To count from the point of contact between the growth cartilage for the tibia on the one hand and the articular cartilage (tibia / talus) on the other hand. This software works well especially when the imaged FOV cover the entire structure of each rigid component (or bone of interest) both in the static and in time frames. Please keep your input masks in this order (mask1: calcaneus; mask2: talus; mask3: tibia).
python /motion_estimation/motionEstimation.py \
-s <path-to-static-image> \
-d <path-to-dynamic-image> \
-m <path-to-calcaneus-mask-of-static-image> \
-m <path-to-talus-mask-of-static-image> \
-m <path-to-tibia-mask-of-static-image> \
-o <path-to-save-motion-estimation-output>
Please keep your input masks (-m) in this order:
mask1: calcaneus; mask2: talus; mask3: tibia
This program outputs a folder per component (or mask):
/outputpath/propagation/output_path_component_i_/
Final results of each component are then saved in a specified sub-folder:
/outputpath/propagation/output_path_component_i_/final_results/
Final results are:
- Segmentations of the low-resolution time frames
- Direct transformations from static to each time frame
If this sub-repository helps you, please cite our work using the following BibTex:
@article{makki2019vivo,
title={In vivo ankle joint kinematics from dynamic magnetic resonance imaging using a registration-based framework},
author={Makki, Karim and Borotikar, Bhushan and Garetier, Marc and Brochard, Sylvain and Salem, Douraied Ben and Rousseau, Fran{\c{c}}ois},
journal={Journal of biomechanics},
volume={86},
pages={193--203},
year={2019},
publisher={Elsevier}
}
This is a tool to analyse ankle bone shape differences between typically developping children (TD) and children with cerebral palsy (CP) using 3D MRI.
Main contributor: Yue Cheng
You can find the TD ankle joint template and the label of bones of interest in .\deformity_analysis
, named template_img.nii.gz
and template_label.nii.gz
Also, the shape templates of calcaneus, talus and tibia are provided both in NIFTI and 3D mesh files, named as bone.nii.gz
or bone.stl
respectively.
- For template estimation and subject-to-template registration: ANTs (http://stnava.github.io/ANTs/)
- To install required Python libraries, please use this command:
pip install deformity_analysis/requirements.txt
To perform the registration, you can run the code like this:
python deformity_analysis/registration.py \
-n <number-of-thread> \
-t <path-to-TD-subjects-segmentation-files> \
-c <path-to-CP-subjects-segmentation-files> \
-ot <path-to-save-TD-subjects-registration-output> \
-oc <path-to-save-CP-subjects-registration-output>
To perform the anomaly analysis, please run like this:
python deformity_analysis/detection.py \
-b <which-bone-to-analysis> \
-t <path-to-TD-subjects-registration-output> \
-c <path-to-CP-subjects-registration-output> \
-o <path-to-save-detection-results>
Once the NIFTI format detection results are obtained, you can convert the NIFTI to 3D mesh to facilitate the visualization:
Main contributor of this part: Benjamin Fouquet
python deformity_analysis/texture_plugger.py \
-is <path-to-> \
-t <path-to-TD-subjects-registration-output> \
-c <path-to-CP-subjects-registration-output> \
-o <path-to-save-detection-results>