2019/06/08 M. Hongchul Sohn and Daniel M. Smith SUMMARY: This repository contains all the MATLAB code and data file (verified to work with MATLAB release R2016b and later) necessary to recreate all results and figures in Sohn, Smith, Ting, "Effects of kinematic complexity and number of muscles on musculoskeletal model robustness to muscle dysfunction." Our objective was to systematically study how the number of kinematic degrees of freedom, and the number of independent muscle actuators alter the robustness of motor output to muscle dysfunction. We took a detailed musculoskeletal model of the human leg and systematically varied the model complexity to create eight models with either 3 or 7 kinematic degrees of freedom (denoted as D3 or D7) and either 14, 26, 31, or 43 muscle actuators (denoted as M14, M26, M31, or M43). We tested the redundancy of each model by quantifying the reduction in sagittal plane feasible force set area when a single muscle was removed. The results from the alt-Int-Muscle model (31 muscles) did not affect the general message and were therefore not reported in paper, but are included here. Results for 3 dimensional feasible force set, i.e., non-sagittal plane forces, as well as feasible muscle activation ranges at submaximal force production task (0% and 50%) can be also found here. CONTACT: Contact the following authors for further questions. - Hongchul Sohn: hongchul.sohn@northwestern.edu - Daniel Smith: dannysmith@gatech.edu FOLDER ORGANIZATION: - Code/ - Data Collection/ - driver_CalcAllFeasibleForceSetsAndMuscleActivationRanges.m - Functions/ - several helper functions - Create Figures/ - driver_Fig1_FFS_RobustnessToGeneralSingleMuscleLoss.m - driver_Fig2_FFS_SensitivityToSpecificSingleMuscleLoss_BarGraph.m - driver_Fig3_FFS_SensitivityToSpecificSML_GroupedVsUngrouped.m - driver_Fig4raw_FMAR_AtMaxForce_VsDirectionInSagittalPlane.m - driver_PlotAllSpecificSingleMuscleLossFeasibleForceSets.m - Functions/ - several helper functions - Data/ - Raw/ - Data from models, e.g. the Jacobian and Muscle parameters - Results/ - All/ - Full data from all 8 models: D3M14, D3M26, D3M31, D3M43 D7M14, D7M26, D7M31, D7M43 - Presented/ - Reduced Data, specific to Figures 1 through 4 INSTRUCTIONS: This repository has six driver scripts: - One to run the data collection based on the raw data from the models - Five to visualize the data/create figures Data Collection: The data collection script is set up to calculate the Feasible Force Sets (FFSs) and Feasible Muscle Activation Ranges (FMARs) for all eight models. Running the script will create a folder in Data with today's date to store the new data. First, the FFSs are calculated with and without single muscle loss. Secondly, the FMARs are calculated based on the FFSs without single muscle loss. User input is only required if the user wants to change which models are collected. Note that as model complexity increases, so does the time required to find a solution. Visualization: - driver1 plots the intact FFS and the regions of the FFS robust to general single muscle loss. It additionally creates two other figures for additional perspectives on the same data, comparing force magnitudes and normalized force magnitudes. No user input required. - driver2 visualizes all the sensitivity/robustness (sensitivity + robustness = 100%) of the FFSs in each model for all muscles with a bar graph and lines for the quartiles (think box plot). No user input required. - driver3 compares the effect of losing a "single" (grouped, yet individually controlled) muscle from the D3M14 model with the effect of losing the corresponding individual muscles in the D3M26 model, across several muscles. The muscle in consideration is a user-input in the driver: uncomment the name of the desired muscle only in the driver. - driver4 plots the FMARs for any of the 8 models (currently set up for the 6 reported in the paper). Location in the subplot is unique to each muscle in the Hi-Muscle model. If there is a blank area in a Lo- or Int-Muscle model, it is not present in that model. When the subplot area covers several muscle's areas, it means that muscle is grouped together from each of those muscles. The format of these figures does not match the eventual Figure 4, but the data is available. - driver5 displays all the specific single muscle loss FFSs across all models. No user input required.