User Tools

Site Tools


sift:tutorials:treadmill_walking_in_healthy_individuals

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sift:tutorials:treadmill_walking_in_healthy_individuals [2024/11/29 16:09] – [Knee] wikisysopsift:tutorials:treadmill_walking_in_healthy_individuals [2024/11/29 16:40] (current) wikisysop
Line 17: Line 17:
   * **Fukuchi et. al. subject data:** From the publicly available data files, download WBDSc3d.zip for subject .c3d files, and WBDSinfo.xlsx for the metadata [[https://figshare.com/articles/dataset/A_public_data_set_of_overground_and_treadmill_walking_kinematics_and_kinetics_of_healthy_individuals/5722711|[3]]]   * **Fukuchi et. al. subject data:** From the publicly available data files, download WBDSc3d.zip for subject .c3d files, and WBDSinfo.xlsx for the metadata [[https://figshare.com/articles/dataset/A_public_data_set_of_overground_and_treadmill_walking_kinematics_and_kinetics_of_healthy_individuals/5722711|[3]]]
  
-To simplify this tutorial, the following premade files are available to download as a starting point. They are contained in the zip folder labelled **"I3D_Tutorial_Treadmill_Walking.zip"**, which can be downloaded [[https://www.has-motion.com/download/examples/Inspect3D/I3D_Tutorial_Treadmill_Walking.zip|here]]. The file types and contents are briefly described below:+To simplify this tutorial, the following premade files are available to download as a starting point. They are contained in the zip folder labelled **"Sift_Tutorial_Treadmill_Walking.zip"**, which can be downloaded [[https://www.has-motion.com/download/examples/Sift_Tutorial_Treadmill_Walking.zip|here]]. The file types and contents are briefly described below:
  
   * **Visual3D Workspaces (processed_workspaces):** Pre-processed .cmz and .c3d files for the elderly subject group (subjects 25-42). Contains pre-made tags (see Table 1).   * **Visual3D Workspaces (processed_workspaces):** Pre-processed .cmz and .c3d files for the elderly subject group (subjects 25-42). Contains pre-made tags (see Table 1).
Line 43: Line 43:
 ===== Visual3D Processing ===== ===== Visual3D Processing =====
  
-If you want to skip to the Sift analysis portion of this tutorial, ensure you have downloaded the **"I3D_Tutorial_Treadmill_Walking.zip"** folder and then skip to the header called **[[sift:tutorials:treadmill_walking_in_healthy_individuals#loading_data_into_sift|Loading Data into Sift]]**. If you want to use or modify the pre-made pipeline, continue with the steps below. You will need to have downloaded the original data from Fukuchi et al.[[https://figshare.com/articles/dataset/A_public_data_set_of_overground_and_treadmill_walking_kinematics_and_kinetics_of_healthy_individuals/5722711|[4]]]+If you want to skip to the Sift analysis portion of this tutorial, ensure you have downloaded the **"Sift_Tutorial_Treadmill_Walking.zip"** folder and then skip to the header called **[[sift:tutorials:treadmill_walking_in_healthy_individuals#loading_data_into_sift|Loading Data into Sift]]**. If you want to use or modify the pre-made pipeline, continue with the steps below. You will need to have downloaded the original data from Fukuchi et al.[[https://figshare.com/articles/dataset/A_public_data_set_of_overground_and_treadmill_walking_kinematics_and_kinetics_of_healthy_individuals/5722711|[4]]]
  
 This tutorial uses the Pipeline feature of Visual3D to process the raw data provided by Fukuchi et al. The benefit of the pipeline feature is that it can be used to automate repeated steps and reduces the amount of time it takes to work with large data sets. If you are unfamiliar with using the Visual3D workspace, take some time to review the [[https://www.c-motion.com/v3dwiki/index.php?title=Tutorial_Typical_Processing_Session|Typical Processing Session Tutorial]] and the [[https://www.c-motion.com/v3dwiki/index.php?title=Tutorial:_Command_Pipeline|Command Pipeline Tutorial]]. This tutorial uses the Pipeline feature of Visual3D to process the raw data provided by Fukuchi et al. The benefit of the pipeline feature is that it can be used to automate repeated steps and reduces the amount of time it takes to work with large data sets. If you are unfamiliar with using the Visual3D workspace, take some time to review the [[https://www.c-motion.com/v3dwiki/index.php?title=Tutorial_Typical_Processing_Session|Typical Processing Session Tutorial]] and the [[https://www.c-motion.com/v3dwiki/index.php?title=Tutorial:_Command_Pipeline|Command Pipeline Tutorial]].
Line 51: Line 51:
 **1. Download .c3d files:** Fukuchi et al. has a folder labelled **WBDSc3dWithGaitEvents**, ensure that you are using the .c3d files contained in this folder. **1. Download .c3d files:** Fukuchi et al. has a folder labelled **WBDSc3dWithGaitEvents**, ensure that you are using the .c3d files contained in this folder.
  
-**2. Subject by Subject Pipeline Edits:** If you haven't yet, download **"pipeline.v3s"** from **"I3D_Tutorial_Treadmill_Walking.zip"**. This pipeline compiles all the static and dynamic .c3d files, associates them with a model file, and sets tags for all of the subjects, then generates separate .cmx and .cmz files for each subject. You can open the pipeline in a text editor and search and edit these functions manually, or open the Pipeline Workshop and edit them in the Visual3D interface. This pipeline must be run once for each subject, with the following changes being made before each run:+**2. Subject by Subject Pipeline Edits:** If you haven't yet, download **"pipeline.v3s"** from **"Sift_Tutorial_Treadmill_Walking.zip"**. This pipeline compiles all the static and dynamic .c3d files, associates them with a model file, and sets tags for all of the subjects, then generates separate .cmx and .cmz files for each subject. You can open the pipeline in a text editor and search and edit these functions manually, or open the Pipeline Workshop and edit them in the Visual3D interface. This pipeline must be run once for each subject, with the following changes being made before each run:
   * **Subject Index:** Under pipeline function Set_Pipeline_Parameter, change PARAMETER_VALUE to the value associated with each subject (01, 02, 03...).   * **Subject Index:** Under pipeline function Set_Pipeline_Parameter, change PARAMETER_VALUE to the value associated with each subject (01, 02, 03...).
   * **Subject Height:** Under pipeline function Set_Subject_Height, change the HEIGHT parameter to match the subject. Height is in cm.   * **Subject Height:** Under pipeline function Set_Subject_Height, change the HEIGHT parameter to match the subject. Height is in cm.
Line 76: Line 76:
 ===== Loading Data into Sift ===== ===== Loading Data into Sift =====
  
-Within the **"I3D_Tutorial_Treadmill_Walking.zip"** folder there is a subfolder labelled **"processed_workspaces"**. This contains the Visual3D workspaces that must be loaded into Sift for further analysis.+Within the **"Sift_Tutorial_Treadmill_Walking.zip"** folder there is a subfolder labelled **"processed_workspaces"**. This contains the Visual3D workspaces that must be loaded into Sift for further analysis.
  
-  - Select {{:sift_library_load.png}} **Load Library** and set **Library Path** to the folder where your .cmz files are located. Ensure you are using the files from the **WBDSc3dWithGaitEvents** folder (or the **"processed_workspaces"** folder if using the .zip file). Then select **Load** and exit the window. +  - Select {{:sift_library_load.png?20}} **Load Library** and set **Library Path** to the folder where your .cmz files are located. Ensure you are using the files from the **WBDSc3dWithGaitEvents** folder (or the **"processed_workspaces"** folder if using the .zip file). Then select **Load** and exit the window. 
-  - Open the {{:sift_query_builder.png}}**Query Builder** icon on the [[Sift:Application:Explore_Page|Explore Page]] or on the [[Sift:Application:Toolbar|toolbar]] to prompt the [[Sift:Application:Query_Builder_Dialog|Query Builder Dialog]]. Select {{:sift_load_queries.png}}**Load Query Definitions**. Once prompted, open the **group_definitions.q3d** query file.+  - Open the {{:sift_query_builder.png?20}}**Query Builder** icon on the [[Sift:Application:Explore_Page|Explore Page]] or on the [[Sift:Application:Toolbar|toolbar]] to prompt the [[Sift:Application:Query_Builder_Dialog|Query Builder Dialog]]. Select {{:sift_load_queries.png?20}}**Load Query Definitions**. Once prompted, open the **group_definitions.q3d** query file.
   - Select **Calculate All Queries**. Query groups will be divided up based on right and left pelvis, hip, knee and ankle joint angles in x, y, and z axis.   - Select **Calculate All Queries**. Query groups will be divided up based on right and left pelvis, hip, knee and ankle joint angles in x, y, and z axis.
  
Line 86: Line 86:
 If you would like to learn more about these queries, a detailed tutorial on creating query definitions can be found [[Sift:Tutorials:Load_and_View_Data|here]]. An example of creating a query manually is as follows. If you would like to learn more about these queries, a detailed tutorial on creating query definitions can be found [[Sift:Tutorials:Load_and_View_Data|here]]. An example of creating a query manually is as follows.
  
-  - Open the {{:sift_query_builder.png}}**Query Builder** Dialog. +  - Open the {{:sift_query_builder.png?20}}**Query Builder** Dialog. 
-  - Add a {{:sift_action_add.png}} **group** and name it “Rail_HIP_ANGLE_X_right” +  - Add a {{:sift_action_add.png?20}} **group** and name it “Rail_HIP_ANGLE_X_right” 
-  - Add a {{:sift_action_add.png}} **sub-group** and name it “Rail_HIP_ANGLE_X_right”+  - Add a {{:sift_action_add.png?20}} **sub-group** and name it “Rail_HIP_ANGLE_X_right”
     - **Signals**:      - **Signals**: 
       - Type - “LINK_MODEL_BASED”       - Type - “LINK_MODEL_BASED”
Line 108: Line 108:
 If you haven't had much experience cleaning data in Sift, take some time to review the [[Sift:Tutorials:Clean_your_Data|Clean Your Data Tutorial]]. If you haven't had much experience cleaning data in Sift, take some time to review the [[Sift:Tutorials:Clean_your_Data|Clean Your Data Tutorial]].
  
-To begin cleaning your data, navigate to the [[Sift:Application:Explore_Page|Explore Page]]. Start by selecting a group to graph, then clicking **Select all Workspaces** and then **Plot all Sequences**. Make sure the plot type is set to "Signal-Time" on the plot control panel. On the plotted graph, highlight any traces you wish to inspect. If you want to remove them, right click on the graph and hover over **Exclude**, then click **Exclude Trace (raw data)**. If you would like to exclude this data from the original files, select {{:sift_update_cmz.png}}**Update CMZs** in the toolbar to open a dialog, allowing you to update the files with the excluded traces.+To begin cleaning your data, navigate to the [[Sift:Application:Explore_Page|Explore Page]]. Start by selecting a group to graph, then clicking **Select all Workspaces** and then **Plot all Sequences**. Make sure the plot type is set to "Signal-Time" on the plot control panel. On the plotted graph, highlight any traces you wish to inspect. If you want to remove them, right click on the graph and hover over **Exclude**, then click **Exclude Trace (raw data)**. If you would like to exclude this data from the original files, select {{:sift_update_cmz.png?20}}**Update CMZs** in the toolbar to open a dialog, allowing you to update the files with the excluded traces.
  
 Depending on how you clean your data, results may vary. The example below shows the difference after removing some traces from the query **NRail_HIP_ANGLE_Z_left**. Depending on how you clean your data, results may vary. The example below shows the difference after removing some traces from the query **NRail_HIP_ANGLE_Z_left**.
Line 120: Line 120:
 To start a PCA analysis, start by selecting the two groups you want to compare in the **Groups** menu (CTRL + Click). Example: CTRL + Click on **Rail_Pelvis_Angle_Z_right** and **NRail_Pelvis_Angle_Z_right**. Visualize the group differences by de-selecting "Plot all Traces", and select **Plot Group mean** and **Plot Group Dispersion** from the Plot Controls. To start a PCA analysis, start by selecting the two groups you want to compare in the **Groups** menu (CTRL + Click). Example: CTRL + Click on **Rail_Pelvis_Angle_Z_right** and **NRail_Pelvis_Angle_Z_right**. Visualize the group differences by de-selecting "Plot all Traces", and select **Plot Group mean** and **Plot Group Dispersion** from the Plot Controls.
  
-Navigate to the toolbar at the top of the interface and select the {{:sift_run_pca.png}} button. The Sift window will change to the [[Sift:Application:Analyse_Page|Analyse Page]], and the [[Sift:Principal_Component_Analysis:Run_PCA_Dialog|Run PCA Dialog]] will appear. Select a name for the PCA Analysis, the number of PCAs you want for your analysis and select if **Use Workspace Mean** should be used. Then click **Run PCA**. The PCA graph should appear on the right side of the user interface.+Navigate to the toolbar at the top of the interface and select the {{:sift_run_pca.png?20}} button. The Sift window will change to the [[Sift:Application:Analyse_Page|Analyse Page]], and the [[Sift:Principal_Component_Analysis:Run_PCA_Dialog|Run PCA Dialog]] will appear. Select a name for the PCA Analysis, the number of PCAs you want for your analysis and select if **Use Workspace Mean** should be used. Then click **Run PCA**. The PCA graph should appear on the right side of the user interface.
  
 Once the PCA has been run, the 6 different tabs within the Analysis->PCA tabs are populated (variance explained, loading vector, workspace scores, group scores, extreme plot and PC reconstruction). See the [[Sift:Tutorials:Perform_Principal_Component_Analysis|Perform Principal Component Analysis]] for more information on using these tools and interpreting results. Once the PCA has been run, the 6 different tabs within the Analysis->PCA tabs are populated (variance explained, loading vector, workspace scores, group scores, extreme plot and PC reconstruction). See the [[Sift:Tutorials:Perform_Principal_Component_Analysis|Perform Principal Component Analysis]] for more information on using these tools and interpreting results.
Line 134: Line 134:
 ==== Ankle ==== ==== Ankle ====
  
-For this study, to look specifically at one joint 6 figures can be laid out in a 3x2 grid. To do so go to the {{:sift_general_options.png}} **[[Sift:Application:Data_Options_Dialog|Data Options]]** tab and change the number of rows and columns. This allows for easy comparison between the different angle changes in different directions. We plotted the left and right ankle angles in abduction-adduction, internal-external rotation, and flexion-extension to compare signals between railing and non-railing walking conditions. Visual analysis showed very similar trajectories over a gait cycle, however holding the railing (dark red) appeared to have greater variability during stance for left angle in abduction-adduction and internal-external rotation. For the right leg they overall show similar trajectories. {{:fukuchi_ankle_1.png}}+For this study, to look specifically at one joint 6 figures can be laid out in a 3x2 grid. To do so go to the {{:sift_general_options.png?20}} **[[Sift:Application:Data_Options_Dialog|Data Options]]** tab and change the number of rows and columns. This allows for easy comparison between the different angle changes in different directions. We plotted the left and right ankle angles in abduction-adduction, internal-external rotation, and flexion-extension to compare signals between railing and non-railing walking conditions. Visual analysis showed very similar trajectories over a gait cycle, however holding the railing (dark red) appeared to have greater variability during stance for left angle in abduction-adduction and internal-external rotation. For the right leg they overall show similar trajectories.  
 + 
 +{{:fukuchi_ankle_1.png}}
  
 ==== Knee ==== ==== Knee ====
Line 157: Line 159:
 We plotted the left hip internal and external rotation over a gait cycle, including the mean and standard deviations for both railing and non-railing groups. For the coordinate system used in the Fukuchi et. al. data set, the Y-axis is aligned in the vertical direction, and so the hip angle about the Y-axis describes internal-external rotation behaviour. Using Sift’s PCA analysis, we plotted the **Group Scores** tab for the first 4 principal components that described >95% of the hip joint signals, with the mean and standard error. We found that the second principal component has identifiable differences in the scores between groups, as the standard errors do not cross the x-axis. Further investigation into this principal component using the **Workspace Scores** we can see a reasonable separation between groups when comparing PC2 to PC1. In this specific example, PC1 describes more of the dataset variability for each group (64.1%), however, PC2 can best discriminate between the compared groups when analysing the hip internal-external rotation. We plotted the left hip internal and external rotation over a gait cycle, including the mean and standard deviations for both railing and non-railing groups. For the coordinate system used in the Fukuchi et. al. data set, the Y-axis is aligned in the vertical direction, and so the hip angle about the Y-axis describes internal-external rotation behaviour. Using Sift’s PCA analysis, we plotted the **Group Scores** tab for the first 4 principal components that described >95% of the hip joint signals, with the mean and standard error. We found that the second principal component has identifiable differences in the scores between groups, as the standard errors do not cross the x-axis. Further investigation into this principal component using the **Workspace Scores** we can see a reasonable separation between groups when comparing PC2 to PC1. In this specific example, PC1 describes more of the dataset variability for each group (64.1%), however, PC2 can best discriminate between the compared groups when analysing the hip internal-external rotation.
  
-{{:HIP1.jpg}}{{:HIP2.jpg}}{{:Hip3.jpg}} +{{:fukuchi_hip_1.png}}{{:fukuchi_hip_2.png?1000}}{{:fukuchi_hip_3.png?1000}}
 ==== Pelvis ==== ==== Pelvis ====
  
 When comparing pelvis angles during the gait cycle, we noticed variations in the Z-axis behaviour. For the coordinate system used in the Fukuchi et. al. data set, the Z-axis is aligned in the medial/lateral direction, and so rotation about this axis defines the anterior-posterior rotation of the pelvis. We can see directly from plotting mean and standard deviation of the group signals, the non-railing condition appears to have much greater variability across those subjects. The mean signal trajectory shows that the subjects who did not hold the railing were walking with a more upright pelvis position, and those who did hold the railing walked with a greater forward tilt in the lower trunk/pelvis. Moving to our PCA analysis, we can see that almost 100% of the variability between group signals can be described by PC1, and PC1 can also be used to discriminate between signals when analysing anterior/posterior pelvis angle. When comparing pelvis angles during the gait cycle, we noticed variations in the Z-axis behaviour. For the coordinate system used in the Fukuchi et. al. data set, the Z-axis is aligned in the medial/lateral direction, and so rotation about this axis defines the anterior-posterior rotation of the pelvis. We can see directly from plotting mean and standard deviation of the group signals, the non-railing condition appears to have much greater variability across those subjects. The mean signal trajectory shows that the subjects who did not hold the railing were walking with a more upright pelvis position, and those who did hold the railing walked with a greater forward tilt in the lower trunk/pelvis. Moving to our PCA analysis, we can see that almost 100% of the variability between group signals can be described by PC1, and PC1 can also be used to discriminate between signals when analysing anterior/posterior pelvis angle.
  
-{{:PELVIS1.jpg}}{{:PELVIS2.jpg}} +{{:fukuchi_pelvis_1.png}}{{:fukuchi_pelvis_2.png?1000}}{{:fukuchi_pelvis_3.png?1000}}{{:fukuchi_pelvis_4.png?1000}}
- +
-{{:PELVIS3.jpg}}{{:PELVIS4.jpg}} +
 ===== Conclusions ===== ===== Conclusions =====
  
Line 173: Line 171:
 Table 2: PCA Results Table 2: PCA Results
 |Joint                         |PC of Significance|% of Variance Explained by Significant PC|% of Variance Explained by 4 PCs| |Joint                         |PC of Significance|% of Variance Explained by Significant PC|% of Variance Explained by 4 PCs|
-|Knee Flexion-Extension        |PC1               |64.1%                                    |95%                             |+|Knee Flexion-Extension        |PC1               |69.9%                                    |97%                             |
 |Hip Internal-External Rotation|PC2               |16.4%                                    |98%                             | |Hip Internal-External Rotation|PC2               |16.4%                                    |98%                             |
 |Anterior-Posterior Pelvic Tilt|PC1               |99.99%                                   |99%                             | |Anterior-Posterior Pelvic Tilt|PC1               |99.99%                                   |99%                             |
  
  
-From these results we can conclude that holding a hand rail does have the statistical potential to influence lower limb joint angles (particularly the pelvic angle) and should be a variable that is controlled for in future studies.+From these results we can conclude that holding a hand rail does have the potential to statistical influence lower limb joint angles (particularly the pelvic angle) and should be a variable that is controlled for in future studies.
  
 However, there are limitations on the conclusions that can be drawn from this analysis. Firstly, eliminating the younger subjects from the analysis pool reduced the subject pool from 42 to 17. This number of subjects is typically acceptable for pilot studies but is not large enough to be statistically valid for the general population. Secondly, to further quantify the relationship between rail use and lower limb joint angles it would be more effective to have the same subjects walk with and without a handrail (which was not the case in this data set). This would better control for variations in individual gait patterns. However, there are limitations on the conclusions that can be drawn from this analysis. Firstly, eliminating the younger subjects from the analysis pool reduced the subject pool from 42 to 17. This number of subjects is typically acceptable for pilot studies but is not large enough to be statistically valid for the general population. Secondly, to further quantify the relationship between rail use and lower limb joint angles it would be more effective to have the same subjects walk with and without a handrail (which was not the case in this data set). This would better control for variations in individual gait patterns.
sift/tutorials/treadmill_walking_in_healthy_individuals.1732896553.txt.gz · Last modified: 2024/11/29 16:09 by wikisysop