OSCR

Exploring the effect of different neural strategies on the knee joint contact forces during walking in adults.

Code ↔ Paper

4 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 4 matches · 3 of them tie a paragraph to a whole file, not to given lines: weak matches, whose lines are not tinted
  1. [1] § Methods › MSK modelling and biomechanical simulations ↔ MatlabStaticOptimization/MAIN_StaticOptimization.m, the whole file · a weak match · score 0.69 · joint reaction, static optimization, OpenSim, muscle activations, API, angles
  2. [2] § Methods › Data analyses ↔ Codes/Plotting/Figures_7_8_boxplots.m, lines 1–22 · score 0.69 · BFL, LG, MG, SM, VL, VM
  3. [3] § Methods › MSK modelling and biomechanical simulations ↔ TestData/results_SO/API_staticOpt_settings.m, the whole file · a weak match · score 0.64 · joint reaction, OpenSim, static optimization, API, muscle activations, angles
  4. [4] § Results › Comparison between the reference solution and the solutions associated to minimum and maximum knee loads ↔ Codes/DataExtraction/calc_musc_force_variation.m, the whole file · a weak match · score 0.59 · young adults, knee joint, muscle forces, variation, zeroed, elderly

Paper

Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

MATLAB · 119 lines · 6.1 KB · Apache-2.0 · 1 match

  1. % Custom static optimization code. Author: Scott Uhlrich, Stanford
  2. % University, 2020. Please cite:
  3. % Uhlrich, S.D., Jackson, R.W., Seth, A., Kolesar, J.A., Delp S.L.
  4. % Muscle coordination retraining inspired by musculoskeletal simulations
  5. % reduces knee contact force. Sci Rep 12, 9842 (2022).
  6. % https://doi.org/10.1038/s41598-022-13386-9
  7. function [] = MAIN_StaticOptimizationAPI()
  8. % This main loop allows you to run StaticOptimizationAPI.m
  9. clear all; close all; format compact; clc; fclose all;
  10. % % Path to the data and utility functions. No need to change this, unless
  11. % you rearrange the folder structure, differently from github.
  12. baseDir = [pwd '\TestData\'] ; % Base Directory to base results directory.
  13. addpath(genpath('Utilities'))
  14. % % % Fill Path names
  15. INPUTS.trialname = 'walking_baseline1' ;
  16. INPUTS.forceFilePath = [baseDir '\walking_baseline1_forces.mot'] ; % Full path of forces file
  17. INPUTS.ikFilePath = [baseDir '\results_ik.sto'] ; % Full path of IK file
  18. INPUTS.idFilePath = [baseDir '\results_id.sto'] ; % Full path of ID file
  19. INPUTS.emgFilePath = [baseDir '\EMG_allMuscles.sto'] ; % location of *.mot file with normalized EMG (if using EMG)
  20. INPUTS.outputFilePath = [baseDir '\results_SO\'] ; % full path for SO & JRA outputs
  21. INPUTS.modelDir = [baseDir] ; % full path to folder where model is
  22. INPUTS.modelName = 'Rajagopal_scaled_Sub1_gasAvoid.osim' ; % model file name
  23. geometryPath = [baseDir '\Geometry'] ; % full path to geometry folder for Model. If pointing to Geometry folder in OpenSim install, leave this field blank: []
  24. % % % Set time for simulation % % %
  25. INPUTS.startTime = 10.9 ;
  26. INPUTS.endTime = 11.7 ;
  27. INPUTS.leg = 'l' ; % If deleteContralateralMuscles flag is true, actuates this leg
  28. % with muscles and contralateral leg with coordinate actuators
  29. % only. If deleteContralateralMuscles flag is false,
  30. % this input doesn't matter.
  31. % Flags
  32. % % Load up the INPUTS structure for static optimization parameters that are constant across all
  33. % trials and subjects
  34. INPUTS.filtFreq = 6 ; % Lowpass filter frequency for IK coordinates. -1 if no filtering
  35. % Flags
  36. INPUTS.appendActuators = true ; % Append reserve actuators at all coordinates?
  37. INPUTS.appendForces = true ; % True if you want to append grfs?
  38. INPUTS.deleteContralateralMuscles = false ; % replace muscles on contralateral leg with powerful reserve actuators (makes SO faster)
  39. INPUTS.useEmgRatios = false ; % true if you want to track EMG ratios defined in INPUTS.emgRatioPairs
  40. INPUTS.useEqualMuscles = false ; % true if you want to constrain INPUTS.equalMuscles muscle pairs to be equivalent
  41. INPUTS.useEmgConstraints = false ; % true if you want to constrain muscle activations to follow EMG input INPUTS.emgConstrainedMuscles
  42. INPUTS.changePassiveForce = false ; % true if want to turn passive forces off
  43. INPUTS.ignoreTendonCompliance = false ; % true if making all tendons rigid
  44. % Degrees of Freedom to ignore (patellar coupler constraints, etc.) during moment matching constraint
  45. INPUTS.fixedDOFs = {'knee_angle_r_beta','knee_angle_l_beta'} ;
  46. % EMG file
  47. INPUTS.emgRatioPairs = {} ; % nPairs x 2 cell for muscle names whos ratios you want to constrain with EMG. Can leave off '_[leg]' if you want it to apply to both
  48. INPUTS.equalMuscles = {} ; % nPairs x 2 cell of muscles for whom you want equal activations
  49. INPUTS.emgConstrainedMuscles = {} ; % nMuscles x 1 cell of muscles for which you want activation to track EMG. Can leave off '_[leg]' if you want it to apply to both
  50. INPUTS.emgSumThreshold = 0 ; % If sum of emg pairs is less than this it won't show up in the constraint or cost (wherever you put it)
  51. % Weights for reserves, muscles. The weight is in
  52. % the cost function as sum(w*(whatever^2)), so the weight is not squared.
  53. INPUTS.reserveActuatorWeights = 1 ;
  54. INPUTS.muscleWeights = 1 ;
  55. INPUTS.ipsilateralActuatorStrength = 1 ;
  56. INPUTS.contralateralActuatorStrength = 100 ;
  57. INPUTS.weightsToOverride = {} ; % Overrides the general actuator weight for muscles or reserves.
  58. % Can be a partial name. Eg. 'hip_rotation' will change hip_rotation_r and hip_rotation_l
  59. % or 'gastroc' to override the weight for the right and left gastroc muscles
  60. INPUTS.overrideWeights = [] ; % A column vector the same size as weights
  61. INPUTS.prescribedActuationCoords = {} ; % A column cell with coordinates (exact name) that will be prescribed from ID moments eg. 'knee_adduction_r'
  62. % The muscles will not aim to balance the moment at this DOF,
  63. % but their contribution to the moment will be computed at the
  64. % end of the optimization step, and the remaining moment generated by
  65. % the reserve actuator
  66. % External Forces Definitions
  67. INPUTS.externalForceName = {'GRF_r','GRF_l'} ; % nForces x 1 cell
  68. INPUTS.applied_to_body = {'calcn_r','calcn_l'} ;
  69. INPUTS.force_expressed_in_body = {'ground','ground'} ;
  70. INPUTS.force_identifier = {'ground_force_v','1_ground_force_v'} ;
  71. INPUTS.point_expressed_in_body = {'ground','ground'} ;
  72. INPUTS.point_identifier = {'ground_force_p','1_ground_force_p'} ;
  73. % Joint Reaction Fields
  74. INPUTS.jRxn.inFrame = 'child' ;
  75. INPUTS.jRxn.onBody = 'child' ;
  76. INPUTS.jRxn.jointNames = ['all'] ;
  77. INPUTS.passiveForceStrains = [3 4] ; % Default = [0,.7] this is strain at zero force and strain at 1 norm force in Millard model
  78. % This only matters if ignorePassiveForces = true
  79. % % % % % END OF USER INPUTS % % % % %% % % % %% % % % %% % % % %% % % % %
  80. if ~isempty(INPUTS.overrideWeights)
  81. disp('YOU ARE OVERRIDING SOME ACTUATOR WEIGHTS');
  82. end
  83. if ~isempty(geometryPath)
  84. org.opensim.modeling.ModelVisualizer.addDirToGeometrySearchPaths(geometryPath)
  85. end
  86. % Run it!
  87. StaticOptimizationAPIVectorized(INPUTS) ; % Run StaticOptimizationAPI
  88. % Save this script in the folder to reference settings
  89. FileNameAndLocation=[mfilename('fullpath')];
  90. newbackup=[INPUTS.outputFilePath 'API_staticOpt_settings.m'];
  91. currentfile=strcat(FileNameAndLocation, '.m');
  92. copyfile(currentfile,newbackup);
  93. end % Main

MAIN_StaticOptimization.m at commit 6c7f7f3, under Apache-2.0 · at the source

Overview

Authors: Giorgio Davico1, Enrico Toccaceli1, Luciana Labanca2, Maria Grazia Benedetti2,3, Marco Viceconti1,4
  1. Department of Industrial Engineering, Alma Mater Studiorum - University of Bologna, Bologna, Italy
  2. Physical Medicine and Rehabilitation Unit, IRCCS Istituto Ortopedico Rizzoli, Bologna, Italy
  3. Department of Biomedical and Neuromotor Sciences, Alma Mater Studiorum - University of Bologna, Bologna, Italy
  4. Medical Technology Lab, IRCCS Istituto Ortopedico Rizzoli, Bologna, Italy
Institutions: University of Bologna (Italy); Istituto Ortopedico Rizzoli (Italy)
Journal: Scientific reports, volume 16, issue 1, article 16676
Dates: received 19 May 2025; accepted 25 March 2026; published online 9 April 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1038/s41598-026-46419-8 · PMID 41957392 · PMCID PMC13219765 · OpenAlex W7152703905
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: other (modality), human (organism), computational (subfield)
Methods: Spectral & time-frequency, Statistics, Physiology & signal measures
Keywords: Musculoskeletal models, Ageing, Markov Chain Monte Carlo, Joint contact forces, EMG, Computational models, Biomedical engineering
MeSH: Knee Joint*, Muscle, Skeletal*, Walking*, Adult, Aged, Biomechanical Phenomena, Electromyography, Female, Humans, Male, Young Adult (* major topic)
Topic: Muscle activation and electromyography studies (Biomedical Engineering, Engineering), according to OpenAlex
Funding: NextGenerationEU (PNRR - M4C2-I1.3 Project PE_00000019 "HEAL ITALIA")
Citations: not cited yet (Europe PMC); 56 references in the paper

Abstract

Identifying the different neural strategies that a person may adopt to perform simple locomotor tasks, such as walking, may enable the definition of rehabilitation plans aimed to reduce joint loads while preserving joint kinematics. Abnormal detrimental loading conditions that would likely reduce a person’s quality of life, especially among the elderly, could thus be prevented. Leveraging on previous works, we employed musculoskeletal models and biomechanical simulations (1) to explore how healthy young and elder adults recruit their muscles to perform a walking task, and (2) to determine whether the use of electromyography data to inform the simulations would allow to reduce the solution space. For the 15 tested subjects (10 young, 5 elderly), we estimated 10k sets of muscle and knee joint contact forces combining a static optimization approach with a Markov-chain Monte Carlo algorithm. We observed that the bands of solutions were narrower among the young adults than the elderly, showing how different neural strategies that prioritize the use of different muscles while ensuring the same kinematics are more likely to result in larger changes in the joint contact forces among older adults. In addition, while the neural strategies associated to the maximal knee contact forces were similar between populations, some differences emerged when analysing the strategies to minimise the knee loads. Last, the use of electromyography data allowed for a reduction of the solution band by up to 69%.

Supplementary Information: The online version contains supplementary material available at 10.1038/s41598-026-46419-8.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repositories

Its files are read in the Code ↔ Paper reader above, with 4 matches between paragraphs and lines of code.

GiorgioD89/ProtoAgingMCMC

License: Apache-2.0
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Commit: 532031d9ea5ea53dafed89a11e0dfc3d80c369bb, 28 April 2026
Languages: MATLAB (6), Python (2)
Size: 180 files, 8 scripts
Software Heritage: not archived
Found in: “Code availability”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Tools: Matplotlib (2 files), pandas (2 files), seaborn (2 files)
Availability: 1 check, the latest on 29 September 2026: the link answers
  • 29 September 2026: the link answers
10 files

stanfordnmbl/MatlabStaticOptimization

License: Apache-2.0
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Commit: 7a54da3008cb9949722681b346ebe8d8f1bf04e7, 14 October 2022
Languages: MATLAB (7)
Size: 105 files, 7 scripts
Software Heritage: not archived
Found in: “Code availability”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 29 September 2026: the link answers
  • 29 September 2026: the link answers
9 files

HansUniVie/MuscleCoordinationRetraining

License: Apache-2.0
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Commit: 6c7f7f3c1e75cdd36401f1511410f050e5736a1a, 13 November 2023
Languages: MATLAB (11)
Size: 745 files, 11 scripts
Software Heritage: not archived
Found in: “Code availability”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 29 September 2026: the link answers
  • 29 September 2026: the link answers
13 files

Code availability

The Monte Carlo simulations implementing the unconstrained and EMG-constrained Static Optimization are based on the codes by Uhlrich et al.9 and Kainz et al.23, which can be found at the following links: https://github.com/stanfordnmbl/MatlabStaticOptimization and https://github.com/HansUniVie/MuscleCoordinationRetraining. Additional scripts hereby employed to analyse the results are available at: https://github.com/GiorgioD89/ProtoAgingMCMC.

Reproduced under the paper's license (CC BY), from the paper cited above.

Tracing map

Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.

What the map holds:

  • 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 26 scripts, each with its path and the digest of its content;
  • 4 matches between paragraphs of the paper and lines of the code (method lexical-v1);
  • neither the text of the paper nor the code itself.

Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.

Data

Datasets cited

Data Availability Statement

The input data and models used to perform the Monte Carlo simulations are available at: (https://github.com/GiorgioD89/ProtoAgingMCMC). The experimental data associated to this work, and collected as part of the ProtoAging study48, are stored on Zenodo and may be made available upon reasonable requests to the author: (https://doi.org/10.5281/zenodo.15100077) (Proto-Aging data collection).

The Monte Carlo simulations implementing the unconstrained and EMG-constrained Static Optimization are based on the codes by Uhlrich et al.9 and Kainz et al.23, which can be found at the following links: https://github.com/stanfordnmbl/MatlabStaticOptimization and https://github.com/HansUniVie/MuscleCoordinationRetraining. Additional scripts hereby employed to analyse the results are available at: https://github.com/GiorgioD89/ProtoAgingMCMC.

Reproduced under the paper's license (CC BY), from the paper cited above.

Versions

The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.

Version 1, 29 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 5 authors, 7 keywords, 11 MeSH terms, 1 funder, 53 references.

Cite

This paper

Davico, G., Toccaceli, E., Labanca, L., Benedetti, M. G., & Viceconti, M. (2026). Exploring the effect of different neural strategies on the knee joint contact forces during walking in adults. Scientific reports, 16(1), 16676. https://doi.org/10.1038/s41598-026-46419-8

BibTeX

@article{davico2026exploring,
author = {Davico, Giorgio and Toccaceli, Enrico and Labanca, Luciana and Benedetti, Maria Grazia and Viceconti, Marco},
title = {{Exploring the effect of different neural strategies on the knee joint contact forces during walking in adults}},
journal = {Scientific reports},
year = {2026},
month = apr,
volume = {16},
number = {1},
pages = {16676},
publisher = {Nature Publishing Group},
issn = {2045-2322},
doi = {10.1038/s41598-026-46419-8},
url = {https://doi.org/10.1038/s41598-026-46419-8},
pmid = {41957392},
pmcid = {PMC13219765}
}

RIS

TY - JOUR
AU - Davico, Giorgio
AU - Toccaceli, Enrico
AU - Labanca, Luciana
AU - Benedetti, Maria Grazia
AU - Viceconti, Marco
TI - Exploring the effect of different neural strategies on the knee joint contact forces during walking in adults
T2 - Scientific reports
J2 - Sci Rep
PY - 2026
DA - 2026/04/09
VL - 16
IS - 1
SP - 16676
SN - 2045-2322
PB - Nature Publishing Group
DO - 10.1038/s41598-026-46419-8
UR - https://doi.org/10.1038/s41598-026-46419-8
LA - en
ER -

CSL-JSON

{
"id": "10.1038/s41598-026-46419-8",
"type": "article-journal",
"title": "Exploring the effect of different neural strategies on the knee joint contact forces during walking in adults",
"container-title": "Scientific reports",
"author": [
{
"family": "Davico",
"given": "Giorgio"
},
{
"family": "Toccaceli",
"given": "Enrico"
},
{
"family": "Labanca",
"given": "Luciana"
},
{
"family": "Benedetti",
"given": "Maria Grazia"
},
{
"family": "Viceconti",
"given": "Marco"
}
],
"container-title-short": "Sci Rep",
"volume": "16",
"issue": "1",
"page": "16676",
"DOI": "10.1038/s41598-026-46419-8",
"PMID": "41957392",
"PMCID": "PMC13219765",
"ISSN": "2045-2322",
"publisher": "Nature Publishing Group",
"URL": "https://doi.org/10.1038/s41598-026-46419-8",
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
9
]
]
}
}

The tracing map gets a citation of its own once an author has validated it and it has a DOI.

Similar papers

The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.

[1] doi:10.1002/hbm.70602 [code]
Neuroimaging Correlates of Post-Stroke Pain After Ischemic Stroke: Secondary Analysis of the INSPiRE-TMS Trial.
Journal: Human brain mapping
In common: Optimization Toolbox, Parallel Computing Toolbox, Signal Processing Toolbox, 3 other tools, other
[2] doi:10.1038/s41586-026-10631-3 [code]
A prognostic human brain network for diffuse midline glioma.
Journal: Nature
In common: Optimization Toolbox, Parallel Computing Toolbox, Signal Processing Toolbox, 3 other tools
[3] doi:10.1111/ene.70678 [code]
Who Falls After a Stroke? Evidence From a Prospective Stroke Cohort.
Journal: European journal of neurology
In common: Optimization Toolbox, Parallel Computing Toolbox, Signal Processing Toolbox, 3 other tools
[4] doi:10.1016/j.celrep.2026.117404 [code]
Action and rest tremor map to distinct networks within the primary motor cortex.
Journal: Cell reports
In common: Optimization Toolbox, Parallel Computing Toolbox, Signal Processing Toolbox, 3 other tools
[5] doi:10.1038/s42003-026-10276-y [code]
The cellular correlates and adolescent reorganisation of cortical myelination networks in the common marmoset.
Journal: Communications biology
In common: Optimization Toolbox, Parallel Computing Toolbox, Signal Processing Toolbox, 3 other tools
[6] doi:10.1002/ana.78206 [code]
Multimodal Image Guidance in Subthalamic Deep Brain Stimulation for Parkinson's Disease.
Journal: Annals of neurology
In common: Optimization Toolbox, Parallel Computing Toolbox, Signal Processing Toolbox, 3 other tools
[7] doi:10.1038/s41467-026-71151-2 [code]
Common and distinct neural correlates of social interaction processing and theory of mind in narratives.
Journal: Nature communications
In common: Optimization Toolbox, Parallel Computing Toolbox, Signal Processing Toolbox, 3 other tools
[8] doi:10.1002/mrm.70336 [code]
Offline Reconstruction of Diffusion MRI Acquisitions for Comparison Between Complex PCA-Based and AI-Based Denoising.
Journal: Magnetic resonance in medicine
In common: Optimization Toolbox, Parallel Computing Toolbox, Signal Processing Toolbox, 3 other tools
[9] doi:10.1126/sciadv.aeh7220 [code]
Central complex representations of self-movement are sufficient to compute wind direction in flight.
Journal: Science advances
In common: Optimization Toolbox, Parallel Computing Toolbox, Signal Processing Toolbox, 3 other tools
[10] doi:10.1038/s41593-026-02357-2 [code]
Experience reorganizes content-specific memory traces in macaques.
Journal: Nature neuroscience
In common: Optimization Toolbox, Parallel Computing Toolbox, Signal Processing Toolbox, 3 other tools

Contribute

The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.

Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.

Request its removal

To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).

Discussion, reproductions, activity

Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.

Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.