From 14adb7a9c474c4798c9f75103d52e41a8e296976 Mon Sep 17 00:00:00 2001 From: Devon Rohlf Date: Fri, 6 Nov 2026 12:59:07 +0100 Subject: [PATCH 1/6] feat(muscle): opt-in fibre types by motor unit (fiber_model="typed") The default, fiber_model="independent", keeps one log-normal diameter per fibre and the CV line plus 0.2 m/s. The typed model sets fibre types and diameters per unit (Polgar FDI type means, Martin within-unit spread) and CVs over unit means or per unit; its arguments raise under the default. Reference fibres are stored as values, not byte hashes. --- benchmarks/semg_dispersion/README.md | 7 +- benchmarks/semg_dispersion/arms.json | 1475 +++++++++++++++++ benchmarks/semg_dispersion/gen_arm.py | 71 +- .../spikes/force_human59/trap_25mvc.npz | Bin 0 -> 378554 bytes .../spikes/force_wexp/trap_25mvc.npz | Bin 0 -> 385348 bytes .../spikes/nrn/main52/trap_25mvc.npz | Bin 0 -> 382811 bytes .../semg_dispersion/unit_cv/rt_force_cv.json | 1 + .../unit_cv/rt_force_cv_scatter.json | 1 + .../core/emg/surface/fiber_dispersion.py | 150 +- .../core/emg/surface/simulate_fiber.py | 28 +- .../simulator/core/emg/surface/surface_emg.py | 65 +- myogen/simulator/core/muscle/fiber_types.py | 217 +++ myogen/simulator/core/muscle/muscle.py | 372 ++++- tests/test_fiber_types.py | 155 ++ tests/test_muscle_fibre_properties.py | 300 +++- tests/test_surface_amplitude.py | 2 +- tests/test_surface_dispersion.py | 206 ++- 17 files changed, 2907 insertions(+), 143 deletions(-) create mode 100644 benchmarks/semg_dispersion/spikes/force_human59/trap_25mvc.npz create mode 100644 benchmarks/semg_dispersion/spikes/force_wexp/trap_25mvc.npz create mode 100644 benchmarks/semg_dispersion/spikes/nrn/main52/trap_25mvc.npz create mode 100644 benchmarks/semg_dispersion/unit_cv/rt_force_cv.json create mode 100644 benchmarks/semg_dispersion/unit_cv/rt_force_cv_scatter.json create mode 100644 myogen/simulator/core/muscle/fiber_types.py create mode 100644 tests/test_fiber_types.py diff --git a/benchmarks/semg_dispersion/README.md b/benchmarks/semg_dispersion/README.md index fb3e0bb2..1097d34a 100644 --- a/benchmarks/semg_dispersion/README.md +++ b/benchmarks/semg_dispersion/README.md @@ -25,8 +25,11 @@ Arms run before the published end-plate coefficients became the default pin is a harness key for the skin layer. Arms with `_spike_file` use NEURON spike trains of the calibrated FDI pool -(spike times per unit and the pool thresholds), stored under `spikes/`; the -path is relative to this directory. +(spike times per unit and the pool thresholds), stored under `spikes/`. +`unit_cv/` holds per-unit mean fibre CVs from recruitment force +(`myogen.utils.ramp_analysis.cv_from_recruitment_force`) for +`_fiber_cv_per_unit_file` and `_muscle_unit_cv_file`. Input paths in +`arms.json` are relative to this directory. ## Running diff --git a/benchmarks/semg_dispersion/arms.json b/benchmarks/semg_dispersion/arms.json index 876e1ce3..adcdaeef 100644 --- a/benchmarks/semg_dispersion/arms.json +++ b/benchmarks/semg_dispersion/arms.json @@ -1023,6 +1023,1481 @@ 180 ] } + }, + "full_s1.2_f1.3_sig1_d57.9_rho267_main52_25mvc": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_diameter__um": 57.9, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/nrn/main52/trap_25mvc.npz" + }, + "delsys5_sig1_d57.9_rho267_main52_25mvc": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_diameter__um": 57.9, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/nrn/main52/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 0, + 3, + 6, + 9, + 12 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + } + }, + "full_s1.2_f1.3_sig0.15_d57.9_rho267_main52_25mvc": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 0.15, + "_fiber_diameter__um": 57.9, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/nrn/main52/trap_25mvc.npz" + }, + "delsys5_sig0.15_d57.9_rho267_main52_25mvc": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 0.15, + "_fiber_diameter__um": 57.9, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/nrn/main52/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 0, + 3, + 6, + 9, + 12 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + } + }, + "delsys5_sig1_rho267_human59_25mvc": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_human59/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 0, + 3, + 6, + 9, + 12 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + } + }, + "delsys5_sig1_rho267_wexp_25mvc": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 0, + 3, + 6, + 9, + 12 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + } + }, + "delsys5r_wexp_lam1_cv4.2": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 1.0, + "_mean_cv__m_s": 4.2 + }, + "delsys5r_wexp_lam1_cv3.7": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 1.0, + "_mean_cv__m_s": 3.7 + }, + "delsys5r_wexp_lam1_cv3.2": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 1.0, + "_mean_cv__m_s": 3.2 + }, + "delsys5r_wexp_lam0.85_cv4.2": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.85, + "_mean_cv__m_s": 4.2 + }, + "delsys5r_wexp_lam0.85_cv3.7": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.85, + "_mean_cv__m_s": 3.7 + }, + "delsys5r_wexp_lam0.85_cv3.2": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.85, + "_mean_cv__m_s": 3.2 + }, + "delsys5r_wexp_lam0.7_cv4.2": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.7, + "_mean_cv__m_s": 4.2 + }, + "delsys5r_wexp_lam0.7_cv3.7": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.7, + "_mean_cv__m_s": 3.7 + }, + "delsys5r_wexp_lam0.7_cv3.2": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.63, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.7, + "_mean_cv__m_s": 3.2 + }, + "delsys5r_wexp_lam1_cvrtforce": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 1.0, + "_mean_cv__m_s": 4.2, + "_fiber_cv_per_unit_file": "unit_cv/rt_force_cv.json" + }, + "delsys5r_wexp_lam0.7_cvrtforce": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.7, + "_mean_cv__m_s": 4.2, + "_fiber_cv_per_unit_file": "unit_cv/rt_force_cv.json" + }, + "delsys5r_wexp_lam0.5_cvrtforce": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.5, + "_mean_cv__m_s": 4.2, + "_fiber_cv_per_unit_file": "unit_cv/rt_force_cv.json" + }, + "delsys5r_wexp_lam0.7_cvrtforce_k200": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.05, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.7, + "_mean_cv__m_s": 4.2, + "_fiber_cv_per_unit_file": "unit_cv/rt_force_cv.json", + "_iap_kernel_length__mm": 200.0 + }, + "delsys5r_wexp_muscle_lam0.6": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.6, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0 + }, + "delsys5r_wexp_muscle_lam0.65": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.65, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0 + }, + "delsys5r_wexp_muscle_lam0.7": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.7, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0 + }, + "delsys5r_wexp_muscle_lam0.75": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.75, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0 + }, + "delsys5r_wexp_muscle_lam0.8": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.8, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0 + }, + "delsys5r_wexp_muscle_lam0.85": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.85, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0 + }, + "delsys5r_wexp_muscle_lam0.9": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.9, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0 + }, + "delsys5r_wexp_muscle_lam1": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 1.0, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0 + }, + "delsys5r_wexp_muscle_lam0.7_wcov0.05": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.7, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0, + "_muscle_cv_within_cov": 0.05 + }, + "delsys5r_wexp_muscle_lam0.7_wcov0": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.7, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0, + "_muscle_cv_within_cov": 0.0 + }, + "delsys5r_wexp_musclert_lam0.55": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.55, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0, + "_muscle_unit_cv_file": "unit_cv/rt_force_cv.json" + }, + "delsys5r_wexp_musclert_lam0.6": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.6, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0, + "_muscle_unit_cv_file": "unit_cv/rt_force_cv.json" + }, + "delsys5r_wexp_musclert_lam0.65": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.65, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0, + "_muscle_unit_cv_file": "unit_cv/rt_force_cv.json" + }, + "delsys5r_wexp_musclert_lam0.7": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.7, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0, + "_muscle_unit_cv_file": "unit_cv/rt_force_cv.json" + }, + "delsys5r_wexp_musclert_lam0.75": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.75, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0, + "_muscle_unit_cv_file": "unit_cv/rt_force_cv.json" + }, + "delsys5r_wexp_musclert_lam0.8": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.8, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0, + "_muscle_unit_cv_file": "unit_cv/rt_force_cv.json" + }, + "delsys5r_wexp_musclert_lam1": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 1, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0, + "_muscle_unit_cv_file": "unit_cv/rt_force_cv.json" + }, + "delsys5r_wexp_defaults": { + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + } + }, + "delsys5r_wexp_musclert_lam0.63": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.63, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0, + "_muscle_unit_cv_file": "unit_cv/rt_force_cv.json" + }, + "delsys5r_wexp_musclertsc_lam0.63": { + "nmj_model": "two_layer_intra", + "nmj_scatter_scale": 1.0, + "nerve_delays": true, + "nerve_cvs__m_per_s": [ + 5.0, + 2.0 + ], + "fiber_cv_threshold_slope": 0.0, + "fiber_cv_within_mu_cov": 0.0, + "nmj_coefficients": "published", + "tendon_end_band__mm": 5.0, + "tendon_end_correlation__mm": 5.0, + "tendon_end_jitter__mm": 0.3, + "diameter_scales_source": true, + "_skin_thickness__mm": 1.2, + "_fat_thickness__mm": 1.3, + "_skin_conductivity__S_per_m": 1.0, + "_fiber_density__per_mm2": 267.0, + "_spike_file": "spikes/force_wexp/trap_25mvc.npz", + "_fs__Hz": 10240.0, + "_delsys5": { + "z__mm": [ + 3, + 9 + ], + "rotation__deg": [ + 0, + 45 + ], + "theta__deg": [ + 0, + 180 + ] + }, + "_iap_lambda__per_mm": 0.63, + "fiber_properties": "muscle", + "_iap_kernel_length__mm": 200.0, + "_muscle_unit_cv_file": "unit_cv/rt_force_cv_scatter.json" } } } diff --git a/benchmarks/semg_dispersion/gen_arm.py b/benchmarks/semg_dispersion/gen_arm.py index ac55727d..bdf867cf 100644 --- a/benchmarks/semg_dispersion/gen_arm.py +++ b/benchmarks/semg_dispersion/gen_arm.py @@ -17,10 +17,23 @@ 8-35 Hz rate coding with ISI CV 0.2, 2048 Hz. An empty configuration ({}) is the undispersed baseline. Harness-only keys set the outer layers: ``_skin_thickness__mm`` (default 1.29), ``_fat_thickness__mm`` (limb 4, FDI 0.3), -``_skin_conductivity__S_per_m`` (default 1) and ``_fiber_diameter__um`` (default 50). +``_skin_conductivity__S_per_m`` (default 1) and ``_fiber_diameter__um`` (default: the ``SurfaceEMG`` default). FDI only: ``_muscle_radius__mm`` (default 6.91) and ``_fiber_density__per_mm2`` (default 350). ``_spike_file`` (npz with ``spikes`` and ``thresholds``; relative paths are relative to this directory, e.g. ``spikes/nrn/fdi_rec70/trap_25mvc.npz``) replaces the generated spike trains. +``_iap_lambda__per_mm`` (default 1) sets the Rosenfalck IAP length scale (``SurfaceEMG.iap_lambda__per_mm``); +``_mean_cv__m_s`` (default: the ``Muscle`` default) sets the mean muscle-fibre conduction velocity. +``_fiber_cv_per_unit_file`` (json with ``cv__m_s``, one value per unit) sets each unit's mean fibre CV +(``SurfaceFiberDispersion.fiber_cv_per_unit__m_s``). +``fiber_properties: "muscle"`` (a ``SurfaceFiberDispersion`` field) takes every fibre's CV and diameter from the +``Muscle``: its fibre properties are generated after the assignment, with the global generator's state restored +afterwards so every other draw matches the earlier arms; their hash is saved as ``property_hash``. +``_iap_kernel_length__mm`` (FDI default 150) sets ``SurfaceEMG.iap_kernel_length__mm``; slow fibres at small +lambda need a longer window (the surface window check says so). +``_muscle_cv_within_cov`` (ablation, with ``fiber_properties: "muscle"``) rescales each unit's ``Muscle`` fibre CVs +about the unit mean to this coefficient of variation; unit means and diameters stay as generated. +``_muscle_unit_cv_file`` (json with ``cv__m_s``, one value per unit) sets each unit's mean fibre CV in the ``Muscle`` +(``Muscle.motor_unit_conduction_velocities__m_per_s``). FDI only: ``_fs__Hz`` (default 2048) sets the output and internal sampling rate. ``_delsys5`` replaces the bipolar pair with Delsys 5-pin sensors (0.5 mm pins at the corners and centre of a 5 x 5 mm square, as in Pereira Botelho et al. 2019): ``{"z__mm": [...], "rotation__deg": [...], "theta__deg": [...]}`` places one @@ -43,11 +56,17 @@ from neo import Block, Segment, SpikeTrain import myogen -from myogen import set_random_seed +from myogen import get_random_generator, set_random_seed from myogen.simulator import Muscle, RecruitmentThresholds, SurfaceElectrodeArray, SurfaceEMG from myogen.simulator.core.emg.surface.fiber_dispersion import SurfaceFiberDispersion from myogen.utils.neo import signal_to_grid +def _local(path): + """Input files in arms.json are relative to this directory.""" + path = Path(path) + return path if path.is_absolute() else Path(__file__).resolve().parent / path + + scenario, label, out, config = sys.argv[1], sys.argv[2], sys.argv[3], json.loads(sys.argv[4]) n_jobs = int(sys.argv[5]) if len(sys.argv) > 5 else 6 if scenario not in ("limb", "fdi"): @@ -55,13 +74,24 @@ skin = config.pop("_skin_thickness__mm", 1.29) fat = config.pop("_fat_thickness__mm", 4.0 if scenario == "limb" else 0.3) skin_sigma = config.pop("_skin_conductivity__S_per_m", 1.0) -diameter = config.pop("_fiber_diameter__um", 50.0) +diameter = config.pop("_fiber_diameter__um", None) rate_model = config.pop("_rate_model", None) spike_file = config.pop("_spike_file", None) fdi_radius = config.pop("_muscle_radius__mm", 6.91) fdi_density = config.pop("_fiber_density__per_mm2", 350.0) fs_out = config.pop("_fs__Hz", 2048.0) delsys5 = config.pop("_delsys5", None) +iap_lambda = config.pop("_iap_lambda__per_mm", 1.0) +kernel_override = config.pop("_iap_kernel_length__mm", None) +within_cov = config.pop("_muscle_cv_within_cov", None) +mean_cv = config.pop("_mean_cv__m_s", None) +cv_kw = {} if mean_cv is None else {"mean_conduction_velocity__m_per_s": mean_cv * pq.m / pq.s} +unit_cv_file = config.pop("_muscle_unit_cv_file", None) +if unit_cv_file is not None: + cv_kw["motor_unit_conduction_velocities__m_per_s"] = np.asarray(json.load(open(_local(unit_cv_file)))["cv__m_s"]) * pq.m / pq.s +cv_file = config.pop("_fiber_cv_per_unit_file", None) +if cv_file is not None: + config["fiber_cv_per_unit__m_s"] = tuple(json.load(open(_local(cv_file)))["cv__m_s"]) if "nerve_cvs__m_per_s" in config: config["nerve_cvs__m_per_s"] = tuple(config["nerve_cvs__m_per_s"]) dispersion = SurfaceFiberDispersion(**config) @@ -76,16 +106,31 @@ muscle = Muscle(recruitment_thresholds=thresholds, radius__mm=15 * pq.mm, length__mm=80 * pq.mm, fiber_density__fibers_per_mm2=350 * pq.mm**-2, mean_fiber_length__mm=70 * pq.mm, var_fiber_length__mm=5 * pq.mm, radius_bone__mm=3 * pq.mm, fat_thickness__mm=fat * pq.mm, - skin_thickness__mm=skin * pq.mm, skin_conductivity__S_per_m=skin_sigma * pq.S / pq.m) + skin_thickness__mm=skin * pq.mm, skin_conductivity__S_per_m=skin_sigma * pq.S / pq.m, **cv_kw) radius = 15.0 else: muscle = Muscle(recruitment_thresholds=thresholds, radius__mm=fdi_radius * pq.mm, fiber_density__fibers_per_mm2=fdi_density * pq.mm**-2, skin_thickness__mm=skin * pq.mm, - fat_thickness__mm=fat * pq.mm, skin_conductivity__S_per_m=skin_sigma * pq.S / pq.m) + fat_thickness__mm=fat * pq.mm, skin_conductivity__S_per_m=skin_sigma * pq.S / pq.m, **cv_kw) radius = fdi_radius muscle.distribute_innervation_centers() muscle.generate_muscle_fiber_centers(verbose=False) muscle.assign_mfs2mns(verbose=False, n_jobs=n_jobs) +property_hash = "" +if dispersion.fiber_properties == "muscle": + state = get_random_generator().bit_generator.state + muscle._generate_fiber_properties() + get_random_generator().bit_generator.state = state + if within_cov is not None: + cv = np.asarray(muscle.muscle_fiber_conduction_velocities__mm_per_s.magnitude, float).copy() + for mu_idx in range(len(thresholds)): + sel = np.asarray(muscle.assignment) == mu_idx + if sel.sum() > 1 and cv[sel].std() > 0: + cv[sel] = cv[sel].mean() + (cv[sel] - cv[sel].mean()) * within_cov * cv[sel].mean() / cv[sel].std() + muscle._muscle_fiber_conduction_velocities__mm_per_s = cv * pq.mm / pq.s + property_hash = hashlib.sha1( + np.ascontiguousarray(muscle.muscle_fiber_diameters__mm.magnitude).tobytes() + + np.ascontiguousarray(muscle.muscle_fiber_conduction_velocities__mm_per_s.magnitude).tobytes()).hexdigest() counts = np.asarray(muscle.resulting_number_of_innervated_fibers) fibre_hash = hashlib.sha1(b"".join( np.ascontiguousarray(muscle.resulting_fiber_assignment(i)).tobytes() for i in range(N_MU))).hexdigest() @@ -104,8 +149,7 @@ def excitation(t): trains, active = [], [] if spike_file is not None: # Spike times per unit (s) from a NEURON simulation of the same threshold array (fdi_spikes_force.py). - spike_path = Path(spike_file) - loaded = np.load(spike_path if spike_path.is_absolute() else Path(__file__).resolve().parent / spike_path, + loaded = np.load(_local(spike_file), allow_pickle=True) if not np.allclose(np.asarray(loaded["thresholds"]) / np.max(loaded["thresholds"]), rte / rte.max()): raise SystemExit("spike file thresholds do not match the benchmark pool") @@ -147,6 +191,8 @@ def excitation(t): bending_radius__mm=(radius + fat + skin) * pq.mm, differentiation_mode="bipolar_longitudinal") kernel = 150.0 +if kernel_override is not None: + kernel = float(kernel_override) sensors = [] if delsys5 is not None: sensors = [(z, rot, th) for z in delsys5["z__mm"] for rot in delsys5["rotation__deg"] for th in delsys5["theta__deg"]] @@ -158,7 +204,10 @@ def excitation(t): set_random_seed(7) semg = SurfaceEMG(muscle, arrays, sampling_frequency__Hz=FS * pq.Hz, MUs_to_simulate=mus, internal_sampling_frequency__Hz=FS * pq.Hz, fiber_dispersion=dispersion, - iap_kernel_length__mm=kernel, fiber_diameter__um=diameter) + iap_kernel_length__mm=kernel, iap_lambda__per_mm=iap_lambda, + **({} if diameter is None else {"fiber_diameter__um": diameter})) +diameter = semg.fiber_diameter__um +mean_cv = float(semg._mean_conduction_velocity__m_s) t0 = time.time() muaps = semg.simulate_muaps(n_jobs=n_jobs, verbose=False, use_gpu=False) sig0 = muaps.groups[0].segments[mus[0]].analogsignals[0] @@ -173,8 +222,8 @@ def excitation(t): for m in mus]) mono = np.zeros((0,)) report = semg.fiber_dispersion_report or {} -np.savez(out, label=label, scenario=scenario, myogen=myogen.__file__, config=json.dumps(config), skin=skin, fat=fat, skin_sigma=skin_sigma, diameter=diameter, radius=radius, density=fdi_density, rate_model=json.dumps(rate_model), spike_file=str(spike_file), mus=mus, counts=counts, - fibre_hash=fibre_hash, spike_hash=spike_hash, ramp=RAMP, hold=HOLD, level=LEVEL, +np.savez(out, label=label, scenario=scenario, myogen=myogen.__file__, config=json.dumps(config), skin=skin, fat=fat, skin_sigma=skin_sigma, diameter=diameter, iap_lambda=iap_lambda, mean_cv=mean_cv, radius=radius, density=fdi_density, rate_model=json.dumps(rate_model), spike_file=str(spike_file), cv_file=str(cv_file), mus=mus, counts=counts, + fibre_hash=fibre_hash, spike_hash=spike_hash, property_hash=property_hash, kernel=np.nan if kernel is None else kernel, ramp=RAMP, hold=HOLD, level=LEVEL, bip_muaps=templates, pair_muap_fs=float(sig0.sampling_rate.rescale(pq.Hz).magnitude), bip_emg=np.asarray(signal_to_grid(emg.rescale(pq.mV))), mono_emg=mono, sensors=np.array(sensors), sensor_pos_z=np.array([a.pos_z for a in arrays]) if delsys5 is not None else np.zeros(0), @@ -182,4 +231,4 @@ def excitation(t): report=np.array({k: v for k, v in report.items() if k != "config"}, dtype=object), seconds=time.time() - t0, allow_pickle=True) print(label, "fibres", int(counts[mus].sum()), "secs", round(time.time() - t0), "fibre", fibre_hash[:10], - "spikes", spike_hash[:10], flush=True) + "spikes", spike_hash[:10], "properties", property_hash[:10], flush=True) diff --git a/benchmarks/semg_dispersion/spikes/force_human59/trap_25mvc.npz b/benchmarks/semg_dispersion/spikes/force_human59/trap_25mvc.npz new file mode 100644 index 0000000000000000000000000000000000000000..c870b003d572e6d6b7890a0d93cadc827a2c6794 GIT binary patch literal 378554 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ν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 z zD}4Q*d#eAtncf?QpPoyahAn&l^2q>fFMH=!^0>;QtC= z|L2AbY1Z=psLSoj$D+E>QM?V|ONeCP zR`>|3ORgSqwNL$9m7B(!`tHI^_h=(E4B=!rM@NhuRA3P{*pusasYpFx0=*rv9ytQ+;>gW1zlQm0c`hp!ipw3-O-qiQ1zpKxwV^iOuzEAB}-=T&DRj>Mtx`t|B;dxPyzWQ#} z1@`Yhy_N=KQx@(4hVI!$OJ% zsqIzuQTZ>dNZYPOg8tuC-hYcto&HUqpcecL@m99548MjI`DJafpoxpePn|z@{?ysC z)Z_NwvT8M{`VY00`B&K%wi5qZTmHACTEVHcncDtc>mOY5-|M;mmQ}MaHNR3@$$!V*f3pdc?vbE&s1FRsH{{Px{CImR7xx>R!}V?q8*EaOwZ_N&S15z)_V7DixH^ M*X-P(5?ti}0kGMk@Bjb+ literal 0 HcmV?d00001 diff --git a/benchmarks/semg_dispersion/spikes/force_wexp/trap_25mvc.npz b/benchmarks/semg_dispersion/spikes/force_wexp/trap_25mvc.npz new file mode 100644 index 0000000000000000000000000000000000000000..e90518db32256ae7d188f4ebd726c868f50b00d5 GIT binary patch literal 385348 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

O30Tf%5Zt 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 H;Y0opKD?fx literal 0 HcmV?d00001 diff --git a/benchmarks/semg_dispersion/spikes/nrn/main52/trap_25mvc.npz b/benchmarks/semg_dispersion/spikes/nrn/main52/trap_25mvc.npz new file mode 100644 index 0000000000000000000000000000000000000000..a9b46eb7935c47ded620bbf2d047b4d1748bff65 GIT binary patch literal 382811 zcmbTfcU)9wyEQxvy-$N_3}B2RQEWsJOZL(rDk^rP*cB8DVmJ0mjFnhIun}TKg9eRJ zV~eQROYAXr4JuYdL`2HFu9Nc|&iB1P|9SJrnFGQwd++;R*SgkP*Zp*CYwr-E`uD#o zs)DFnkrn^_pPR~{8ary}@VK$HM~<3gr_!i$y4wBM5B}$Md33k-9ediTCa9(a#m0>t zG$yEVV9?YKLA3&d1}BagH)g=deu-mZ|>J(blf**GVhl?H4)5j+-

eie^6Y<#auq{uvGE?tk#uPkIIw^jnk~} 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

Ag(t32=3v9|MZ=~QAZ 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 "SurfaceFiberDispersion": """Dispersion with each value taken from the literature or marked as an assumption. - End-plates: two-layer within each unit, coefficients of Akhmadeev et al. - (2020), eq. 5-6. + (2020), eq. 5-6 [akhmadeev2020 eq. 5-6]. - Nerve branches: 5 / 2 m/s, the ``IntramuscularEMG`` default (Akhmadeev - et al. 2020). Within-unit delay SD is about 0.1-0.2 ms in the sweep + et al. 2020) [akhmadeev2020]. Within-unit delay SD is about 0.1-0.2 ms in the sweep scenarios of ``benchmarks/semg_dispersion``. - Unit conduction velocity: linear in recruitment threshold, slope 0.63 - (Del Vecchio et al. 2017). + (Del Vecchio et al. 2018) [delvecchio2018 p. 2]. - Fibre velocity within a unit: CoV 5 %. A modelling assumption; no measurement was found. - - Tendon ends: 5 mm band (Keenan et al. 2005), correlated over 5 mm with + - Tendon ends: 5 mm band (Keenan et al. 2005) [keenan2005], correlated over 5 mm with 0.3 mm per-fibre jitter (assumptions; no measurement of fibre-end stagger was found). - Diameter-scaled source: off, pending an amplitude check against published @@ -155,12 +195,25 @@ def literature_candidate(cls, seed: int = 0) -> "SurfaceFiberDispersion": fiber_cv_within_mu_cov=0.05, tendon_end_band__mm=5.0, tendon_end_correlation__mm=5.0, tendon_end_jitter__mm=0.3, seed=seed) + @classmethod + def muscle_candidate(cls, seed: int = 0) -> "SurfaceFiberDispersion": + """``literature_candidate`` with every fibre's CV and diameter taken from ``Muscle``. + + End-plates, nerve delays and tendon ends as in ``literature_candidate``; the threshold + slope and within-unit CV spread give way to the ``Muscle`` fibres (typed by motor unit, + CV 4.32 +/- 0.71 m/s over fibres [delvecchio2018 p. 2]); each source scales with its own + cross-section. + """ + return replace(cls.literature_candidate(seed=seed), fiber_properties="muscle", + fiber_cv_threshold_slope=0.0, fiber_cv_within_mu_cov=0.0, diameter_scales_source=True) + @property def active(self) -> bool: return (self.nmj_model != "uniform_mu" or self.nerve_delays or self.fiber_cv_inter_mu_spread > 0 or self.fiber_cv_threshold_slope > 0 - or self.fiber_cv_within_mu_cov > 0 - or self.diameter_scales_source or self.tendon_end_band__mm > 0) + or self.fiber_cv_within_mu_cov > 0 or self.fiber_cv_per_unit__m_s is not None + or self.diameter_scales_source or self.tendon_end_band__mm > 0 + or self.fiber_properties == "muscle") @dataclass @@ -194,6 +247,9 @@ def realize_fiber_dispersion( fiber_lengths__mm: Optional[Sequence[np.ndarray]] = None, end_margin__mm: float = 1.0, mean_fiber_length__mm: Optional[float] = None, + fiber_diameter__um: Optional[float] = None, + fiber_cv__m_s: Optional[Sequence[np.ndarray]] = None, + fiber_diameters__um: Optional[Sequence[np.ndarray]] = None, ) -> FiberDispersionRealization: """Draw per-fibre end-plate, nerve delay, CV and source scale for every motor unit. @@ -202,9 +258,32 @@ def realize_fiber_dispersion( ``±length / 2`` (or are drawn in the tendon band, which needs ``mean_fiber_length__mm``), and end-plates are clipped to ``end_margin__mm`` inside the ends with the clipped count reported. + ``fiber_diameter__um`` (the ``SurfaceEMG`` source diameter) gives the + effective diameters in the report (``diameter_mean__um``; NaN without it); + ``line_diameter_mean__um`` is the diameter read from the CV line. + + With ``config.fiber_properties == "muscle"``, ``fiber_cv__m_s`` (and, when the source scales + with diameter, ``fiber_diameters__um`` and ``fiber_diameter__um``) give each fibre's CV and + diameter, per motor unit in the order of ``fiber_positions__mm``; the source scale is then + ``(d / fiber_diameter__um)**2``, not normalised. Ignored otherwise. """ n_mu = len(fiber_positions__mm) counts = np.array([len(p) for p in fiber_positions__mm]) + from_muscle = config.fiber_properties == "muscle" + if from_muscle: + scaled = config.diameter_scales_source + required = [("fiber_cv__m_s", fiber_cv__m_s)] + if scaled: + required += [("fiber_diameters__um", fiber_diameters__um), ("fiber_diameter__um", fiber_diameter__um)] + for name, value in required: + if value is None: + raise ValueError(f"fiber_properties='muscle' needs {name}") + for name, arrays in required[:2] if scaled else required: + if len(arrays) != n_mu: + raise ValueError(f"{name} has {len(arrays)} motor units, the positions {n_mu}") + for mu, values in enumerate(arrays): + if len(values) != counts[mu]: + raise ValueError(f"{name}: motor unit {mu} has {len(values)} values for {counts[mu]} fibres") nerve_rng = np.random.default_rng([config.seed, 0]) cv_rng = np.random.default_rng([config.seed, 1]) end_rng = np.random.default_rng([config.seed, 2]) @@ -221,7 +300,7 @@ def realize_fiber_dispersion( report = {key: np.full(n_mu, np.nan) for key in ( "zi_mean__mm", "zi_sd__mm", "cv_mean__m_s", "cv_cov", "delay_mean__ms", "delay_sd__ms", - "amplitude_scale_mean", "diameter_mean__um", "end_sd__mm")} + "amplitude_scale_mean", "diameter_mean__um", "line_diameter_mean__um", "end_sd__mm")} report["n_fibers"] = counts report["n_branches"] = np.zeros(n_mu, dtype=int) report["zi_clipped"] = np.zeros(n_mu, dtype=int) @@ -230,11 +309,10 @@ def realize_fiber_dispersion( rt = np.asarray(recruitment_thresholds, dtype=float) rt = rt / rt.max() threshold_factor = 1 + config.fiber_cv_threshold_slope * (rt - rt.mean()) + if config.fiber_cv_per_unit__m_s is not None and len(config.fiber_cv_per_unit__m_s) != n_mu: + raise ValueError(f"fiber_cv_per_unit__m_s has {len(config.fiber_cv_per_unit__m_s)} values for {n_mu} motor units") if np.any(threshold_factor <= 0): raise ValueError("fiber_cv_threshold_slope gives a non-positive CV for the first-recruited units") - d_mean__um = (mean_cv__m_s - config.cv_intercept__m_s) / config.cv_per_diameter__m_s_per_mm * 1e3 - if config.diameter_scales_source and d_mean__um <= 0: - raise ValueError("the mean CV lies below the CV-diameter intercept") for mu in range(n_mu): n = int(counts[mu]) zi = np.full(n, float(mu_zones__mm[mu])) @@ -272,8 +350,25 @@ def realize_fiber_dispersion( if n: report["end_sd__mm"][mu] = np.std(end_plus) + if from_muscle: + cv = np.asarray(fiber_cv__m_s[mu], dtype=float) + if config.diameter_scales_source: + scale = (np.asarray(fiber_diameters__um[mu], dtype=float) / fiber_diameter__um) ** 2 + else: + scale = np.ones(n) + zi_all.append(zi) + cv_all.append(cv) + delay_all.append(delay) + scale_all.append(scale) + if n: + report["zi_mean__mm"][mu], report["zi_sd__mm"][mu] = np.mean(zi), np.std(zi) + report["cv_mean__m_s"][mu], report["cv_cov"][mu] = np.mean(cv), np.std(cv) / np.mean(cv) + report["delay_mean__ms"][mu], report["delay_sd__ms"][mu] = np.mean(delay), np.std(delay) + continue cv_mu = mean_cv__m_s * threshold_factor[mu] * (1 - config.fiber_cv_inter_mu_spread / 2 + config.fiber_cv_inter_mu_spread * rank[mu]) + if config.fiber_cv_per_unit__m_s is not None: + cv_mu = float(config.fiber_cv_per_unit__m_s[mu]) cov = config.fiber_cv_within_mu_cov if cov > 0: cv = np.clip(cv_rng.normal(cv_mu, cov * cv_mu, size=n), cv_mu * (1 - 3 * cov), cv_mu * (1 + 3 * cov)) @@ -281,7 +376,9 @@ def realize_fiber_dispersion( cv = np.full(n, cv_mu) diameter__um = (cv - config.cv_intercept__m_s) / config.cv_per_diameter__m_s_per_mm * 1e3 if config.diameter_scales_source: - scale = (diameter__um / d_mean__um) ** 2 + if np.any(diameter__um <= 0): + raise ValueError("a fibre CV lies at or below the CV-diameter intercept") + scale = diameter__um**2 else: scale = np.ones(n) @@ -293,8 +390,15 @@ def realize_fiber_dispersion( report["zi_mean__mm"][mu], report["zi_sd__mm"][mu] = np.mean(zi), np.std(zi) report["cv_mean__m_s"][mu], report["cv_cov"][mu] = np.mean(cv), np.std(cv) / np.mean(cv) report["delay_mean__ms"][mu], report["delay_sd__ms"][mu] = np.mean(delay), np.std(delay) + report["line_diameter_mean__um"][mu] = np.mean(diameter__um) + if config.diameter_scales_source and counts.sum() and not from_muscle: + mean_square = np.mean(np.concatenate(scale_all)) + scale_all = [scale / mean_square for scale in scale_all] + for mu, scale in enumerate(scale_all): + if len(scale): report["amplitude_scale_mean"][mu] = np.mean(scale) - report["diameter_mean__um"][mu] = np.mean(diameter__um) + if fiber_diameter__um is not None: + report["diameter_mean__um"][mu] = np.mean(fiber_diameter__um * np.sqrt(scale)) report["config"] = asdict(config) ends = (plus_all, minus_all) if fiber_lengths__mm is not None else (None, None) return FiberDispersionRealization(zi_all, cv_all, delay_all, scale_all, *ends, report=report) diff --git a/myogen/simulator/core/emg/surface/simulate_fiber.py b/myogen/simulator/core/emg/surface/simulate_fiber.py index d0849cbb..ab89970c 100644 --- a/myogen/simulator/core/emg/surface/simulate_fiber.py +++ b/myogen/simulator/core/emg/surface/simulate_fiber.py @@ -104,7 +104,7 @@ def f_minus_t(y): def fiber_semi_lengths(innervation_zone__mm: float, fiber_length__mm: float) -> tuple[float, float]: """Return ``(L1, L2)`` for a fibre centred on z = 0 with its end-plate at ``zi``. - In the source term (Farina et al. 2004, eq. 1) ``L1`` is the semi-length + In the source term (Farina et al. 2004, eq. 1) [farina2004 eq. 1] ``L1`` is the semi-length towards +z and ``L2`` towards -z, so the fibre spans ``[zi - L2, zi + L1]``. Keeping the tendons at ``±fiber_length / 2`` gives ``L1 = l/2 - zi`` and ``L2 = l/2 + zi``. @@ -181,7 +181,7 @@ def _compute_B_kz_fast( len_kz, len_ktheta, ): - """Numba-optimized computation of the complex B_kz matrix (Farina 2004, eq. 5). + """Numba-optimized computation of the complex B_kz matrix (Farina 2004, eq. 5) [farina2004 eq. 5]. B_kz is complex in general: a longitudinal bipolar filter is purely imaginary, so its whole signal lives in the imaginary part. @@ -299,7 +299,7 @@ def _simulate_fiber_v2_python( _prepared=None, *, sig_intracellular: float = 1.01, - fiber_diameter__mm: float = 0.05, + fiber_diameter__mm: float = 0.0579, v_grid: float | None = None, iap_lambda__per_mm: float = 1.0, ): @@ -369,7 +369,7 @@ def _simulate_fiber_v2_python( sig_intracellular : float, optional Intracellular conductivity (S/m), default 1.01. fiber_diameter__mm : float, optional - Fibre diameter (mm), default 0.05. Together with ``sig_intracellular`` it + Fibre diameter (mm), default 0.0579 (FDI, see ``SurfaceEMG``). Together with ``sig_intracellular`` it sets the line current density ``sig_i * pi * (d/2)**2 * d2Vm/dz2`` of the source, so the output is the potential in mV. v_grid : float, optional @@ -378,9 +378,9 @@ def _simulate_fiber_v2_python( that propagate at different ``v`` but share ``v_grid`` return signals on the same time axis and can be summed directly. iap_lambda__per_mm : float, optional - Length scale of the Rosenfalck intracellular action potential, + Length scale of the Rosenfalck [rosenfalck1969] intracellular action potential, ``Vm = 96 (lambda z)**3 exp(-lambda z) - 90`` mV with z in mm, default - 1 / mm (Rosenfalck 1969). Values below 1 stretch the IAP along the fibre + 1 / mm (Rosenfalck 1969) [rosenfalck1969]. Values below 1 stretch the IAP along the fibre and lower the spectral content of the MUAP; peak Vm is unchanged. Returns @@ -449,7 +449,7 @@ def _simulate_fiber_v2_python( k_z = k_t / v_grid (kt_mesh_kzkt, kz_mesh_kzkt) = np.meshgrid(k_t, k_z) - ## Model radii -> (Farina, 2004), Figure 1 - b) + ## Model radii -> (Farina, 2004), Figure 1 - b) [farina2004 Fig. 1b] th_muscle = r - th_fat - th_skin - r_bone a = r_bone b = r_bone + th_muscle @@ -458,9 +458,9 @@ def _simulate_fiber_v2_python( ################################################################################################### ## 2. I(k_t, k_z) - # Rosenfalck (1969) intracellular action potential, Vm = 96 (lz)^3 e^{-lz} - 90 mV + # Rosenfalck (1969) [rosenfalck1969] intracellular action potential, Vm = 96 (lz)^3 e^{-lz} - 90 mV # with l = iap_lambda__per_mm (1 / mm as published; Farina & Merletti 2001, - # eq. 16); aux below is dVm/dz in mV/mm. + # eq. 16 [farinamerletti2001 eq. 16]); aux below is dVm/dz in mV/mm. A = 96 # mV/mm^3 # Line current density i = sig_i * pi * (d/2)^2 * d2Vm/dz2 (core-conductor # model). With conductivities in S/m and lengths in mm, phi comes out in mV. @@ -475,7 +475,7 @@ def _simulate_fiber_v2_python( # N controls only the resolution, not the physical extent z = np.linspace(-fiber_length__mm / 2, fiber_length__mm / 2, N, dtype=np.longdouble) - # Rosenfalck action potential: A * l * exp(-lz) * (3(lz)² - (lz)³) for z ≥ 0, with + # Rosenfalck [rosenfalck1969] action potential: A * l * exp(-lz) * (3(lz)² - (lz)³) for z ≥ 0, with # z in mm on the same grid as k_z (l = 1 / mm as published). The source grid # and the volume-conductor grid must share one z axis. lam = iap_lambda__per_mm @@ -701,7 +701,7 @@ def simulate_fiber_v2( rele_precomputed: float | None = None, *, sig_intracellular: float = 1.01, - fiber_diameter__mm: float = 0.05, + fiber_diameter__mm: float = 0.0579, iap_lambda__per_mm: float = 1.0, ): """ @@ -776,13 +776,13 @@ def simulate_fiber_v2( sig_intracellular : float, optional Intracellular conductivity (S/m), default 1.01. fiber_diameter__mm : float, optional - Fibre diameter (mm), default 0.05. Together with ``sig_intracellular`` it + Fibre diameter (mm), default 0.0579 (FDI, see ``SurfaceEMG``). Together with ``sig_intracellular`` it sets the line current density ``sig_i * pi * (d/2)**2 * d2Vm/dz2`` of the source, so the output is the potential in mV. iap_lambda__per_mm : float, optional - Length scale of the Rosenfalck intracellular action potential, + Length scale of the Rosenfalck [rosenfalck1969] intracellular action potential, ``Vm = 96 (lambda z)**3 exp(-lambda z) - 90`` mV with z in mm, default - 1 / mm (Rosenfalck 1969). Values below 1 stretch the IAP along the fibre + 1 / mm (Rosenfalck 1969) [rosenfalck1969]. Values below 1 stretch the IAP along the fibre and lower the spectral content of the MUAP; peak Vm is unchanged. Returns diff --git a/myogen/simulator/core/emg/surface/surface_emg.py b/myogen/simulator/core/emg/surface/surface_emg.py index d003c832..e839899f 100644 --- a/myogen/simulator/core/emg/surface/surface_emg.py +++ b/myogen/simulator/core/emg/surface/surface_emg.py @@ -50,7 +50,7 @@ class SurfaceEMG: This class provides a simulation framework for generating surface electromyography signals from the muscle. It implements the - multi-layered cylindrical volume conductor model from Farina et al. 2004 [1]. + multi-layered cylindrical volume conductor model from Farina et al. 2004 [1] [farina2004]. Parameters ---------- @@ -90,19 +90,32 @@ class SurfaceEMG: around; it does not change the physical MUAP, only the window and the internal sampling step ``K / (v (N - 1))``. fiber_diameter__um : float, optional - Muscle fibre diameter in µm, default 50. The source current scales with - the fibre cross-section (``d**2``). + Muscle fibre diameter in µm, default 57.9: the FDI root-mean-square diameter, + sqrt(sum f_i d_i**2) over type I 50.0 µm and type II 67.0 µm fibres + [polgar1973 p. 310 Table 2] with 57.4 % type I [polgar1973 p. 312 Table 4]. + The RMS (not the mean, 57.2 µm) is the right single value because the source + current scales with the fibre cross-section (``d**2``). 50 until 0.13.0. No effect + when ``fiber_dispersion`` takes the fibres from ``Muscle`` with a diameter-scaled + source (each fibre then has its own ``Muscle`` diameter). intracellular_conductivity__S_m : float, optional Intracellular conductivity in S/m, default 1.01. The source current density is ``sigma_i * pi * (d/2)**2 * d2Vm/dz2`` (core-conductor model). iap_lambda__per_mm : float, optional - Length scale of the Rosenfalck intracellular action potential, + Length scale of the Rosenfalck [rosenfalck1969] intracellular action potential, ``Vm = 96 (lambda z)**3 exp(-lambda z) - 90`` mV with z in mm. Default - 1 / mm, as published (Rosenfalck 1969). Values below 1 stretch the IAP + 1 / mm, as published (Rosenfalck 1969) [rosenfalck1969]. Values below 1 stretch the IAP along the fibre and lower the MUAP's spectral content and raise its - amplitude. Botelho et al. (2019) used 0.5 to match the frequency content of - their FDI recordings; in this conductor 0.7 matched their Delsys median - frequency and adjacent-pin RMS at 25 % MVC. Any value other than 1 is a + amplitude. Botelho et al. (2019) [botelho2019] used 0.5 to match the frequency content of + their FDI recordings. In this conductor, with ``diameter_scales_source`` and each + unit's CV mapped from its recruitment force through Del Vecchio et al. (2018) + [delvecchio2018 p. 2], 0.7 gives 175 / 169 Hz and 0.19 / 0.23 mV (corner-centre / + adjacent pins) at 25 % MVC against their ~165 Hz and 0.21 mV [botelho2019]. With every fibre's + CV and diameter taken from the ``Muscle`` (``SurfaceFiberDispersion.muscle_candidate``), unit-mean + CVs from recruitment force as above (``Muscle(motor_unit_conduction_velocities__m_per_s=...)``) + and the within-unit fibre spread of Martin et al. (1988) [martin1988 p. C46 Table 1], the same + benchmark puts the median-frequency match at about 0.63 (0.60 and 0.65 give 162 / 167 Hz), at + 0.19 / 0.23 mV; every value from 0.55 to 0.8 stays inside their MDF IQR of 152-185 Hz (one + subject) [botelho2019]. Any value other than 1 is a fitted modelling assumption, not a measurement. ``iap_kernel_length__mm`` must hold the longer IAP (its tail scales with ``1 / lambda``). fiber_dispersion : SurfaceFiberDispersion, optional @@ -110,7 +123,10 @@ class SurfaceEMG: velocities (see :class:`SurfaceFiberDispersion`). None (default) or an inactive configuration keeps one end-plate per motor unit, no nerve delays and the mean velocity for every fibre. Supported on the default - route only (``execution=None``, ``use_unified=False``). + route only (``execution=None``, ``use_unified=False``). With + ``fiber_properties="muscle"`` every fibre's CV and diameter come from the + ``Muscle`` (its fibre properties must be generated); the muscle mean + conduction velocity then only sets the simulation grid and window. Attributes ---------- @@ -129,7 +145,7 @@ class SurfaceEMG: References ---------- - [1] Farina, D., Mesin, L., Martina, S., Merletti, R., 2004. A surface EMG generation model with multilayer cylindrical description of the volume conductor. IEEE Transactions on Biomedical Engineering 51, 415–426. https://doi.org/10.1109/TBME.2003.820998 + [1] Farina, D., Mesin, L., Martina, S., Merletti, R., 2004. A surface EMG generation model with multilayer cylindrical description of the volume conductor. IEEE Transactions on Biomedical Engineering 51, 415–426. https://doi.org/10.1109/TBME.2003.820998 [farina2004] """ def __init__( @@ -143,7 +159,7 @@ def __init__( internal_sampling_frequency__Hz: Quantity__Hz | None = None, iap_kernel_length__mm: float | None = None, use_unified: bool = False, - fiber_diameter__um: float = 50.0, + fiber_diameter__um: float = 57.9, intracellular_conductivity__S_m: float = 1.01, fiber_dispersion: SurfaceFiberDispersion | None = None, iap_lambda__per_mm: float = 1.0, @@ -316,7 +332,7 @@ def simulate_muaps( # Calculate innervation zone variance innervation_zone_variance = ( self._mean_fiber_length__mm * 0.1 - ) # 10% of the mean fiber length (see Botelho et al. 2019 [6]) + ) # 10% of the mean fiber length (see Botelho et al. 2019) [botelho2019] # Extract fiber counts number_of_fibers_per_MUs = self._muscle_model.resulting_number_of_innervated_fibers @@ -365,6 +381,24 @@ def simulate_muaps( for mu_idx in range(n_motor_units): positions = self._muscle_model.resulting_fiber_assignment(mu_idx) fiber_positions.append(np.asarray(getattr(positions, "magnitude", positions))[:, :2]) + muscle_fibres = {} + if self._fiber_dispersion.fiber_properties == "muscle": + # Each fibre's CV and diameter from Muscle, split by unit in the order of + # resulting_fiber_assignment (both follow np.where(assignment == mu)). + try: + cv_all = self._muscle_model.muscle_fiber_conduction_velocities__mm_per_s + d_all = self._muscle_model.muscle_fiber_diameters__mm + except ValueError as error: + raise ValueError( + "fiber_properties='muscle' needs the Muscle fibre properties: run " + "muscle._generate_fiber_properties() after assign_mfs2mns() (autorun=True does both)" + ) from error + cv_all = np.asarray(cv_all.rescale(pq.m / pq.s).magnitude, dtype=float) + d_all = np.asarray(d_all.rescale(pq.um).magnitude, dtype=float) + assignment = np.asarray(self._muscle_model.assignment) + masks = [assignment == mu_idx for mu_idx in range(n_motor_units)] + muscle_fibres = dict(fiber_cv__m_s=[cv_all[mask] for mask in masks], + fiber_diameters__um=[d_all[mask] for mask in masks]) dispersion = realize_fiber_dispersion( self._fiber_dispersion, fiber_positions, @@ -374,6 +408,8 @@ def simulate_muaps( fiber_lengths__mm=[self._mean_fiber_length__mm + variation for variation in fiber_length_variations_per_MU], mean_fiber_length__mm=float(self._mean_fiber_length__mm), + fiber_diameter__um=float(self.fiber_diameter__um), + **muscle_fibres, ) self.fiber_dispersion_report = dispersion.report @@ -491,8 +527,9 @@ def _process_single_mu( # The fibre must finish inside the second half of the window # (firing at its centre), or the circular grid wraps it. zone = dispersion.zi__mm[MU_index] + # plus the IAP tail, 10 mm at lambda = 1 / mm, longer as lambda falls reach = np.maximum(dispersion.end_plus__mm[MU_index] - zone, - zone - dispersion.end_minus__mm[MU_index]) + 10.0 # mm, plus the IAP tail + zone - dispersion.end_minus__mm[MU_index]) + 10.0 / self._iap_lambda__per_mm finish = dispersion.delay__ms[MU_index] + reach / dispersion.cv__m_s[MU_index] if np.max(finish) >= kernel_length / v_conduction / 2: raise ValueError( @@ -531,7 +568,7 @@ def _process_single_mu( simulate_fiber_hybrid, ) - # Hybrid: time-domain Rosenfalck + frequency-domain volume conductor + # Hybrid: time-domain Rosenfalck [rosenfalck1969] + frequency-domain volume conductor # Same signature as _simulate_fiber_v2_python (drop-in replacement) phi_temp, A_matrix, B_incomplete = simulate_fiber_hybrid( Fs=Fs_internal, diff --git a/myogen/simulator/core/muscle/fiber_types.py b/myogen/simulator/core/muscle/fiber_types.py new file mode 100644 index 00000000..9ff99c9a --- /dev/null +++ b/myogen/simulator/core/muscle/fiber_types.py @@ -0,0 +1,217 @@ +"""Fibre types and diameters by motor unit. + +Every motor unit has one fibre type, and its mean fibre diameter rises with its recruitment +threshold along one ladder across the whole pool (design: docs/superpowers/specs/ +2026-11-02-fdi-fibre-typing-design.md, option A). + +- Types: units in threshold order are type I until they hold the type I fibre fraction + (FDI 57.4 % [polgar1973 p. 312 Table 4]). Strict order is a modelling simplification: in + human medial gastrocnemius slow and fast fatigue-resistant units interleave at low force and + only the fast fatigable (type 2b) units come strictly last [garnett1979 p. 42]. +- Ladder: a unit's position is the midpoint of its share of the pool's cumulative fibre count; + its log-mean diameter is ``sigma_between * clip(Phi^-1(q), -3, 3)``, non-decreasing with + threshold; units beyond +/-3 SD of the ladder share its end value. ``sigma_between`` is solved + so that the type I : type II fibre-weighted mean ratio is 50.0 : 67.0 um [polgar1973 p. 310 + Table 2]. Within-unit spread, either set per type (``within_unit_log_sd``; cat TA within-unit + fibre-area CoV of slow and fast units [martin1988 p. C46 Table 1]), or as before: one + ``sigma_within`` so that the pool's fibre log-SD equals that of Polgar's two-type mixture with + ``type_log_sd`` per type (0.2, a modelling assumption), at the realised type fraction. +- Fibres scatter log-normally about their unit's mean; the combined log-deviation is truncated at + 3 SD (a modelling assumption). The ladder offset is set so the expected pool mean is the mixture + mean at the realised type fraction (57.2 um at 57.4 %), so the type means stay at 50.0 / 67.0 um + in small pools. + +A per-type ladder would make CV drop at the type boundary, against the linear CV-threshold +relation measured with HD-sEMG [delvecchio2018 p. 2]. +""" + +from dataclasses import dataclass + +import numpy as np +from scipy.optimize import brentq +from scipy.stats import norm, truncnorm + + +@dataclass(frozen=True) +class FiberTypeLadder: + """Per-unit fibre types and ladder positions, with the derived spreads. + + Attributes + ---------- + unit_types : np.ndarray + Fibre type of each unit (1 or 2), in pool order. + unit_z : np.ndarray + Ladder position of each unit, ``clip(Phi^-1(q), -3, 3)``: non-decreasing with threshold; + units beyond +/-3 SD of the ladder share its end value. + sigma_between, sigma_within : float + Log-SD of the unit means along the ladder, and of fibres within a unit (pooled over fibres + when it is set per type). + type_i_fiber_fraction : float + Realised fraction of fibres in type I units. + target_mean__um : float + Expected mean fibre diameter of the pool (um). + log_offset : float + Ladder offset ``c``: a unit's median fibre diameter is ``exp(c + sigma_between * unit_z)`` um, + set so the expected pool mean (with each unit's truncation) is ``target_mean__um``. + unit_sigma_within : np.ndarray + Log-SD of fibre diameter within each unit; equal to ``sigma_within`` unless set per type. + """ + + unit_types: np.ndarray + unit_z: np.ndarray + sigma_between: float + sigma_within: float + type_i_fiber_fraction: float + target_mean__um: float + log_offset: float + unit_sigma_within: np.ndarray + + +def _truncated_lognormal_factor( + centre: np.ndarray, sigma_between: float, sigma_within: float, sigma_unit=None +) -> tuple: + """Truncation bounds of ``z`` for units at ``centre`` and ``E[exp(sigma_unit * z)]`` there. + + The combined log-deviation ``centre + sigma_unit * z`` is truncated at 3 SD of the pool + (``hypot(sigma_between, sigma_within)``; a modelling assumption). ``sigma_unit`` (per unit) + defaults to ``sigma_within``. + """ + s = sigma_within if sigma_unit is None else sigma_unit + bound = 3.0 * np.hypot(sigma_between, sigma_within) + lo, hi = (-bound - centre) / s, (bound - centre) / s + mass = norm.cdf(hi) - norm.cdf(lo) + factor = np.exp(s**2 / 2) * (norm.cdf(hi - s) - norm.cdf(lo - s)) / mass + return lo, hi, factor + + +def fiber_type_ladder( + fibers_per_unit: np.ndarray, + recruitment_thresholds: np.ndarray, + type_i_fiber_fraction: float = 0.574, + type_mean_diameters__um: tuple[float, float] = (50.0, 67.0), + type_log_sd: float = 0.2, + within_unit_log_sd: tuple[float, float] | None = None, +) -> FiberTypeLadder: + """Type the units and place them on the diameter ladder. + + Parameters + ---------- + fibers_per_unit : np.ndarray + Number of fibres of each unit, in pool order. + recruitment_thresholds : np.ndarray + Recruitment threshold of each unit; ties keep pool order. + type_i_fiber_fraction : float + Fraction of fibres in type I units [polgar1973 p. 312 Table 4]. + type_mean_diameters__um : tuple of float + Mean fibre diameter of type I and type II fibres [polgar1973 p. 310 Table 2]. + type_log_sd : float + Log-SD of fibre diameter within each type (a modelling assumption). Used only when + ``within_unit_log_sd`` is None. + within_unit_log_sd : tuple of float, optional + Log-SD of fibre diameter within a type I and a type II unit. None (default here) derives one + within-unit spread from ``type_log_sd``. + + Raises + ------ + ValueError + If the inputs are out of range, either type gets no fibres, or the type spread is too small + for the ladder. + """ + n = np.asarray(fibers_per_unit, dtype=float) + f = float(type_i_fiber_fraction) + m1, m2 = (float(v) for v in type_mean_diameters__um) + if len(n) != len(np.asarray(recruitment_thresholds)): + raise ValueError("fiber_type_ladder: fibers_per_unit and recruitment_thresholds must have the same length") + if not 0.0 < f < 1.0: + raise ValueError(f"fiber_type_ladder: type_i_fiber_fraction must lie in (0, 1), got {f}") + if not 0.0 < m1 < m2: + raise ValueError( + f"fiber_type_ladder: type_mean_diameters__um must be (type I, type II) with 0 < type I < type II, " + f"got ({m1}, {m2})" + ) + if not type_log_sd > 0: + raise ValueError(f"fiber_type_ladder: type_log_sd must be positive, got {type_log_sd}") + if within_unit_log_sd is not None and ( + len(within_unit_log_sd) != 2 or not all(float(v) > 0 for v in within_unit_log_sd) + ): + raise ValueError( + "fiber_type_ladder: within_unit_log_sd must be two positive values (type I, type II), " + f"got {within_unit_log_sd}" + ) + + order = np.argsort(np.asarray(recruitment_thresholds), kind="stable") + cum = np.cumsum(n[order]) + q = np.empty(len(n)) + q[order] = (cum - n[order] / 2) / cum[-1] + k = int(np.argmin(np.abs(cum / cum[-1] - f))) + unit_types = np.full(len(n), 2) + unit_types[order[: k + 1]] = 1 + type_i = unit_types == 1 + if n[~type_i].sum() == 0: + raise ValueError("fiber_type_ladder: no type II fibres; check the unit count and type_i_fiber_fraction") + if n[type_i].sum() == 0: + raise ValueError("fiber_type_ladder: no type I fibres; check type_i_fiber_fraction") + + unit_z = np.clip(norm.ppf(q), -3.0, 3.0) + + realised = float(n[type_i].sum() / n.sum()) + target = realised * m1 + (1 - realised) * m2 + if within_unit_log_sd is None: + def ratio(s): + w = n * np.exp(s * unit_z) + return (w[type_i].sum() / n[type_i].sum()) / (w[~type_i].sum() / n[~type_i].sum()) - m1 / m2 + + sigma_between = float(brentq(ratio, 1e-6, 3.0)) + # The pool mean and spread follow the realised fraction (a unit's worth off f in small pools), so + # the type means stay at m1 / m2: type properties outrank pool properties. + mixture_var = type_log_sd**2 + realised * (1 - realised) * np.log(m2 / m1) ** 2 + within_var = mixture_var - sigma_between**2 * np.average(unit_z**2, weights=n) + if within_var <= 0: + raise ValueError( + f"fiber_type_ladder: sigma_within^2 = {within_var:.4f} <= 0; type_log_sd {type_log_sd} is too " + "small for the spread the type means already need" + ) + sigma_within = float(np.sqrt(within_var)) + unit_sigma = np.full(len(n), sigma_within) + else: + # Per-type within-unit spread [martin1988 p. C46 Table 1]; the type-mean ratio is solved with each + # unit's own log-normal mean factor (and the pool truncation), so the type means stay at m1 / m2. + unit_sigma = np.where(type_i, float(within_unit_log_sd[0]), float(within_unit_log_sd[1])) + sigma_within = float(np.sqrt(np.average(unit_sigma**2, weights=n))) + + def ratio(s): + w = n * np.exp(s * unit_z) * _truncated_lognormal_factor(s * unit_z, s, sigma_within, unit_sigma)[2] + return (w[type_i].sum() / n[type_i].sum()) / (w[~type_i].sum() / n[~type_i].sum()) - m1 / m2 + + sigma_between = float(brentq(ratio, 1e-6, 3.0)) + centre = sigma_between * unit_z + _, _, factor = _truncated_lognormal_factor(centre, sigma_between, sigma_within, unit_sigma) + log_offset = float(np.log(target) - np.log(np.average(np.exp(centre) * factor, weights=n))) + return FiberTypeLadder( + unit_types=unit_types, + unit_z=unit_z, + sigma_between=sigma_between, + sigma_within=sigma_within, + type_i_fiber_fraction=realised, + target_mean__um=target, + log_offset=log_offset, + unit_sigma_within=unit_sigma, + ) + + +def draw_fiber_diameters__um( + ladder: FiberTypeLadder, assignment: np.ndarray, rng: np.random.Generator +) -> np.ndarray: + """Draw each fibre's diameter (um) about its unit's ladder median. + + ``d = exp(log_offset + sigma_between * unit_z + unit_sigma_within * z)``, with the combined + log-deviation truncated at 3 SD of the pool (a modelling assumption). The scale comes from the + ladder, so any subset of fibres can be drawn; the whole pool's mean is ``target_mean__um`` in + expectation. + """ + unit = np.asarray(assignment).astype(int) + centre = ladder.sigma_between * ladder.unit_z[unit] + sigma = ladder.unit_sigma_within[unit] + lo, hi, _ = _truncated_lognormal_factor(centre, ladder.sigma_between, ladder.sigma_within, sigma) + z = truncnorm.rvs(lo, hi, random_state=rng) + return np.exp(ladder.log_offset + centre + sigma * np.atleast_1d(z)) diff --git a/myogen/simulator/core/muscle/muscle.py b/myogen/simulator/core/muscle/muscle.py index dc1092f6..c740da11 100644 --- a/myogen/simulator/core/muscle/muscle.py +++ b/myogen/simulator/core/muscle/muscle.py @@ -14,6 +14,11 @@ import quantities as pq from myogen import get_random_generator +from myogen.simulator.core.muscle.fiber_types import ( + FiberTypeLadder, + draw_fiber_diameters__um, + fiber_type_ladder as build_fiber_type_ladder, # aliased: Muscle.fiber_type_ladder is a property +) from myogen.utils.types import ( RECRUITMENT_THRESHOLDS__ARRAY, Quantity__S_per_m, @@ -26,11 +31,32 @@ from myogen.utils.decorators import beartowertype # Fibre conduction velocity against diameter: CV = 0.95 m/s + 0.05 m/s per um -# (Nandedkar & Stalberg 1983; 3.7 m/s at 55 um). Shared with SurfaceFiberDispersion. +# (Nandedkar & Stalberg 1983; 3.7 m/s at 55 um) [nandedkar1983]; the same line converts motor-unit +# CV to fibre diameter in Del Vecchio et al. 2018 [delvecchio2018 p. 7 eq. 1]. Shared with SurfaceFiberDispersion. CV_INTERCEPT__M_S = 0.95 CV_PER_DIAMETER__M_S_PER_MM = 50.0 +class _NotGiven: + """Marks an argument the caller left out, where None has its own meaning.""" + + def __repr__(self) -> str: + return "NOT_GIVEN" + + +NOT_GIVEN = _NotGiven() + +# Defaults of the typed fibre model (fiber_model="typed"); see the Muscle docstring for sources. +TYPED_FIBER_DEFAULTS = { + "mean_fiber_conduction_velocity__m_per_s": 4.32 * pq.m / pq.s, + "sd_fiber_conduction_velocity__m_per_s": 0.71 * pq.m / pq.s, + "type_i_fiber_fraction": 0.574, + "type_mean_fiber_diameters__um": (50.0, 67.0), + "type_fiber_diameter_log_sd": 0.2, + "within_unit_fiber_diameter_log_sd": (0.08, 0.13), +} + + def _halton_disc(n: int, rng: np.random.Generator) -> np.ndarray: """``n`` quasi-uniform points in the unit disc: a scrambled Halton sequence in the square, kept inside the disc.""" sampler = qmc.Halton(d=2, scramble=True, rng=rng) @@ -104,7 +130,7 @@ def _perform_fast_marching(speed_map: np.ndarray, seed_points: np.ndarray) -> np @beartowertype class Muscle: """ - A muscle model based on the cylindrical description of the volume conductor by Farina et al. 2004 [1] and the motor unit distribution by Akhmadeev et al. 2020 [2]. + A muscle model based on the cylindrical description of the volume conductor by Farina et al. 2004 [farina2004] and the motor unit distribution by Akhmadeev et al. 2020 [akhmadeev2020]. All default values are set to simulate the First Dorsal Interosseous (FDI) muscle. Values are pulled from the literature. @@ -115,11 +141,11 @@ class Muscle: Array of recruitment thresholds for each motor unit (see `myogen.simulator.RecruitmentThresholds`). Values range from 0 to 1 with the largest motor units having thresholds near 1. radius__mm : float, default=6.91 - Radius of the muscle cross-section in millimeters. Default is set to 6.91 mm as determined by Jacobson et al. 1992 [3]. + Radius of the muscle cross-section in millimeters. Default is set to 6.91 mm as determined by Jacobson et al. 1992 [jacobson1992]. length__mm : float, default=30.0 Length of the muscle in millimeters. Default is 30.0 mm, a nominal value chosen to match the order of magnitude of the FDI muscle; adjust to match the muscle under study. fiber_density__fibers_per_mm2 : float, default=350 - Density of muscle fibers per square millimeter. Default is set to 350 fibers/mm² as determined by Bettelho et al. 2019 [7]. + Density of muscle fibers per square millimeter. Default is set to 350 fibers/mm² as determined by Botelho et al. 2019 [botelho2019]. max_innervation_area_to_total_muscle_area__ratio : float, default=0.25 Ratio defining the maximum territory size relative to total muscle area. Default is 0.25 as a pragmatic upper bound for the FDI, with no single published source; revisit for larger muscles. @@ -127,45 +153,91 @@ class Muscle: of the total muscle cross-sectional area. Must be in range (0, 1]. mean_conduction_velocity__m_per_s : float, default=4.2 - Mean conduction velocity in m/s. Default is set to 4.2 m/s as determined by Nishizono et al. 1990 [4]. - Experimental range determined by Nishizono et al. 1990 [4] is between 3.2 and 5.0 m/s. + Mean conduction velocity in m/s. Default is set to 4.2 m/s, the mean (SD 0.5) over 50 FDI motor units + of Nishizono et al. 1990 [nishizono1990 p. 77], which ranged from 3.2 to 5.0 m/s. The units were + recruited between 5 and 42 % MVC [nishizono1990 p. 78]. Used by surface EMG; the per-fibre + velocities of intramuscular EMG come from ``fiber_model``. + fiber_model : {"independent", "typed"}, default="independent" + How fibre diameters and conduction velocities (intramuscular EMG, and surface EMG with + ``SurfaceFiberDispersion(fiber_properties="muscle")``) are drawn. ``"independent"``, as in 0.13.0: + each fibre's diameter is log-normal around 50 um (log-SD 0.3, bounded to 20-80 um), its CV the + Nandedkar & Stalberg line [nandedkar1983 p. 163] plus 0.2 m/s of scatter, bounded to 2-6 m/s + (modelling assumptions); diameters do not depend on the motor unit. ``"typed"``: fibre types by motor + unit with FDI diameters (``fiber_types.py``), set by the arguments below, which need this model; call + ``assign_mfs2mns`` before ``_generate_fiber_properties``. Not used by surface EMG without + ``fiber_properties="muscle"``. + mean_fiber_conduction_velocity__m_per_s, sd_fiber_conduction_velocity__m_per_s : float, default=4.32, 0.71 + Typed model only. Default 4.32 +/- 0.71 m/s, the motor-unit CV + from high-density surface EMG of all tibialis anterior units identified up to 70 % MVC (range + 2.78-6.21 m/s; Del Vecchio et al. 2018) [delvecchio2018 p. 2]; human TA units by microstimulation + give 3.7 +/- 0.7 m/s [andreassen1987 p. 567]. Every fibre's CV is one affine map of the Nandedkar & + Stalberg line [nandedkar1983 p. 163], ``a + b * 0.05 * d[um]``, so CV follows diameter within and + between units; ``a`` and ``b`` make the mean and SD of the unit-mean CVs (each unit once, as measured) + equal these before the 2-6 m/s bound. In pools of mostly small units (e.g. the default FDI pool) the SD + stretches the large units past 6 m/s, so after the bound the mean and SD come out lower and a warning is + raised when more than 5 % of fibres are clipped. Because diameters rise with recruitment threshold + (``type_*`` arguments), unit-mean CVs rise with threshold too. Not used when ``motor_unit_conduction_velocities__m_per_s`` is given. With + ``within_unit_fiber_diameter_log_sd=None``: the line plus 0.2 m/s of scatter (a modelling assumption), + rescaled over fibres. Every fibre is bounded to 2-6 m/s (a modelling assumption). + motor_unit_conduction_velocities__m_per_s : Quantity or array, optional + Typed model only. Mean fibre CV of each motor unit, in pool order, e.g. from each unit's recruitment force through + ``myogen.utils.ramp_analysis.cv_from_recruitment_force`` (Del Vecchio et al. 2018 band means) + [delvecchio2018 p. 2]. Within a unit, fibre CV follows diameter on the Nandedkar & Stalberg slope, + 0.05 m/s per um [nandedkar1983 p. 163]. Plain numbers are read as m/s. Default None: the mean and SD + above. + type_i_fiber_fraction : float, default=0.574 + Typed model only. Fraction of fibres in type I units; FDI 57.4 % [polgar1973 p. 312 Table 4]. Units are typed in + recruitment order: the lowest-threshold units are type I until they hold this fraction. In the default + FDI muscle this makes ~86 % of units type I, because fibres concentrate in the large, late units. + Strict order is a simplification [garnett1979 p. 42]. + type_mean_fiber_diameters__um : tuple of float or Quantity, default=(50.0, 67.0) + Typed model only. Mean fibre diameter of type I and type II fibres, FDI [polgar1973 p. 310 Table 2]. A Quantity in any + length unit is rescaled to um; plain numbers are read as um. + type_fiber_diameter_log_sd : float, default=0.2 + Typed model only. Log-SD of fibre diameter within each type (a modelling assumption); used only with + ``within_unit_fiber_diameter_log_sd=None``. Unit mean diameters rise with threshold along one ladder + across the pool; see ``myogen.simulator.core.muscle.fiber_types``. + within_unit_fiber_diameter_log_sd : tuple of float or None, default=(0.08, 0.13) + Typed model only. Log-SD of fibre diameter within a type I and a type II motor unit: half the within-unit fibre-area CoV + of cat tibialis anterior units, 16.5 % in slow and 25.5 % in fast units (means of Table 1; 8-10 fibres + per unit, single sections) [martin1988 p. C46 Table 1]; no human value is known. None: no within-unit + spread of its own (the spread left over from ``type_fiber_diameter_log_sd``, CV scatter, CV SD over + fibres). mean_fiber_length__mm : float, default=31.7 - Mean fiber length in mm. Default is the first dorsal interosseous (FDI) value of Jacobson et al. 1992 [3] - (Table 1). + Mean fiber length in mm. Default is the first dorsal interosseous (FDI) value of Jacobson et al. 1992 [jacobson1992 Table 1]. var_fiber_length__mm : float, default=2.8 Half-width in mm of the uniform fibre-length variation: each fibre is ``mean_fiber_length__mm`` plus a uniform draw in ``±var_fiber_length__mm``, with its ends at ``±length / 2``, so both ends move together - by up to half this value. Default 2.8 mm, the FDI fibre-length spread of Jacobson et al. 1992 [3] - (Table 1), which most likely describes variation between specimens rather than between fibres of one + by up to half this value. Default 2.8 mm, the FDI fibre-length spread of Jacobson et al. 1992 [jacobson1992 Table 1], which most likely describes variation between specimens rather than between fibres of one muscle (not verified against the table). radius_bone__mm : float, default=1 Bone radius in mm. Default is set to 1 mm. fat_thickness__mm : float, default=1.3 Fat thickness in mm. Default 1.3 mm, derived rather than measured: no study measures fat alone over the FDI, so it is the total depth to muscle of 2.5 mm, the low end of the FDI subcutaneous depth of - Nishikawa et al. 2024 [12] (group means 2.54-3.30 mm, ultrasound), minus the skin below. Fat averaged - over the whole hand is thinner, 0.3 mm (Störchle et al. 2018 [5]; the previous default). + Nishikawa et al. 2024 [nishikawa2024] (group means 2.54-3.30 mm, ultrasound), minus the skin below. Fat averaged + over the whole hand is thinner, 0.3 mm (Störchle et al. 2018 [storchle2018]; the previous default). skin_thickness__mm : float, default=1.2 Skin (epidermis and dermis) thickness in mm. Default 1.2 mm, the median over the hand dorsum in healthy - controls of Li et al. 2018 [11] (range 0.79-1.50 mm, high-frequency ultrasound). The previous default, - 1.29 mm, was a male average from Brodar 1960 [6]. + controls of Li et al. 2018 [li2018] (range 0.79-1.50 mm, high-frequency ultrasound). The previous default, + 1.29 mm, was a male average from Brodar 1960 [brodar1960]. muscle_conductivity_radial__S_per_m : float, default=0.09 - Muscle conductivity in radial direction. Default is set to 0.09 S/m as determined by Botelho et al. 2019 [7] (Table 1). + Muscle conductivity in radial direction. Default is set to 0.09 S/m as determined by Botelho et al. 2019 [botelho2019 Table 1]. muscle_conductivity_longitudinal__S_per_m : float, default=0.4 - Muscle conductivity in longitudinal direction. Default is set to 0.4 S/m as determined by Botelho et al. 2019 [7] (Table 1). + Muscle conductivity in longitudinal direction. Default is set to 0.4 S/m as determined by Botelho et al. 2019 [botelho2019 Table 1]. fat_conductivity__S_per_m : float, default=4.07E-2 - Fat conductivity. Default is set to 4.07E-2 S/m as determined by Botelho et al. 2019 [7] (Table 1). + Fat conductivity. Default is set to 4.07E-2 S/m as determined by Botelho et al. 2019 [botelho2019 Table 1]. skin_conductivity__S_per_m : float, default=1.0 - Skin conductivity. Default is 1 S/m, the value of Farina et al. 2004 [1], which they took - from the three-layer model of Roeleveld et al. 1997 [8] (also Blok et al. 2002 [9]). It is + Skin conductivity. Default is 1 S/m, the value of Farina et al. 2004 [farina2004], which they took + from the three-layer model of Roeleveld et al. 1997 [roeleveld1997] (also Blok et al. 2002 [blok2002]). It is an effective value chosen so that the model reproduces how biceps MUAPs fall off with - depth and around the arm, not a measured skin conductivity: Roeleveld et al. note that it - is not known whether skin conducts as well as 1 S/m, and Blok et al. that reference values + depth and around the arm, not a measured skin conductivity: Roeleveld et al. [roeleveld1997] note that it + is not known whether skin conducts as well as 1 S/m, and Blok et al. [blok2002] that reference values are scarce. Measured skin is far lower: 4.55E-4 to 4.88E-4 S/m for composite in-vivo skin - near 100-150 Hz (Gabriel et al. 1996, used by Lowery et al. 2002 [10] and Botelho et al. - 2019 [7]); the IT'IS tissue database gives 0.148 +/- 0.042 S/m at low frequency (mean of - 7 studies, 0.057-0.25 S/m, flagged for use with caution) [13]. A resistive skin layer - raises surface amplitudes (3.5-6x with 4.88E-4 S/m). MyoGen keeps 1 S/m as a + near 100-150 Hz (Gabriel et al. 1996 [gabriel1996], used by Lowery et al. 2002 [lowery2002] and Botelho et al. + 2019 [botelho2019]); the IT'IS tissue database gives 0.148 +/- 0.042 S/m at low frequency + (mean of 7 studies, 0.057-0.25 S/m, flagged for use with caution) [itis]. A resistive skin + layer raises surface amplitudes (3.5-6x with 4.88E-4 S/m). MyoGen keeps 1 S/m as a calibration: with the IT'IS value of 0.15 S/m the FDI plateau RMS is about 2.5-4x above published ranges (``benchmarks/semg_dispersion``). grid_resolution : int, default=256 @@ -186,6 +258,10 @@ class Muscle: Muscle fiber diameters in mm. Available after _generate_fiber_properties(). muscle_fiber_conduction_velocities__mm_per_s : np.ndarray Muscle fiber conduction velocities in mm/s. Available after _generate_fiber_properties(). + motor_unit_fiber_types, muscle_fiber_types : np.ndarray + Fibre type (1 or 2) per unit and per fibre (``fiber_model="typed"``). Available after _generate_fiber_properties(). + fiber_type_ladder : FiberTypeLadder + Unit types, ladder positions and derived spreads (``fiber_model="typed"``). Available after _generate_fiber_properties(). assignment : np.ndarray Motor unit assignment for each muscle fiber. Available after assign_mfs2mns(). number_of_muscle_fibers : int @@ -204,19 +280,19 @@ class Muscle: References ---------- - [1] Farina, D., Mesin, L., Martina, S., Merletti, R., 2004. A surface EMG generation model with multilayer cylindrical description of the volume conductor. IEEE Transactions on Biomedical Engineering 51, 415–426. https://doi.org/10.1109/TBME.2003.820998
- [2] Akhmadeev, K., Yu, T., Le Carpentier, E., Aoustin, Y., Farina, D., 2020. Simulation of Motor Unit Action Potential Recordings From Intramuscular Multichannel Scanning Electrodes. IEEE Transactions on Biomedical Engineering 67, 2005–2014. https://doi.org/10.1109/TBME.2019.2953680
- [3] Jacobson, M.D., Raab, R., Fazeli, B.M., Abrams, R.A., Botte, M.J., Lieber, R.L., 1992. Architectural design of the human intrinsic hand muscles. The Journal of Hand Surgery 17, 804–809. https://doi.org/10.1016/0363-5023(92)90446-V
- [4] Nishizono, H., Fujimoto, T., Ohtake, H., Miyashita, M., 1990. Muscle fiber conduction velocity and contractile properties estimated from surface electrode arrays. Electroencephalography and Clinical Neurophysiology 75, 75–81. https://doi.org/10.1016/0013-4694(90)90154-C
- [5] Störchle, P., Müller, W., Sengeis, M., Lackner, S., Holasek, S., Fürhapter-Rieger, A., 2018. Measurement of mean subcutaneous fat thickness: eight standardised ultrasound sites compared to 216 randomly selected sites. Sci Rep 8, 16268. https://doi.org/10.1038/s41598-018-34213-0
- [6] Brodar, V., 1960. Observations on skin thickness and subcutaneous tissue in man. Zeitschrift für Morphologie und Anthropologie 50, 386–395.
- [7] Botelho, D.P., Curran, K., Lowery, M.M., 2019. Anatomically accurate model of EMG during index finger flexion and abduction derived from diffusion tensor imaging. PLOS Computational Biology 15, e1007267. https://doi.org/10.1371/journal.pcbi.1007267
- [8] Roeleveld, K., Blok, J.H., Stegeman, D.F., van Oosterom, A., 1997. Volume conduction models for surface EMG; confrontation with measurements. Journal of Electromyography and Kinesiology 7, 221–232. https://doi.org/10.1016/S1050-6411(97)00009-6
- [9] Blok, J.H., Stegeman, D.F., van Oosterom, A., 2002. Three-layer volume conductor model and software package for applications in surface electromyography. Annals of Biomedical Engineering 30, 566–577. https://doi.org/10.1114/1.1475345
- [10] Lowery, M.M., Stoykov, N.S., Taflove, A., Kuiken, T.A., 2002. A multiple-layer finite-element model of the surface EMG signal. IEEE Transactions on Biomedical Engineering 49, 446–454. https://doi.org/10.1109/10.995683
- [11] Li, H., Furst, D.E., Jin, H., Sun, C., Wang, X., Yang, L., He, J., Wang, Y., Liu, A., 2018. High-frequency ultrasound of the skin in systemic sclerosis: an exploratory study to examine correlation with disease activity and to define the minimally detectable difference. Arthritis Research & Therapy 20, 181. https://doi.org/10.1186/s13075-018-1686-9
- [12] Nishikawa, Y., Watanabe, K., Holobar, A., Kitamura, R., Maeda, N., Hyngstrom, A.S., 2024. Sex differences in laterality of motor unit firing behavior of the first dorsal interosseous muscle in strength-matched healthy young males and females. European Journal of Applied Physiology 124, 1979–1990. https://doi.org/10.1007/s00421-024-05420-7
- [13] Baumgartner, C., Hasgall, P.A., Di Gennaro, F., Neufeld, E., Lloyd, B., Gosselin, M.C., Payne, D., Klingenböck, A., Kuster, N., 2025. IT'IS Database for thermal and electromagnetic parameters of biological tissues, Version 5.0. https://doi.org/10.13099/VIP21000-05-0 + [1] Farina, D., Mesin, L., Martina, S., Merletti, R., 2004. A surface EMG generation model with multilayer cylindrical description of the volume conductor. IEEE Transactions on Biomedical Engineering 51, 415–426. https://doi.org/10.1109/TBME.2003.820998 [farina2004]
+ [2] Akhmadeev, K., Yu, T., Le Carpentier, E., Aoustin, Y., Farina, D., 2020. Simulation of Motor Unit Action Potential Recordings From Intramuscular Multichannel Scanning Electrodes. IEEE Transactions on Biomedical Engineering 67, 2005–2014. https://doi.org/10.1109/TBME.2019.2953680 [akhmadeev2020]
+ [3] Jacobson, M.D., Raab, R., Fazeli, B.M., Abrams, R.A., Botte, M.J., Lieber, R.L., 1992. Architectural design of the human intrinsic hand muscles. The Journal of Hand Surgery 17, 804–809. https://doi.org/10.1016/0363-5023(92)90446-V [jacobson1992]
+ [4] Nishizono, H., Fujimoto, T., Ohtake, H., Miyashita, M., 1990. Muscle fiber conduction velocity and contractile properties estimated from surface electrode arrays. Electroencephalography and Clinical Neurophysiology 75, 75–81. https://doi.org/10.1016/0013-4694(90)90154-C [nishizono1990]
+ [5] Störchle, P., Müller, W., Sengeis, M., Lackner, S., Holasek, S., Fürhapter-Rieger, A., 2018. Measurement of mean subcutaneous fat thickness: eight standardised ultrasound sites compared to 216 randomly selected sites. Sci Rep 8, 16268. https://doi.org/10.1038/s41598-018-34213-0 [storchle2018]
+ [6] Brodar, V., 1960. Observations on skin thickness and subcutaneous tissue in man. Zeitschrift für Morphologie und Anthropologie 50, 386–395. [brodar1960]
+ [7] Botelho, D.P., Curran, K., Lowery, M.M., 2019. Anatomically accurate model of EMG during index finger flexion and abduction derived from diffusion tensor imaging. PLOS Computational Biology 15, e1007267. https://doi.org/10.1371/journal.pcbi.1007267 [botelho2019]
+ [8] Roeleveld, K., Blok, J.H., Stegeman, D.F., van Oosterom, A., 1997. Volume conduction models for surface EMG; confrontation with measurements. Journal of Electromyography and Kinesiology 7, 221–232. https://doi.org/10.1016/S1050-6411(97)00009-6 [roeleveld1997]
+ [9] Blok, J.H., Stegeman, D.F., van Oosterom, A., 2002. Three-layer volume conductor model and software package for applications in surface electromyography. Annals of Biomedical Engineering 30, 566–577. https://doi.org/10.1114/1.1475345 [blok2002]
+ [10] Lowery, M.M., Stoykov, N.S., Taflove, A., Kuiken, T.A., 2002. A multiple-layer finite-element model of the surface EMG signal. IEEE Transactions on Biomedical Engineering 49, 446–454. https://doi.org/10.1109/10.995683 [lowery2002]
+ [11] Li, H., Furst, D.E., Jin, H., Sun, C., Wang, X., Yang, L., He, J., Wang, Y., Liu, A., 2018. High-frequency ultrasound of the skin in systemic sclerosis: an exploratory study to examine correlation with disease activity and to define the minimally detectable difference. Arthritis Research & Therapy 20, 181. https://doi.org/10.1186/s13075-018-1686-9 [li2018]
+ [12] Nishikawa, Y., Watanabe, K., Holobar, A., Kitamura, R., Maeda, N., Hyngstrom, A.S., 2024. Sex differences in laterality of motor unit firing behavior of the first dorsal interosseous muscle in strength-matched healthy young males and females. European Journal of Applied Physiology 124, 1979–1990. https://doi.org/10.1007/s00421-024-05420-7 [nishikawa2024]
+ [13] Baumgartner, C., Hasgall, P.A., Di Gennaro, F., Neufeld, E., Lloyd, B., Gosselin, M.C., Payne, D., Klingenböck, A., Kuster, N., 2025. IT'IS Database for thermal and electromagnetic parameters of biological tissues, Version 5.0. https://doi.org/10.13099/VIP21000-05-0 [itis] """ def __init__( @@ -227,6 +303,14 @@ def __init__( fiber_density__fibers_per_mm2: Quantity__per_mm2 = 350 * pq.mm**-2, max_innervation_area_to_total_muscle_area__ratio: float = 1 / 4, mean_conduction_velocity__m_per_s: Quantity__m_per_s = 4.2 * pq.m / pq.s, + fiber_model: str = "independent", + mean_fiber_conduction_velocity__m_per_s: Quantity__m_per_s | None = None, + sd_fiber_conduction_velocity__m_per_s: Quantity__m_per_s | None = None, + type_i_fiber_fraction: float | None = None, + type_mean_fiber_diameters__um: tuple[float, float] | pq.Quantity | None = None, + type_fiber_diameter_log_sd: float | None = None, + within_unit_fiber_diameter_log_sd: tuple[float, float] | None | _NotGiven = NOT_GIVEN, + motor_unit_conduction_velocities__m_per_s: np.ndarray | list[float] | tuple[float, ...] | None = None, mean_fiber_length__mm: Quantity__mm = 31.7 * pq.mm, var_fiber_length__mm: Quantity__mm = 2.8 * pq.mm, radius_bone__mm: Quantity__mm = 0 * pq.mm, @@ -266,6 +350,67 @@ def __init__( max_innervation_area_to_total_muscle_area__ratio ) self._mean_conduction_velocity__m_s = mean_conduction_velocity__m_per_s + if fiber_model not in ("independent", "typed"): + raise ValueError(f"fiber_model must be 'independent' or 'typed', got {fiber_model!r}") + typed_given = [name for name, value in ( + ("mean_fiber_conduction_velocity__m_per_s", mean_fiber_conduction_velocity__m_per_s), + ("sd_fiber_conduction_velocity__m_per_s", sd_fiber_conduction_velocity__m_per_s), + ("type_i_fiber_fraction", type_i_fiber_fraction), + ("type_mean_fiber_diameters__um", type_mean_fiber_diameters__um), + ("type_fiber_diameter_log_sd", type_fiber_diameter_log_sd), + ("within_unit_fiber_diameter_log_sd", + None if within_unit_fiber_diameter_log_sd is NOT_GIVEN else within_unit_fiber_diameter_log_sd), + ("motor_unit_conduction_velocities__m_per_s", motor_unit_conduction_velocities__m_per_s), + ) if value is not None] + if within_unit_fiber_diameter_log_sd is None: + typed_given.append("within_unit_fiber_diameter_log_sd") + if fiber_model == "independent" and typed_given: + raise ValueError(f"{', '.join(typed_given)} need fiber_model='typed'") + self._fiber_model = fiber_model + typed = dict(TYPED_FIBER_DEFAULTS) + if mean_fiber_conduction_velocity__m_per_s is None: + mean_fiber_conduction_velocity__m_per_s = typed["mean_fiber_conduction_velocity__m_per_s"] + if sd_fiber_conduction_velocity__m_per_s is None: + sd_fiber_conduction_velocity__m_per_s = typed["sd_fiber_conduction_velocity__m_per_s"] + if type_i_fiber_fraction is None: + type_i_fiber_fraction = typed["type_i_fiber_fraction"] + if type_mean_fiber_diameters__um is None: + type_mean_fiber_diameters__um = typed["type_mean_fiber_diameters__um"] + if type_fiber_diameter_log_sd is None: + type_fiber_diameter_log_sd = typed["type_fiber_diameter_log_sd"] + if within_unit_fiber_diameter_log_sd is NOT_GIVEN: + within_unit_fiber_diameter_log_sd = typed["within_unit_fiber_diameter_log_sd"] + self._mean_fiber_conduction_velocity__m_s = mean_fiber_conduction_velocity__m_per_s + self._sd_fiber_conduction_velocity__m_s = sd_fiber_conduction_velocity__m_per_s + self._type_i_fiber_fraction = type_i_fiber_fraction + # Type means in um: a Quantity is rescaled from any length unit, plain numbers are read as um. + if isinstance(type_mean_fiber_diameters__um, pq.Quantity): + type_mean_fiber_diameters__um = type_mean_fiber_diameters__um.rescale(pq.um).magnitude + self._type_mean_fiber_diameters__um = tuple(float(v) for v in type_mean_fiber_diameters__um) + self._type_fiber_diameter_log_sd = type_fiber_diameter_log_sd + self._within_unit_fiber_diameter_log_sd = ( + None if within_unit_fiber_diameter_log_sd is None + else tuple(float(v) for v in within_unit_fiber_diameter_log_sd) + ) + if motor_unit_conduction_velocities__m_per_s is not None: + given = motor_unit_conduction_velocities__m_per_s + try: + unit_cv = (given.rescale(pq.m / pq.s).magnitude if isinstance(given, pq.Quantity) else given) + except ValueError as error: + raise ValueError(f"motor_unit_conduction_velocities__m_per_s must be a velocity: {error}") from error + unit_cv = np.asarray(unit_cv, dtype=float).ravel() + if len(unit_cv) != len(recruitment_thresholds) or not np.all(np.isfinite(unit_cv) & (unit_cv > 0)): + raise ValueError( + "motor_unit_conduction_velocities__m_per_s must give one positive CV per motor unit " + f"({len(recruitment_thresholds)}), got {len(unit_cv)} values" + ) + if within_unit_fiber_diameter_log_sd is None: + raise ValueError( + "motor_unit_conduction_velocities__m_per_s needs within_unit_fiber_diameter_log_sd " + "(the typed model without within-unit spread has no per-unit CVs)" + ) + motor_unit_conduction_velocities__m_per_s = unit_cv + self._motor_unit_conduction_velocities__m_s = motor_unit_conduction_velocities__m_per_s self._mean_fiber_length__mm = mean_fiber_length__mm self._var_fiber_length__mm = var_fiber_length__mm self._radius_bone__mm = radius_bone__mm @@ -292,6 +437,7 @@ def __init__( self._assignment: Optional[np.ndarray] = None self._muscle_fiber_diameters__mm: Optional[Quantity__mm] = None self._muscle_fiber_conduction_velocities__mm_per_s: Optional[Quantity__mm_per_s] = None + self._fiber_type_ladder: Optional[FiberTypeLadder] = None self._number_of_muscle_fibers: Optional[int] = None self._muscle_border__mm: Optional[Quantity__mm] = None @@ -325,33 +471,14 @@ def __init__( self.assign_mfs2mns() self._generate_fiber_properties() - def _generate_fiber_properties(self) -> None: - """ - Generate muscle fiber diameters and conduction velocities based on physiological models. - - This method should be called after generate_muscle_fiber_centers() to generate - realistic fiber properties based on the number and positions of muscle fibers. - - Results are stored in the `mf_diameters` and `mf_cv` properties after execution. - - Raises - ------ - ValueError - If muscle fiber centers have not been generated first. Call generate_muscle_fiber_centers() first. - """ - if self._muscle_fiber_centers__mm is None: - raise ValueError( - "Muscle fiber centers must be generated first. " - "Call generate_muscle_fiber_centers() before generating fiber properties." - ) - + def _generate_independent_fiber_properties(self) -> None: + """Fibre diameters and CVs of ``fiber_model="independent"``, as in 0.13.0 with the CV line in mm.""" n_fibers = len(self._muscle_fiber_centers__mm) # Generate muscle fiber diameters using log-normal distribution # Based on physiological measurements (Brooke & Kaiser, 1970) # Mean diameter ~50um, range 20-80um mean_diameter__mm = 50e-3 # mm (50 um) - std_diameter__mm = 15e-3 # mm (15 um) self._muscle_fiber_diameters__mm = ( get_random_generator().lognormal(mean=np.log(mean_diameter__mm), sigma=0.3, size=n_fibers) @@ -369,11 +496,104 @@ def _generate_fiber_properties(self) -> None: # Add some biological variability cv_base = k * self._muscle_fiber_diameters__mm + c - cv_noise = get_random_generator().normal(0, 0.2, n_fibers) * pq.m / pq.s # 20% CV variation + cv_noise = get_random_generator().normal(0, 0.2, n_fibers) * pq.m / pq.s - self._muscle_fiber_conduction_velocities__mm_per_s = cv_base + cv_noise + # Ensure velocities are within physiological range (2-6 m/s), then convert to mm/s + self._muscle_fiber_conduction_velocities__mm_per_s = np.clip( + cv_base + cv_noise, 2.0 * pq.m / pq.s, 6.0 * pq.m / pq.s + ).rescale(pq.mm / pq.s) + + def _generate_fiber_properties(self) -> None: + """ + Generate muscle fiber diameters and conduction velocities based on physiological models. + + Call after generate_muscle_fiber_centers(); with ``fiber_model="typed"`` also after assign_mfs2mns(), + because fibre types and diameters are then set per motor unit (``fiber_types.py``), then CVs from + diameters. - # Ensure velocities are within physiological range (2-6 m/s) + Results are available as ``muscle_fiber_diameters__mm`` and ``muscle_fiber_conduction_velocities__mm_per_s``; + with ``fiber_model="typed"`` also ``motor_unit_fiber_types``, ``muscle_fiber_types`` and ``fiber_type_ladder``. + + Raises + ------ + ValueError + If muscle fiber centers have not been generated, or (typed model) fibres not assigned to motor units + (call generate_muscle_fiber_centers() and assign_mfs2mns() first). + """ + if self._muscle_fiber_centers__mm is None: + raise ValueError( + "Muscle fiber centers must be generated first. " + "Call generate_muscle_fiber_centers() before generating fiber properties." + ) + + if self._fiber_model == "independent": + self._generate_independent_fiber_properties() + return + + if self._assignment is None: + raise ValueError( + "Fibres must be assigned to motor units first. " + "Call assign_mfs2mns() before generating fiber properties." + ) + + n_fibers = len(self._muscle_fiber_centers__mm) + + # Fibre types by motor unit, with unit mean diameters rising with recruitment threshold along one + # ladder across the pool (fiber_types.py; FDI type I 57.4 % [polgar1973 p. 312 Table 4], type means + # 50.0 / 67.0 um [polgar1973 p. 310 Table 2]). + assignment = self._assignment.astype(int) + self._fiber_type_ladder = build_fiber_type_ladder( + np.bincount(assignment, minlength=self._number_of_neurons), + np.asarray(self._recruitment_thresholds), + type_i_fiber_fraction=self._type_i_fiber_fraction, + type_mean_diameters__um=self._type_mean_fiber_diameters__um, + type_log_sd=self._type_fiber_diameter_log_sd, + within_unit_log_sd=self._within_unit_fiber_diameter_log_sd, + ) + d_um = draw_fiber_diameters__um(self._fiber_type_ladder, assignment, get_random_generator()) + self._muscle_fiber_diameters__mm = d_um * 1e-3 * pq.mm + + def as_m_s(value): + return float(pq.Quantity(value, pq.m / pq.s).rescale(pq.m / pq.s).magnitude) + + k = CV_PER_DIAMETER__M_S_PER_MM * 1e-3 # (m/s)/um + d_um = np.asarray(self._muscle_fiber_diameters__mm.rescale(pq.mm).magnitude) * 1e3 + mean_cv = as_m_s(self._mean_fiber_conduction_velocity__m_s) + sd_cv = as_m_s(self._sd_fiber_conduction_velocity__m_s) + if self._within_unit_fiber_diameter_log_sd is None: + # No within-unit spread: the CV-diameter line [nandedkar1983 p. 163] plus 0.2 m/s of scatter (a + # modelling assumption), rescaled over fibres to the mean and SD. + raw_cv = k * d_um + get_random_generator().normal(0, 0.2, n_fibers) + spread = np.std(raw_cv) + z_cv = (raw_cv - np.mean(raw_cv)) / spread if spread > 0 else np.zeros(n_fibers) + cv = mean_cv + sd_cv * z_cv + else: + line = k * d_um + counts = np.bincount(assignment, minlength=self._number_of_neurons) + unit_line = np.bincount(assignment, weights=line, minlength=self._number_of_neurons) / np.maximum(counts, 1) + if self._motor_unit_conduction_velocities__m_s is not None: + # Each unit's mean CV as given; within a unit, CV follows diameter on the line's slope + # [nandedkar1983 p. 163]. + cv = self._motor_unit_conduction_velocities__m_s[assignment] + line - unit_line[assignment] + else: + # One affine map of the CV-diameter line [nandedkar1983 p. 163] for every fibre, with the mean + # and SD of motor-unit CVs [delvecchio2018 p. 2] [andreassen1987 p. 567] matched over unit means + # (each unit once). The line's own anchor (3.7 m/s at 55 um) is not used. + present = unit_line[counts > 0] + spread = np.std(present) + b = sd_cv / spread if spread > 0 else 0.0 + cv = mean_cv + b * (line - np.mean(present)) + self._muscle_fiber_conduction_velocities__mm_per_s = cv * pq.m / pq.s + + # Sanity bounds 2-6 m/s (a modelling assumption, not sourced) + at_bound = float(np.mean(cv >= 6.0)) + if at_bound > 0.05: + warnings.warn( + f"{at_bound:.0%} of fibres exceed 6 m/s and are clipped to it. With mean and SD over unit means, " + "a pool of mostly small units stretches the large ones; consider " + "motor_unit_conduction_velocities__m_per_s (e.g. from cv_from_recruitment_force).", + stacklevel=2, + ) self._muscle_fiber_conduction_velocities__mm_per_s = np.clip( self._muscle_fiber_conduction_velocities__mm_per_s, 2.0 * pq.m / pq.s, 6.0 * pq.m / pq.s ) @@ -603,6 +823,12 @@ def assign_mfs2mns(self, n_neighbours: int = 3, conf: float = 0.999, n_jobs: int the probability of assigning a fiber to a motor unit if its neighbors are already assigned to that unit. """ + # Fibre types, diameters and CVs belong to one assignment; clear them until + # _generate_fiber_properties() runs again. + self._fiber_type_ladder = None + self._muscle_fiber_diameters__mm = None + self._muscle_fiber_conduction_velocities__mm_per_s = None + # Ensure innervation_center_positions is available if self._innervation_center_positions__mm is None: raise ValueError( @@ -1051,6 +1277,28 @@ def muscle_fiber_conduction_velocities__mm_per_s(self) -> Quantity__mm_per_s: ) return self._muscle_fiber_conduction_velocities__mm_per_s + @property + def fiber_type_ladder(self) -> FiberTypeLadder: + """Unit fibre types, ladder positions and derived diameter spreads.""" + if self._fiber_model != "typed": + raise ValueError("Fibre types exist only with fiber_model='typed'.") + if self._fiber_type_ladder is None: + raise ValueError( + "Muscle fiber properties not computed. " + "Call _generate_fiber_properties() first (usually done automatically)." + ) + return self._fiber_type_ladder + + @property + def motor_unit_fiber_types(self) -> np.ndarray: + """Fibre type (1 or 2) of each motor unit, in pool order.""" + return self.fiber_type_ladder.unit_types + + @property + def muscle_fiber_types(self) -> np.ndarray: + """Fibre type (1 or 2) of each fibre, aligned with ``muscle_fiber_diameters__mm``.""" + return self.fiber_type_ladder.unit_types[self._assignment.astype(int)] + @property def assignment(self) -> np.ndarray: """ diff --git a/tests/test_fiber_types.py b/tests/test_fiber_types.py new file mode 100644 index 00000000..0d6ce09e --- /dev/null +++ b/tests/test_fiber_types.py @@ -0,0 +1,155 @@ +"""Fibre types by motor unit: one diameter ladder across the pool (spec 2026-11-02-fdi-fibre-typing-design).""" + +import numpy as np +import pytest + +from myogen.simulator.core.muscle.fiber_types import draw_fiber_diameters__um, fiber_type_ladder + +n = np.round(np.geomspace(40, 1600, 120)).astype(int) +thresholds = np.geomspace(1, 30, 120) +assignment = np.repeat(np.arange(120), n) + + +@pytest.fixture +def rng(): + return np.random.default_rng(0) + + +def test_types_follow_threshold_and_hit_the_fraction(): + lad = fiber_type_ladder(n, thresholds) + order = np.argsort(thresholds, kind="stable") + t = lad.unit_types[order] + assert set(t) == {1, 2} and np.all(np.diff(t) >= 0) # no type 2 below a type 1 + assert abs(lad.type_i_fiber_fraction - 0.574) <= n.max() / n.sum() + + +def test_ladder_rises_across_the_type_boundary(): + lad = fiber_type_ladder(n, thresholds) + assert np.all(np.diff(lad.unit_z[np.argsort(thresholds, kind="stable")]) >= 0) + + +def test_diameters_keep_polgar_means_and_spread(rng): + lad = fiber_type_ladder(n, thresholds) + d = draw_fiber_diameters__um(lad, assignment, rng) + t = lad.unit_types[assignment] + assert d[t == 1].mean() == pytest.approx(50.0, abs=0.5) + assert d[t == 2].mean() == pytest.approx(67.0, abs=0.5) + f = lad.type_i_fiber_fraction + assert d.mean() == pytest.approx(f * 50.0 + (1 - f) * 67.0, abs=0.05) + assert np.log(d).std() == pytest.approx(np.sqrt(0.04 + 0.574 * 0.426 * np.log(67 / 50) ** 2), abs=0.01) + + +def test_tails_are_cut_at_three_sd(rng): + lad = fiber_type_ladder(n, thresholds) + d = draw_fiber_diameters__um(lad, assignment, rng) + S = np.hypot(lad.sigma_between, lad.sigma_within) + assert np.log(d).max() - np.log(d).min() <= 6 * S + 1e-9 + + +def test_empty_unit_gets_a_type_and_position(): + m = n.copy() + m[5] = 0 + lad = fiber_type_ladder(m, thresholds) + assert lad.unit_types[5] in (1, 2) and np.isfinite(lad.unit_z).all() + + +def test_tied_thresholds_order_by_index(): + th = thresholds.copy() + th[10] = th[11] + a, b = fiber_type_ladder(n, th), fiber_type_ladder(n, th) + np.testing.assert_array_equal(a.unit_z, b.unit_z) + assert a.unit_z[10] <= a.unit_z[11] + + +@pytest.mark.parametrize("counts, ths, f", [(np.array([100]), np.array([1.0]), 0.574), (n, thresholds, 0.99)]) +def test_degenerate_typing_raises(counts, ths, f): + with pytest.raises(ValueError, match="type II"): + fiber_type_ladder(counts, ths, type_i_fiber_fraction=f) + + +def test_too_small_type_spread_raises(): + with pytest.raises(ValueError, match="sigma_within"): + fiber_type_ladder(n, thresholds, type_log_sd=0.01) + + +def test_type_means_hold_when_the_realised_fraction_is_coarse(rng): + """With few units the type I fraction lands a unit's worth off 57.4 %; the type means must + still be 50.0 / 67.0 um, so the pool mean follows the realised fraction.""" + coarse = np.round(np.geomspace(40, 1600, 12)).astype(int) + lad = fiber_type_ladder(coarse, np.geomspace(1, 30, 12)) + assert abs(lad.type_i_fiber_fraction - 0.574) > 0.01 + d = draw_fiber_diameters__um(lad, np.repeat(np.arange(12), coarse), rng) + t = lad.unit_types[np.repeat(np.arange(12), coarse)] + assert d[t == 1].mean() == pytest.approx(50.0, abs=0.5) + assert d[t == 2].mean() == pytest.approx(67.0, abs=0.5) + + +def test_pool_spread_follows_the_realised_fraction(rng): + """The pool log-variance is that of Polgar's two-type mixture at the realised type fraction, as + the pool mean is. The drawn check is coarse (nominal vs realised differ by ~0.001 in log-SD here, + below sampling noise and the 3 SD truncation); the designed variance is checked exactly.""" + coarse = np.round(np.geomspace(40, 1600, 12)).astype(int) + lad = fiber_type_ladder(coarse, np.geomspace(1, 30, 12)) + r = lad.type_i_fiber_fraction + mixture_var = 0.04 + r * (1 - r) * np.log(67 / 50) ** 2 + d = draw_fiber_diameters__um(lad, np.repeat(np.arange(12), coarse), rng) + assert np.log(d).std() == pytest.approx(np.sqrt(mixture_var), abs=0.01) + designed_var = lad.sigma_between**2 * np.average(lad.unit_z**2, weights=coarse) + lad.sigma_within**2 + assert designed_var == pytest.approx(mixture_var, abs=1e-9) + + +@pytest.mark.parametrize("kwargs, message", [ + ({"type_mean_diameters__um": (67.0, 50.0)}, "type_mean_diameters__um"), + ({"type_i_fiber_fraction": 0.0}, "type_i_fiber_fraction"), + ({"type_i_fiber_fraction": -0.1}, "type_i_fiber_fraction"), + ({"type_log_sd": -0.2}, "type_log_sd"), + ({"recruitment_thresholds": thresholds[:-1]}, "same length"), +]) +def test_bad_inputs_raise_clear_errors(kwargs, message): + args = {"fibers_per_unit": n, "recruitment_thresholds": thresholds, **kwargs} + with pytest.raises(ValueError, match=message): + fiber_type_ladder(**args) + + +def test_a_subset_draw_keeps_each_units_own_mean(rng): + """The diameter scale is a property of the ladder, not of the fibres passed in: drawing only + the top unit's fibres gives that unit's mean, not the pool mean.""" + lad = fiber_type_ladder(n, thresholds) + full = draw_fiber_diameters__um(lad, assignment, rng) + top = int(np.argmax(thresholds)) + subset = draw_fiber_diameters__um(lad, np.full(5000, top), rng) + assert subset.mean() == pytest.approx(full[assignment == top].mean(), rel=0.02) + assert subset.mean() > 1.2 * lad.target_mean__um + + +def test_within_unit_spread_is_set_per_type(rng): + """Within-unit diameter log-SD by type: 0.08 (type I) and 0.13 (type II), half the cat TA + within-unit fibre-area CoV of slow and fast units [martin1988 p. C46 Table 1].""" + lad = fiber_type_ladder(n, thresholds, within_unit_log_sd=(0.08, 0.13)) + np.testing.assert_allclose(lad.unit_sigma_within, np.where(lad.unit_types == 1, 0.08, 0.13)) + d = draw_fiber_diameters__um(lad, assignment, rng) + for t, s in ((1, 0.08), (2, 0.13)): + sds = [np.log(d[assignment == u]).std() for u in range(len(n)) if lad.unit_types[u] == t and n[u] >= 100] + assert len(sds) >= 3 + assert np.median(sds) == pytest.approx(s, rel=0.1) + + +def test_per_type_spread_keeps_polgar_means(rng): + lad = fiber_type_ladder(n, thresholds, within_unit_log_sd=(0.08, 0.13)) + d = draw_fiber_diameters__um(lad, assignment, rng) + t = lad.unit_types[assignment] + assert d[t == 1].mean() == pytest.approx(50.0, abs=0.5) + assert d[t == 2].mean() == pytest.approx(67.0, abs=0.5) + f = lad.type_i_fiber_fraction + assert d.mean() == pytest.approx(f * 50.0 + (1 - f) * 67.0, abs=0.1) + + +def test_residual_ladder_has_one_within_unit_spread(): + lad = fiber_type_ladder(n, thresholds) + assert np.all(lad.unit_sigma_within == lad.sigma_within) + + +@pytest.mark.parametrize("value", [(0.0, 0.1), (0.1, -0.1), (0.1,)]) +def test_bad_within_unit_spread_raises(value): + with pytest.raises(ValueError, match="within_unit_log_sd"): + fiber_type_ladder(n, thresholds, within_unit_log_sd=value) diff --git a/tests/test_muscle_fibre_properties.py b/tests/test_muscle_fibre_properties.py index 7a34c2da..8b84cdc8 100644 --- a/tests/test_muscle_fibre_properties.py +++ b/tests/test_muscle_fibre_properties.py @@ -8,28 +8,280 @@ from myogen.simulator import Muscle, RecruitmentThresholds -def _muscle(radius__mm, density=None): +def _muscle(radius__mm, density=None, **kw): thr, _ = RecruitmentThresholds(N=20, recruitment_range__ratio=50, mode="fuglevand") - kw = {} if density is None else {"fiber_density__fibers_per_mm2": density * pq.mm**-2} + if density is not None: + kw["fiber_density__fibers_per_mm2"] = density * pq.mm**-2 return Muscle(recruitment_thresholds=thr, radius__mm=radius__mm * pq.mm, **kw) -def test_fibre_cv_follows_the_diameter_line(): - """CV = 0.95 m/s + 0.05 m/s per um of diameter (Nandedkar & Stalberg 1983): ~3.45 m/s at 50 um. +def _typed(radius__mm=3, **kw): + """A small muscle with fibres assigned to units and fibre properties generated (typed model by default).""" + kw.setdefault("fiber_model", "typed") + set_random_seed(1) + m = _muscle(radius__mm, **kw) + m.distribute_innervation_centers() + m.generate_muscle_fiber_centers(verbose=False) + m.assign_mfs2mns(verbose=False, n_jobs=1) + m._generate_fiber_properties() + return m + + +@pytest.fixture(scope="module") +def typed_muscle(): + return _typed() + + +def test_typed_fibre_properties_need_the_assignment(): + set_random_seed(1) + m = _muscle(3, fiber_model="typed") + m.generate_muscle_fiber_centers(verbose=False) + with pytest.raises(ValueError, match="assign_mfs2mns"): + m._generate_fiber_properties() + + +def test_each_unit_has_one_type_ordered_by_threshold(typed_muscle): + m = typed_muscle + a = m._assignment.astype(int) + np.testing.assert_array_equal(m.muscle_fiber_types, m.motor_unit_fiber_types[a]) + t = m.motor_unit_fiber_types[np.argsort(m.recruitment_thresholds, kind="stable")] + assert set(t) == {1, 2} and np.all(np.diff(t) >= 0) + + +def test_designed_unit_diameter_rises_with_threshold(typed_muscle): + lad = typed_muscle.fiber_type_ladder + assert np.all(np.diff(lad.unit_z[np.argsort(typed_muscle.recruitment_thresholds, kind="stable")]) >= 0) + + +def test_type_means_are_polgar(typed_muscle): + """Type I 50.0 um, type II 67.0 um [polgar1973 p. 310 Table 2].""" + d = np.asarray(typed_muscle.muscle_fiber_diameters__mm.rescale(pq.mm)) * 1e3 + t = typed_muscle.muscle_fiber_types + assert d[t == 1].mean() == pytest.approx(50.0, abs=0.5) + assert d[t == 2].mean() == pytest.approx(67.0, abs=0.5) + + +@pytest.mark.parametrize("type_means", [(50.0, 67.0) * pq.um, (0.050, 0.067) * pq.mm]) +def test_type_mean_diameters_accept_any_length_unit(typed_muscle, type_means): + """Type means given as a Quantity are rescaled to um; plain numbers are read as um.""" + m = _typed(type_mean_fiber_diameters__um=type_means) + assert m.fiber_type_ladder.target_mean__um == pytest.approx( + typed_muscle.fiber_type_ladder.target_mean__um, rel=1e-12 + ) + + +def test_reassignment_clears_fibre_properties(): + """Fibre types and diameters belong to one assignment; a new assignment invalidates them.""" + m = _typed() + m.assign_mfs2mns(verbose=False, n_jobs=1) + with pytest.raises(ValueError, match="_generate_fiber_properties"): + m.muscle_fiber_types + with pytest.raises(ValueError, match="_generate_fiber_properties"): + m.muscle_fiber_diameters__mm + with pytest.raises(ValueError, match="_generate_fiber_properties"): + m.muscle_fiber_conduction_velocities__mm_per_s + + +def test_fibre_properties_are_reproducible_under_a_seed(typed_muscle): + m = _typed() + for name in ("muscle_fiber_diameters__mm", "muscle_fiber_conduction_velocities__mm_per_s"): + np.testing.assert_array_equal( + np.asarray(getattr(m, name).magnitude), np.asarray(getattr(typed_muscle, name).magnitude) + ) + np.testing.assert_array_equal(m.muscle_fiber_types, typed_muscle.muscle_fiber_types) + + +@pytest.mark.parametrize("kw, mean_cv, sd_cv", [ + ({}, 4.32, 0.71), + ({"mean_fiber_conduction_velocity__m_per_s": 4.2 * pq.m / pq.s, + "sd_fiber_conduction_velocity__m_per_s": 0.4 * pq.m / pq.s}, 4.2, 0.4), +]) +def test_fibre_cv_has_the_requested_distribution_ordered_by_diameter(kw, mean_cv, sd_cv): + """Typed model without within-unit spread (``within_unit_fiber_diameter_log_sd=None``): fibre CVs are 4.32 +/- 0.71 m/s over fibres, the surface (HD-sEMG) CV of all + tibialis anterior units in Del Vecchio et al. (2018), ordered by fibre diameter through the + Nandedkar & Stalberg line; the 2-6 m/s sanity clip trims the top. The muscle mean CV used by + surface EMG is separate. Unit-mean CV rises with recruitment threshold. With diameters in mm, the old slope of 5.5 (m/s)/mm gave ~1.1 m/s and the 2 m/s clip set every fibre to exactly 2.0 m/s. """ + from scipy.stats import spearmanr + + m = _typed(mean_conduction_velocity__m_per_s=5.0 * pq.m / pq.s, within_unit_fiber_diameter_log_sd=None, **kw) + d_um = np.asarray(m.muscle_fiber_diameters__mm.rescale(pq.mm)) * 1e3 + cv = np.asarray(m.muscle_fiber_conduction_velocities__mm_per_s.rescale(pq.m / pq.s)) + + assert np.mean(np.isclose(cv, 2.0) | np.isclose(cv, 6.0)) < 0.03 + assert np.mean(cv) == pytest.approx(mean_cv, abs=0.03) + assert np.std(cv) == pytest.approx(sd_cv, abs=0.03) + assert np.corrcoef(d_um, cv)[0, 1] > 0.9 + assert float(m.mean_conduction_velocity__m_s.rescale(pq.m / pq.s)) == 5.0 + a = m._assignment.astype(int) + unit_cv = np.bincount(a, weights=cv) / np.maximum(np.bincount(a), 1) + assert spearmanr(m.recruitment_thresholds, unit_cv)[0] > 0 + + +def _cv_and_units(m): + cv = np.asarray(m.muscle_fiber_conduction_velocities__mm_per_s.rescale(pq.m / pq.s)) + d_um = np.asarray(m.muscle_fiber_diameters__mm.rescale(pq.mm)) * 1e3 + return cv, d_um, m._assignment.astype(int) + + +def test_default_within_unit_spread_is_martin(typed_muscle): + """Within-unit diameter log-SD 0.08 (type I) / 0.13 (type II) [martin1988 p. C46 Table 1].""" + lad = typed_muscle.fiber_type_ladder + np.testing.assert_allclose(lad.unit_sigma_within, np.where(lad.unit_types == 1, 0.08, 0.13)) + + +@pytest.mark.parametrize("mean_cv, sd_units", [(4.0, 0.5), (4.2, 0.4)]) +def test_cv_is_over_unit_means(mean_cv, sd_units): + """Without per-unit CVs the mean and SD are those of motor-unit CVs [delvecchio2018 p. 2] + [andreassen1987 p. 567], so they hold over unit means, each unit once. (At the 4.32 +/- 0.71 + default the 6 m/s bound trims the fastest units, so values are chosen clear of it.)""" + kw = {"mean_fiber_conduction_velocity__m_per_s": mean_cv * pq.m / pq.s, + "sd_fiber_conduction_velocity__m_per_s": sd_units * pq.m / pq.s} + m = _typed(**kw) + cv, _, a = _cv_and_units(m) + counts = np.bincount(a) + unit_cv = (np.bincount(a, weights=cv) / np.maximum(counts, 1))[counts > 0] + assert np.mean(unit_cv) == pytest.approx(mean_cv, abs=0.03) + assert np.std(unit_cv) == pytest.approx(sd_units, abs=0.03) + + +def test_given_unit_cvs_set_each_units_mean(): + """Per-unit CVs (e.g. from ``cv_from_recruitment_force``) set each unit's mean CV; within a unit CV + follows diameter on the Nandedkar & Stalberg slope, 0.05 m/s per um [nandedkar1983 p. 163].""" + target = np.linspace(3.5, 5.0, 20) + m = _typed(motor_unit_conduction_velocities__m_per_s=target * pq.m / pq.s) + cv, d_um, a = _cv_and_units(m) + counts = np.bincount(a, minlength=20) + unit_cv = np.bincount(a, weights=cv, minlength=20) / np.maximum(counts, 1) + clipped = np.bincount(a, weights=(np.isclose(cv, 2.0) | np.isclose(cv, 6.0)).astype(float), minlength=20) + has = (counts > 0) & (clipped == 0) # the 2-6 m/s bound moves a clipped unit's mean + assert has.sum() >= 15 + np.testing.assert_allclose(unit_cv[has], target[has], atol=1e-9) + for u in np.flatnonzero(has & (counts >= 3)): + sel = a == u + assert np.polyfit(d_um[sel], cv[sel], 1)[0] == pytest.approx(0.05, rel=1e-9) + + +@pytest.mark.parametrize("value, message", [ + (np.full(19, 4.0), "motor_unit_conduction_velocities__m_per_s"), + (np.r_[np.full(19, 4.0), -1.0], "motor_unit_conduction_velocities__m_per_s"), +]) +def test_bad_unit_cvs_raise(value, message): + with pytest.raises(ValueError, match=message): + _typed(motor_unit_conduction_velocities__m_per_s=value * pq.m / pq.s) + + +def test_cv_follows_diameter_within_each_unit(typed_muscle): + """No extra CV scatter: inside a unit every unclipped fibre sits on the same CV-diameter line.""" + cv, d_um, a = _cv_and_units(typed_muscle) + free = (cv > 2.0 + 1e-9) & (cv < 6.0 - 1e-9) + slopes = [] + for u in np.unique(a): + sel = free & (a == u) + if sel.sum() >= 3: + assert np.corrcoef(d_um[sel], cv[sel])[0, 1] > 0.9999 + slopes.append(np.polyfit(d_um[sel], cv[sel], 1)[0]) + assert np.ptp(slopes) < 1e-9 + + +# Fibres of a small muscle (radius 3 mm, 20 units, seed 1) at evenly spaced fibre indices, stored as values +# rather than a hash of float bytes so that last-bit differences between platforms do not fail the test. +REFERENCE_INDICES = [0, 1413, 2827, 4240, 5654, 7067, 8481, 9895] +REFERENCE_FIBRES = { + # Default model: independent log-normal diameters, Nandedkar & Stalberg line plus 0.2 m/s, as in 0.13.0 + # with the mm/um unit fix. + "independent": dict( + kw={}, + d_um=[56.34238382660647, 51.58253367532592, 46.3707025489695, 45.46069783475108, + 33.19107866716076, 44.573230829782865, 80.00000000000001, 42.65000327592993], + cv=[3.734535319916328, 3.804904588371462, 3.422200610932065, 3.550286142413758, + 2.595026007526017, 3.512092815395755, 4.978012609466153, 2.936726492241513], + sums=[509371.7252799411, 34845.050353542174, 1891535.0309199751], + ), + # Typed model without within-unit spread. + "typed_no_spread": dict( + kw={"fiber_model": "typed", "within_unit_fiber_diameter_log_sd": None}, + d_um=[66.77219954698421, 58.743157829196456, 63.52655760550686, 61.226787523119604, + 37.86102310760331, 62.22181655685925, 29.286352645372745, 43.177565794727656], + cv=[4.56143978382481, 4.415072227167105, 4.727232242590925, 4.487681901091421, + 3.4003698534009, 4.828684861117164, 2.871166973145793, 3.372563964823911], + sums=[558345.4393773584, 42691.145676895205, 2497788.7535994113], + ), +} + + +@pytest.mark.parametrize("model", sorted(REFERENCE_FIBRES)) +def test_fibre_models_are_reproducible(model): + ref = REFERENCE_FIBRES[model] set_random_seed(1) - m = _muscle(4) + m = _muscle(3, **ref["kw"]) + m.distribute_innervation_centers() m.generate_muscle_fiber_centers(verbose=False) + m.assign_mfs2mns(verbose=False, n_jobs=1) m._generate_fiber_properties() - d_um = np.asarray(m._muscle_fiber_diameters__mm.rescale(pq.mm)) * 1e3 - cv = np.asarray(m._muscle_fiber_conduction_velocities__mm_per_s.rescale(pq.m / pq.s)) + d_um = np.asarray(m.muscle_fiber_diameters__mm.rescale(pq.um).magnitude) + cv = np.asarray(m.muscle_fiber_conduction_velocities__mm_per_s.rescale(pq.m / pq.s).magnitude) + assert len(d_um) == 9896 + np.testing.assert_allclose(d_um[REFERENCE_INDICES], ref["d_um"], rtol=1e-9) + np.testing.assert_allclose(cv[REFERENCE_INDICES], ref["cv"], rtol=1e-9) + np.testing.assert_allclose([d_um.sum(), cv.sum(), (d_um * cv).sum()], ref["sums"], rtol=1e-9) - assert np.mean(np.isclose(cv, 2.0)) < 0.05 - assert np.median(cv) == pytest.approx(0.95 + 0.05 * np.median(d_um), abs=0.05) - assert np.corrcoef(d_um, cv)[0, 1] > 0.9 + +def test_default_fibre_model_does_not_warn(): + import warnings + + set_random_seed(1) + m = _muscle(3) + m.distribute_innervation_centers() + m.generate_muscle_fiber_centers(verbose=False) + m.assign_mfs2mns(verbose=False, n_jobs=1) + with warnings.catch_warnings(): + warnings.simplefilter("error") + m._generate_fiber_properties() + + +@pytest.mark.parametrize("kw", [ + {"mean_fiber_conduction_velocity__m_per_s": 4.32 * pq.m / pq.s}, + {"sd_fiber_conduction_velocity__m_per_s": 0.71 * pq.m / pq.s}, + {"motor_unit_conduction_velocities__m_per_s": np.full(20, 4.0)}, + {"type_i_fiber_fraction": 0.574}, + {"type_mean_fiber_diameters__um": (50.0, 67.0)}, + {"type_fiber_diameter_log_sd": 0.2}, + {"within_unit_fiber_diameter_log_sd": (0.08, 0.13)}, +]) +def test_typed_arguments_need_the_typed_model(kw): + with pytest.raises(ValueError, match="fiber_model='typed'"): + _muscle(3, **kw) + + +def test_unknown_fibre_model_raises(): + with pytest.raises(ValueError, match="fiber_model"): + _muscle(3, fiber_model="mixed") + + +def test_fibre_types_need_the_typed_model(): + set_random_seed(1) + m = _muscle(3) + m.distribute_innervation_centers() + m.generate_muscle_fiber_centers(verbose=False) + m.assign_mfs2mns(verbose=False, n_jobs=1) + m._generate_fiber_properties() + for name in ("motor_unit_fiber_types", "muscle_fiber_types", "fiber_type_ladder"): + with pytest.raises(ValueError, match="fiber_model='typed'"): + getattr(m, name) + + +def test_surface_emg_fibre_diameter_default_is_fdi_rms(): + """sqrt(0.574 * 50.0**2 + 0.426 * 67.0**2) = 57.9 um [polgar1973 p. 310 Table 2] [polgar1973 p. 312 Table 4].""" + import inspect + + from myogen.simulator import SurfaceEMG + + d = inspect.signature(SurfaceEMG.__init__).parameters["fiber_diameter__um"].default + assert d == pytest.approx(np.sqrt(0.574 * 50.0**2 + 0.426 * 67.0**2), abs=0.05) def _layout(radius__mm, density): @@ -53,3 +305,31 @@ def test_large_fibre_layouts_stay_circular(): ring = xy[r > 0.97 * 20] counts, _ = np.histogram(np.arctan2(ring[:, 1], ring[:, 0]), bins=16, range=(-np.pi, np.pi)) assert counts.min() > 0.5 * counts.mean() + + +def test_many_fibres_at_the_upper_cv_bound_warn(): + """More than 5 % of fibres clipped to 6 m/s warns and points to per-unit CVs.""" + with pytest.warns(UserWarning, match="motor_unit_conduction_velocities__m_per_s"): + _typed(mean_fiber_conduction_velocity__m_per_s=5.5 * pq.m / pq.s) + + +def test_few_fibres_at_the_upper_cv_bound_do_not_warn(): + import warnings + with warnings.catch_warnings(): + warnings.simplefilter("error") + _typed(mean_fiber_conduction_velocity__m_per_s=4.0 * pq.m / pq.s, + sd_fiber_conduction_velocity__m_per_s=0.4 * pq.m / pq.s) + + +@pytest.mark.parametrize("given", [ + np.linspace(3.5, 5.0, 20), # plain array, as cv_from_recruitment_force returns: m/s + np.linspace(3500.0, 5000.0, 20) * pq.mm / pq.s, # another velocity unit +]) +def test_unit_cvs_accept_plain_arrays_and_other_velocity_units(given): + reference = _cv_and_units(_typed(motor_unit_conduction_velocities__m_per_s=np.linspace(3.5, 5.0, 20) * pq.m / pq.s))[0] + np.testing.assert_allclose(_cv_and_units(_typed(motor_unit_conduction_velocities__m_per_s=given))[0], reference) + + +def test_unit_cvs_with_a_non_velocity_unit_raise(): + with pytest.raises(ValueError): + _typed(motor_unit_conduction_velocities__m_per_s=np.full(20, 4.0) * pq.mm) diff --git a/tests/test_surface_amplitude.py b/tests/test_surface_amplitude.py index 139e0fdd..4b007fc7 100644 --- a/tests/test_surface_amplitude.py +++ b/tests/test_surface_amplitude.py @@ -23,7 +23,7 @@ SIGMA = 0.3 # S/m, every layer SIGMA_I = 1.01 # S/m, intracellular conductivity (default) -DIAMETER = 0.05 # mm, fibre diameter (default) +DIAMETER = 0.0579 # mm, fibre diameter (default; FDI RMS diameter [polgar1973 p. 310 Table 2]) DU = 0.02 # mm diff --git a/tests/test_surface_dispersion.py b/tests/test_surface_dispersion.py index 5e246829..1ca2b899 100644 --- a/tests/test_surface_dispersion.py +++ b/tests/test_surface_dispersion.py @@ -5,6 +5,7 @@ muscle-fibre conduction velocity may vary per fibre. Every option defaults to off, and off must reproduce the undispersed model exactly. """ +import dataclasses import numpy as np import pytest import quantities as pq @@ -157,12 +158,12 @@ def muscle(): return _muscle() -def _realize(muscle, config, zones=None): +def _realize(muscle, config, zones=None, **kwargs): counts = np.asarray(muscle.resulting_number_of_innervated_fibers) zones = np.zeros(len(counts)) if zones is None else zones positions = [np.asarray(muscle.resulting_fiber_assignment(i)) for i in range(len(counts))] return realize_fiber_dispersion(config, positions, np.asarray(muscle.recruitment_thresholds), - zones, mean_cv__m_s=4.2) + zones, mean_cv__m_s=4.2, **kwargs) def test_default_config_is_the_undispersed_model(muscle): @@ -199,14 +200,59 @@ def test_fibre_cv_rises_linearly_with_recruitment_threshold(muscle): SurfaceFiberDispersion(fiber_cv_threshold_slope=0.6, fiber_cv_inter_mu_spread=0.3) +def test_fibre_cv_per_unit_sets_each_unit_mean_and_keeps_end_plates(muscle): + per_unit = tuple(3.5 + 0.1 * i for i in range(12)) + real = _realize(muscle, SurfaceFiberDispersion(nmj_model="two_layer", fiber_cv_per_unit__m_s=per_unit)) + ref = _realize(muscle, SurfaceFiberDispersion(nmj_model="two_layer")) + for mu, cv in enumerate(real.cv__m_s): + np.testing.assert_allclose(cv, per_unit[mu]) + np.testing.assert_array_equal(real.zi__mm[mu], ref.zi__mm[mu]) + with pytest.raises(ValueError): + SurfaceFiberDispersion(fiber_cv_per_unit__m_s=per_unit, fiber_cv_threshold_slope=0.63) + with pytest.raises(ValueError): + SurfaceFiberDispersion(fiber_cv_per_unit__m_s=(4.0, -1.0)) + with pytest.raises(ValueError): + _realize(muscle, SurfaceFiberDispersion(fiber_cv_per_unit__m_s=per_unit[:5])) + + def test_diameter_coupling_scales_source_with_cross_section(muscle): cfg = SurfaceFiberDispersion(fiber_cv_within_mu_cov=0.08, diameter_scales_source=True) real = _realize(muscle, cfg) big = max(range(12), key=lambda i: len(real.cv__m_s[i])) # Diameter from the CV line v = 0.95 m/s + 0.05 m/s/um * d (Nandedkar & Stalberg 1983) diameter__um = (real.cv__m_s[big] - 0.95) / 0.05 - np.testing.assert_allclose(real.amplitude_scale[big], (diameter__um / ((4.2 - 0.95) / 0.05)) ** 2) - assert real.report["diameter_mean__um"][big] == pytest.approx(np.mean(diameter__um)) + ratio = real.amplitude_scale[big] / real.amplitude_scale[big][0] + np.testing.assert_allclose(ratio, (diameter__um / diameter__um[0]) ** 2) + assert real.report["line_diameter_mean__um"][big] == pytest.approx(np.mean(diameter__um)) + + +def test_report_gives_the_effective_fibre_diameter(muscle): + """``diameter_mean__um`` is the diameter each fibre's source uses: the line diameter rescaled so + the muscle's root-mean-square equals ``fiber_diameter__um`` (the line diameter is reported apart).""" + cfg = SurfaceFiberDispersion(fiber_cv_within_mu_cov=0.08, diameter_scales_source=True) + real = _realize(muscle, cfg, fiber_diameter__um=57.9) + effective = [57.9 * np.sqrt(scale) for scale in real.amplitude_scale] + for mu, d in enumerate(effective): + assert real.report["diameter_mean__um"][mu] == pytest.approx(np.mean(d)) + assert np.sqrt(np.mean(np.concatenate(effective) ** 2)) == pytest.approx(57.9) + off = _realize(muscle, SurfaceFiberDispersion(fiber_cv_within_mu_cov=0.08), fiber_diameter__um=57.9) + np.testing.assert_allclose(off.report["diameter_mean__um"], 57.9) + assert np.all(np.isnan(_realize(muscle, cfg).report["diameter_mean__um"])) + + +@pytest.mark.parametrize("cfg", [ + dict(fiber_cv_within_mu_cov=0.08), + dict(fiber_cv_threshold_slope=0.63), + dict(fiber_cv_per_unit__m_s=tuple(3.5 + 0.1 * i for i in range(12))), +]) +def test_diameter_scaled_source_averages_one_over_the_muscle(muscle, cfg): + """The source factor is normalised over every fibre of the pool, so ``fiber_diameter__um`` + stays the population root-mean-square diameter and the CV line only sets the spread.""" + real = _realize(muscle, SurfaceFiberDispersion(diameter_scales_source=True, **cfg)) + assert np.mean(np.concatenate(real.amplitude_scale)) == pytest.approx(1.0) + diameter__um = (np.concatenate(real.cv__m_s) - 0.95) / 0.05 + np.testing.assert_allclose(np.concatenate(real.amplitude_scale), + diameter__um**2 / np.mean(diameter__um**2)) def test_intra_mu_scatter_keeps_each_motor_unit_anchor(muscle): @@ -298,7 +344,7 @@ def test_realisation_leaves_the_global_generator_untouched(muscle): # ---- SurfaceEMG integration --------------------------------------------------------- -def _semg(muscle, dispersion=None, mus=(4, 11)): +def _semg(muscle, dispersion=None, mus=(4, 11), **kw): array = SurfaceElectrodeArray(1, 1, 10 * pq.mm, 2.5 * pq.mm, center_point__mm_deg=(12 * pq.mm, 0 * pq.deg), bending_radius__mm=8.3 * pq.mm, @@ -306,7 +352,7 @@ def _semg(muscle, dispersion=None, mus=(4, 11)): set_random_seed(7) return SurfaceEMG(muscle, [array], sampling_frequency__Hz=2048 * pq.Hz, internal_sampling_frequency__Hz=2048 * pq.Hz, - MUs_to_simulate=list(mus), fiber_dispersion=dispersion) + MUs_to_simulate=list(mus), fiber_dispersion=dispersion, **kw) def _muaps(semg): @@ -384,3 +430,151 @@ def capture(self, **kwargs): np.testing.assert_allclose([s[1] for s in seen], arbor_sd) with pytest.raises(ValueError, match="nmj_coefficients"): IntramuscularEMG(muscle_model=muscle, electrode_array=electrode, nmj_coefficients="paper") + + +# ---- fibre properties from Muscle --------------------------------------------------- + +def test_muscle_fibre_source_is_active(): + assert SurfaceFiberDispersion(fiber_properties="muscle").active + + +@pytest.mark.parametrize("field, value", [("fiber_cv_threshold_slope", 0.63), ("fiber_cv_inter_mu_spread", 0.3), + ("fiber_cv_within_mu_cov", 0.05), ("fiber_cv_per_unit__m_s", (4.0,))]) +def test_muscle_fibre_source_rejects_surface_cv_options(field, value): + with pytest.raises(ValueError, match=field): + SurfaceFiberDispersion(fiber_properties="muscle", **{field: value}) + + +def test_fibre_property_source_must_be_known(): + with pytest.raises(ValueError, match="fiber_properties"): + SurfaceFiberDispersion(fiber_properties="x") + + +def test_muscle_candidate_preset(): + expected = dataclasses.replace(SurfaceFiberDispersion.literature_candidate(seed=3), fiber_properties="muscle", + fiber_cv_threshold_slope=0.0, fiber_cv_within_mu_cov=0.0, + diameter_scales_source=True) + assert SurfaceFiberDispersion.muscle_candidate(seed=3) == expected + + +def _muscle_arrays(muscle): + counts = np.asarray(muscle.resulting_number_of_innervated_fibers) + return [np.linspace(3, 5, n) for n in counts], [np.linspace(40, 80, n) for n in counts] + + +def test_muscle_source_uses_the_given_fibre_cvs(muscle): + cvs, ds = _muscle_arrays(muscle) + real = _realize(muscle, SurfaceFiberDispersion(fiber_properties="muscle"), fiber_cv__m_s=cvs, + fiber_diameters__um=ds, fiber_diameter__um=57.9) + for mu, cv in enumerate(cvs): + np.testing.assert_array_equal(real.cv__m_s[mu], cv) + if len(cv): + assert real.report["cv_mean__m_s"][mu] == pytest.approx(cv.mean(), rel=1e-12) + + +def test_muscle_source_scales_by_absolute_cross_section(muscle): + cvs, ds = _muscle_arrays(muscle) + real = _realize(muscle, SurfaceFiberDispersion(fiber_properties="muscle", diameter_scales_source=True), + fiber_cv__m_s=cvs, fiber_diameters__um=ds, fiber_diameter__um=50.0) + for mu, d in enumerate(ds): + np.testing.assert_allclose(real.amplitude_scale[mu], (d / 50.0) ** 2, rtol=1e-12) + if len(d): + assert real.report["diameter_mean__um"][mu] == pytest.approx(d.mean(), rel=1e-12) + assert np.isnan(real.report["line_diameter_mean__um"][mu]) + + +def test_muscle_source_without_scaling_keeps_unit_scale(muscle): + cvs, ds = _muscle_arrays(muscle) + real = _realize(muscle, SurfaceFiberDispersion(fiber_properties="muscle"), fiber_cv__m_s=cvs, + fiber_diameters__um=ds, fiber_diameter__um=57.9) + for scale in real.amplitude_scale: + np.testing.assert_array_equal(scale, np.ones(len(scale))) + + +def test_muscle_source_keeps_the_other_draws(muscle): + cvs, ds = _muscle_arrays(muscle) + common = dict(nmj_model="two_layer_intra", nerve_delays=True, tendon_end_band__mm=5.0, seed=5) + kw = dict(fiber_lengths__mm=[np.full(len(c), 50.0) for c in cvs], mean_fiber_length__mm=50.0) + config = _realize(muscle, SurfaceFiberDispersion(**common), **kw) + from_muscle = _realize(muscle, SurfaceFiberDispersion(fiber_properties="muscle", **common), + fiber_cv__m_s=cvs, fiber_diameters__um=ds, **kw) + for a, b in ((config.zi__mm, from_muscle.zi__mm), (config.delay__ms, from_muscle.delay__ms), + (config.end_plus__mm, from_muscle.end_plus__mm)): + for x, y in zip(a, b): + np.testing.assert_array_equal(x, y) + + +def test_muscle_source_needs_the_arrays(muscle): + cvs, ds = _muscle_arrays(muscle) + with pytest.raises(ValueError, match="fiber_cv__m_s"): + _realize(muscle, SurfaceFiberDispersion(fiber_properties="muscle")) + with pytest.raises(ValueError, match="fiber_diameters__um"): + _realize(muscle, SurfaceFiberDispersion(fiber_properties="muscle", diameter_scales_source=True), + fiber_cv__m_s=cvs, fiber_diameter__um=57.9) + short = [cv[:-1] if len(cv) else cv for cv in cvs] + with pytest.raises(ValueError, match="motor unit"): + _realize(muscle, SurfaceFiberDispersion(fiber_properties="muscle"), fiber_cv__m_s=short) + + +@pytest.fixture(scope="module") +def typed(): + muscle = _muscle() + muscle._generate_fiber_properties() + return muscle + + +def test_surface_emg_takes_each_fibre_from_muscle(typed): + semg = _semg(typed, SurfaceFiberDispersion(fiber_properties="muscle", diameter_scales_source=True)) + _muaps(semg) + report = semg.fiber_dispersion_report + cv = np.asarray(typed.muscle_fiber_conduction_velocities__mm_per_s.rescale(pq.m / pq.s).magnitude) + d = np.asarray(typed.muscle_fiber_diameters__mm.rescale(pq.um).magnitude) + for mu in range(len(typed.recruitment_thresholds)): + mask = typed.assignment == mu + if mask.any(): + assert report["cv_mean__m_s"][mu] == pytest.approx(cv[mask].mean(), rel=1e-12) + assert report["diameter_mean__um"][mu] == pytest.approx(d[mask].mean(), rel=1e-12) + + +def test_muscle_fibres_make_fibre_diameter_irrelevant(typed): + config = SurfaceFiberDispersion(fiber_properties="muscle", diameter_scales_source=True) + np.testing.assert_allclose(_muaps(_semg(typed, config, fiber_diameter__um=40.0)), + _muaps(_semg(typed, config, fiber_diameter__um=70.0)), rtol=1e-10, atol=0) + + +def test_muscle_fibres_change_the_muap(typed): + assert not np.allclose(_muaps(_semg(typed)), _muaps(_semg(typed, SurfaceFiberDispersion(fiber_properties="muscle")))) + + +def test_muscle_fibres_need_generated_properties(muscle): + with pytest.raises(ValueError, match="_generate_fiber_properties"): + _semg(muscle, SurfaceFiberDispersion(fiber_properties="muscle")).simulate_muaps(n_jobs=1, verbose=False, + use_gpu=False) + + +def test_window_check_scales_the_iap_tail_with_lambda(muscle): + config = SurfaceFiberDispersion(nerve_delays=True) + _muaps(_semg(muscle, config, mus=(11,), iap_kernel_length__mm=105.0)) + with pytest.raises(ValueError, match="iap_kernel_length__mm"): + _muaps(_semg(muscle, config, mus=(11,), iap_kernel_length__mm=105.0, iap_lambda__per_mm=0.4)) + + +def test_each_fibre_gets_its_own_muscle_values(typed, monkeypatch): + from myogen.simulator.core.emg.surface import surface_emg + + seen = {} + real = surface_emg.realize_fiber_dispersion + + def capture(config, positions, *args, **kwargs): + seen.update(positions=positions, **kwargs) + return real(config, positions, *args, **kwargs) + + monkeypatch.setattr(surface_emg, "realize_fiber_dispersion", capture) + _muaps(_semg(typed, SurfaceFiberDispersion(fiber_properties="muscle", diameter_scales_source=True))) + centres = np.asarray(typed.muscle_fiber_centers__mm.rescale(pq.mm).magnitude)[:, :2] + cv = np.asarray(typed.muscle_fiber_conduction_velocities__mm_per_s.rescale(pq.m / pq.s).magnitude) + d = np.asarray(typed.muscle_fiber_diameters__mm.rescale(pq.um).magnitude) + for mu, positions in enumerate(seen["positions"]): + index = [int(np.flatnonzero(np.all(centres == xy, axis=1))[0]) for xy in positions] + np.testing.assert_array_equal(seen["fiber_cv__m_s"][mu], cv[index]) + np.testing.assert_array_equal(seen["fiber_diameters__um"][mu], d[index]) From 3d3f1a95c45f3d30cce367519d1cc566cd099774 Mon Sep 17 00:00:00 2001 From: Devon Rohlf Date: Fri, 6 Nov 2026 12:59:08 +0100 Subject: [PATCH 2/6] feat(semg): surface EMG from Muscle fibres; FDI RMS fibre diameter SurfaceFiberDispersion(fiber_properties="muscle") takes every fibre's CV and diameter from Muscle (either fibre model). Per-unit CVs, a source scaled by d^2 normalised over the muscle, and SurfaceEMG fiber_diameter__um 50 -> 57.9 um (FDI RMS, Polgar 1973). --- .../simulator/core/emg/surface/surface_emg.py | 2 +- tests/test_surface_dispersion.py | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/myogen/simulator/core/emg/surface/surface_emg.py b/myogen/simulator/core/emg/surface/surface_emg.py index e839899f..266251f1 100644 --- a/myogen/simulator/core/emg/surface/surface_emg.py +++ b/myogen/simulator/core/emg/surface/surface_emg.py @@ -50,7 +50,7 @@ class SurfaceEMG: This class provides a simulation framework for generating surface electromyography signals from the muscle. It implements the - multi-layered cylindrical volume conductor model from Farina et al. 2004 [1] [farina2004]. + multi-layered cylindrical volume conductor model from Farina et al. 2004 [farina2004]. Parameters ---------- diff --git a/tests/test_surface_dispersion.py b/tests/test_surface_dispersion.py index 1ca2b899..a69d87a7 100644 --- a/tests/test_surface_dispersion.py +++ b/tests/test_surface_dispersion.py @@ -140,13 +140,13 @@ def test_delay_moves_the_signal_by_the_requested_time(): # ---- realisation -------------------------------------------------------------------- -def _muscle(): +def _muscle(**kw): set_random_seed(42) thresholds, _ = RecruitmentThresholds(N=12, recruitment_range__ratio=30, mode="fuglevand") muscle = Muscle(thresholds, radius__mm=6 * pq.mm, length__mm=60 * pq.mm, fiber_density__fibers_per_mm2=6 * pq.mm**-2, mean_fiber_length__mm=50 * pq.mm, var_fiber_length__mm=2 * pq.mm, radius_bone__mm=0 * pq.mm, - fat_thickness__mm=1 * pq.mm) + fat_thickness__mm=1 * pq.mm, **kw) muscle.distribute_innervation_centers() muscle.generate_muscle_fiber_centers(verbose=False) muscle.assign_mfs2mns(verbose=False, n_jobs=1) @@ -518,11 +518,24 @@ def test_muscle_source_needs_the_arrays(muscle): @pytest.fixture(scope="module") def typed(): - muscle = _muscle() + muscle = _muscle(fiber_model="typed") muscle._generate_fiber_properties() return muscle +def test_surface_emg_takes_independent_fibres_from_muscle_too(): + """``fiber_properties="muscle"`` needs only fibre diameters and CVs, which the default model also gives.""" + muscle = _muscle() + muscle._generate_fiber_properties() + semg = _semg(muscle, SurfaceFiberDispersion(fiber_properties="muscle", diameter_scales_source=True), + iap_kernel_length__mm=250.0) + _muaps(semg) + cv = np.asarray(muscle.muscle_fiber_conduction_velocities__mm_per_s.rescale(pq.m / pq.s).magnitude) + for mu in (4, 11): + mask = muscle.assignment == mu + assert semg.fiber_dispersion_report["cv_mean__m_s"][mu] == pytest.approx(cv[mask].mean(), rel=1e-12) + + def test_surface_emg_takes_each_fibre_from_muscle(typed): semg = _semg(typed, SurfaceFiberDispersion(fiber_properties="muscle", diameter_scales_source=True)) _muaps(semg) From 7cacc7aa5580ade813871864718372d3e1a32971 Mon Sep 17 00:00:00 2001 From: Devon Rohlf Date: Fri, 6 Nov 2026 12:59:08 +0100 Subject: [PATCH 3/6] bench(semg): FDI fibre-model arms with vendored spike and unit-CV inputs Arms use the typed fibre model. All inputs live under spikes/ and unit_cv/ and resolve relative to the benchmark directory. --- benchmarks/semg_dispersion/gen_arm.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/benchmarks/semg_dispersion/gen_arm.py b/benchmarks/semg_dispersion/gen_arm.py index bdf867cf..88c6b698 100644 --- a/benchmarks/semg_dispersion/gen_arm.py +++ b/benchmarks/semg_dispersion/gen_arm.py @@ -85,7 +85,10 @@ def _local(path): kernel_override = config.pop("_iap_kernel_length__mm", None) within_cov = config.pop("_muscle_cv_within_cov", None) mean_cv = config.pop("_mean_cv__m_s", None) -cv_kw = {} if mean_cv is None else {"mean_conduction_velocity__m_per_s": mean_cv * pq.m / pq.s} +# The arms were generated with the typed fibre model (fibre types by unit, Polgar diameters). +cv_kw = {"fiber_model": "typed"} +if mean_cv is not None: + cv_kw["mean_conduction_velocity__m_per_s"] = mean_cv * pq.m / pq.s unit_cv_file = config.pop("_muscle_unit_cv_file", None) if unit_cv_file is not None: cv_kw["motor_unit_conduction_velocities__m_per_s"] = np.asarray(json.load(open(_local(unit_cv_file)))["cv__m_s"]) * pq.m / pq.s From e6a455542c1f995933deafc0345a47575acb1b69 Mon Sep 17 00:00:00 2001 From: Devon Rohlf Date: Sat, 7 Nov 2026 09:27:35 +0100 Subject: [PATCH 4/6] docs: changelog and literature register for the fibre model --- CHANGELOG.md | 16 +++++-- docs/literature.md | 46 ++++++++++----------- myogen/simulator/core/muscle/fiber_types.py | 3 +- 3 files changed, 36 insertions(+), 29 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98ffa7d0..7ba7f9e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 This is a breaking release. It corrects the surface-EMG pipeline against Farina, Mesin, Martina & Merletti (2004). The problems were found through feedback from @joaohbbittar; thank you. Both the default route and `execution=` are affected. -It also ports three fixes that never reached `main` (Gfluctdv noise, fibre conduction velocities, large fibre layouts), corrects the units of the intramuscular SFAP and adds the multilevel descending-drive optimiser used to calibrate an FDI pool. +It also ports three fixes that never reached `main` (Gfluctdv noise, fibre conduction velocities, large fibre layouts), corrects the units of the intramuscular SFAP and adds the multilevel descending-drive optimiser used to calibrate an FDI pool and an opt-in fibre model typed by motor unit. ### Breaking changes @@ -22,6 +22,7 @@ This release changes default outputs; regenerate anything calibrated against ear - Pools that call `insert_Gfluctdv()` now produce noisy discharge: spike trains change, and descending-drive parameters fitted while the noise was silent should be refitted. - iEMG outputs change through the fibre conduction velocities (mean ~2.0 → ~3.45 m/s at the default diameter). Muscles with more than ~313 000 fibres get a different, now circular, fibre layout. - iEMG amplitudes, shapes and spectra change through the SFAP unit fixes (typically 20–50× larger at a fine wire). Anything tuned against earlier iEMG amplitudes, including `add_noise` floors given in absolute units, must be redone. Values are in mV. +- Default sEMG amplitudes rise 34 % through the 57.9 µm fibre diameter; pass `fiber_diameter__um=50` to `SurfaceEMG` to keep the earlier source. - iEMG outputs change through the narrower end-plate spreads. Pass `IntramuscularEMG(..., nmj_coefficients="reference_code")` to reproduce earlier end-plates. ### Fixed @@ -51,16 +52,22 @@ This release changes default outputs; regenerate anything calibrated against ear ### Added -- `SurfaceEMG(fiber_diameter__um=50, intracellular_conductivity__S_m=1.01)` set the source strength; amplitude scales with the fibre cross-section. +- `SurfaceEMG(fiber_diameter__um=57.9, intracellular_conductivity__S_m=1.01)` set the source strength; amplitude scales with the fibre cross-section. - `SurfaceEMG(iap_lambda__per_mm=1.0)` sets the length scale of the Rosenfalck IAP, `Vm = 96 (λz)³ e^{−λz} − 90` mV. The default, 1 / mm, is the published value and leaves outputs unchanged. Values below 1 stretch the IAP, lower the MUAP's spectral content and raise surface amplitude. On the FDI defaults, λ = 0.7 matched the median frequency (~175 vs ~165 Hz measured) and adjacent-pin RMS of the Delsys recordings of Botelho et al. (2019) at 25 % MVC; λ = 1 gives ~200 Hz. Botelho et al. used 0.5 in their own FE model for the same reason. Any value other than 1 is a fitted modelling assumption, from one subject. Supported on the default and `execution=` routes; `use_unified=True` refuses λ ≠ 1. - **Fibre dispersion in surface EMG.** `SurfaceEMG(fiber_dispersion=SurfaceFiberDispersion(...))` adds, each switched on independently: - per-fibre end-plates from the two-layer nerve model of Akhmadeev et al. (2020), shared with intramuscular EMG; - axon-branch conduction delays; - - motor-unit conduction velocity linear in recruitment threshold (Del Vecchio et al. 2017), and a spread of fibre velocities within each unit, each fibre propagating at its own velocity; - - a source scaled by fibre diameter (from the Nandedkar & Stålberg 1983 velocity–diameter line); + - motor-unit conduction velocity linear in recruitment threshold (Del Vecchio et al. 2018) [delvecchio2018 p. 2], or set per unit with `fiber_cv_per_unit__m_s` (e.g. mapped from each unit's recruitment force), and a spread of fibre velocities within each unit, each fibre propagating at its own velocity; + - a source scaled by fibre diameter squared (diameter from the Nandedkar & Stålberg 1983 velocity–diameter line), normalised to average 1 over the muscle so that `fiber_diameter__um` stays the population RMS diameter; `fiber_dispersion_report["diameter_mean__um"]` gives each unit's effective diameter and `line_diameter_mean__um` the raw line value; - tendon-end stagger: each fibre end in a band, independently or following a smooth random field across the cross-section so that neighbouring fibres end close together. The realised spreads are reported per motor unit in `SurfaceEMG.fiber_dispersion_report`. The default is off and leaves outputs bit-identical. `SurfaceFiberDispersion.literature_candidate()` gives a preset whose values come from the literature or are marked as assumptions. The `execution=` route and `use_unified=True` refuse an active configuration. +- **Surface EMG can use the `Muscle` fibres.** `SurfaceFiberDispersion(fiber_properties="muscle")` takes every fibre's conduction velocity and diameter from `Muscle` (the fibres intramuscular EMG uses; typed by motor unit with `fiber_model="typed"`) instead of building surface-only CVs; with `diameter_scales_source=True` each source scales with its own absolute cross-section, so `fiber_diameter__um` has no effect. Cannot be combined with the surface CV options (threshold slope, inter-unit spread, per-unit CVs, within-unit spread). Preset `SurfaceFiberDispersion.muscle_candidate()`. Opt-in; defaults unchanged. The dispersion window check now lengthens the IAP tail with `1 / iap_lambda__per_mm`. On the Botelho et al. (2019) FDI benchmark this mode, with the typed model and per-unit CVs from recruitment force, matches the median frequency at λ ≈ 0.63 (documented under `iap_lambda__per_mm`; default stays 1). +- **Fibre types by motor unit (`Muscle(fiber_model="typed")`).** Opt-in; the default, `fiber_model="independent"`, keeps the fibres of the fix above (one log-normal diameter per fibre, the CV line plus 0.2 m/s), and the typed-model arguments below raise without `fiber_model="typed"`. With the typed model `_generate_fiber_properties()` needs `assign_mfs2mns()` first (`autorun=True` already orders them). + - Every unit has one fibre type (`Muscle.motor_unit_fiber_types`, `muscle_fiber_types`): units in recruitment order are type I until they hold 57.4 % of fibres (FDI, Polgar et al. 1973; strict order is a simplification of Garnett et al. 1979). In the default FDI muscle 102 of 120 units are type I, because fibres concentrate in the large late units. + - Unit mean diameters rise with threshold along one ladder across the pool (`myogen.simulator.core.muscle.fiber_types`), with type means 50.0 / 67.0 µm (`type_mean_fiber_diameters__um`, Polgar et al. 1973). One ladder rather than one per type, because per-type ladders made conduction velocity drop at the type boundary against the linear CV–threshold relation (Del Vecchio et al. 2018). + - The spread of diameters inside a unit is set per type, `within_unit_fiber_diameter_log_sd=(0.08, 0.13)` (type I, type II; cat TA fibre-area CoV within units, Martin et al. 1988). Fibre CV follows diameter on one Nandedkar & Stålberg line; `mean_fiber_conduction_velocity__m_per_s` / `sd_fiber_conduction_velocity__m_per_s` (4.32 ± 0.71 m/s, the HD-sEMG CV of all tibialis anterior units up to 70 % MVC, Del Vecchio et al. 2018) hold over unit means, each unit once, as measured. `within_unit_fiber_diameter_log_sd=None` drops the per-type spread and rescales the line plus 0.2 m/s scatter over fibres instead. + - `motor_unit_conduction_velocities__m_per_s` sets each unit's mean CV, e.g. from recruitment force through `myogen.utils.ramp_analysis.cv_from_recruitment_force`; within a unit CV keeps the line's slope. In the default FDI muscle the 4.32 ± 0.71 m/s fallback puts ~15 % of fibres at the 6 m/s bound (large units stretched by an SD over mostly small units) and warns when more than 5 % are clipped; per-unit CVs from recruitment force put 1 % there. On the Botelho FDI benchmark with per-unit CVs, typed fibres match the median frequency at λ ≈ 0.63 with RMS inside Botelho's range. - `IntramuscularEMG(nmj_coefficients=...)` selects the end-plate spreads (see Changed). - `ForceModel(force_frequency_shape=(a, c))`: shape of the force-frequency saturation S(r) = 1 − exp(−a r^c) in the Fuglevand gain. The default (2, 3) is Fuglevand et al. 1993 and leaves outputs unchanged. `force_utils.HUMAN_UNIT_FORCE_FREQUENCY` (0.93, 1.29) is fitted to human single motor units stimulated through their axons (Macefield et al. 1996, Fuglevand et al. 1999, McNulty et al. 2000): units keep gaining force up to ~30–50 Hz, where Fuglevand's curve saturates by ~20 Hz for slow units. It also gives the measured twitch:tetanus ratio (0.23; Fuglevand 0.11). - **Multilevel descending-drive optimiser.** `examples/02_finetune/06_optimize_dd_multilevel.py` fits the descending-drive network (and the Gfluctdv noise scale) to rate-coding targets over a trapezoidal ramp, sequentially or with parallel Optuna workers. Supporting modules: `myogen.utils.fr_optimization_targets` (Fuglevand, De Luca and experimental targets), `myogen.utils.ramp_analysis` and `myogen.utils.parallel_budget` (worker count from free RAM and CPUs). @@ -79,6 +86,7 @@ This release changes default outputs; regenerate anything calibrated against ear - **End-plate spreads in intramuscular EMG.** The two-layer end-plate model now uses the spreads printed in Akhmadeev et al. (2020, eq. 5-6) instead of the 1.5–2× wider values of their reference code: branch-point SD 1.0 + 2.5·s mm (was 1.5 + 4.0·s) and arborisation SD 0.25 + 1.0·s mm (was 0.5 + 1.5·s), with s the share of total threshold below the unit. In the sEMG limb sweep the realised within-unit end-plate SD fell from a median of 1.68 mm to 1.07 mm. iEMG MUAPs and signals change. - Citation corrected: the two-layer end-plate and recruitment-threshold model cited as "Konstantin et al. 2020" is Akhmadeev, Yu, Le Carpentier, Aoustin & Farina (2020); Konstantin is the first author's given name. The `konstantin` threshold mode keeps its name. +- **Default surface fibre diameter (FDI).** `SurfaceEMG(fiber_diameter__um)` 50 → 57.9 µm, the root-mean-square FDI diameter from Polgar et al. (1973): type I 50.0 µm, type II 67.0 µm, 57.4 % type I. The RMS is the right single value because the source scales with d². Default surface amplitudes rise by (57.9/50)² = 1.34; see Breaking changes. `Muscle` fibres are unchanged unless `fiber_model="typed"`. - `Muscle.var_fiber_length__mm` is documented as the half-width of a uniform fibre-length variation (the FDI value of Jacobson et al. 1992), not a variance. Behaviour is unchanged. ## [0.13.0] - 2026-10-28 diff --git a/docs/literature.md b/docs/literature.md index fb15bded..fce12ef2 100644 --- a/docs/literature.md +++ b/docs/literature.md @@ -43,20 +43,20 @@ To add a source: add it to the table in `scripts/build_literature.py`, link it f | Source | Status | Use | What it supports | Used in | |---|---|---|---|---| -|
**farina2004**: Farina D, Mesin L, Martina S, Merletti R (2004). A surface EMG generation model with multilayer cylindrical description of the volume conductor. IEEE Trans Biomed Eng 51(3):415–426. [doi:10.1109/TBME.2003.820998](https://doi.org/10.1109/TBME.2003.820998) | FT | ADOPTED | The sEMG volume conductor; reference for the notebook fixes (bipolar B(k_z), MUAP time axis, IAP z axis, fibre semi-lengths, amplitude). Layer σ (skin 1, fat 0.05, muscle 0.5/0.1 S/m) given without source. | [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py), [simulate_fiber](../myogen/simulator/core/emg/surface/simulate_fiber.py), [Muscle](../myogen/simulator/core/muscle/muscle.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [electrodes.py:189](../myogen/simulator/core/emg/electrodes.py#L189), [electrodes.py:323](../myogen/simulator/core/emg/electrodes.py#L323), [electrodes.py:328](../myogen/simulator/core/emg/electrodes.py#L328), [electrodes.py:335](../myogen/simulator/core/emg/electrodes.py#L335), [electrodes.py:340](../myogen/simulator/core/emg/electrodes.py#L340), [fiber_simulation.py:11](../myogen/simulator/core/emg/fiber_simulation.py#L11), [fiber_simulation.py:115](../myogen/simulator/core/emg/fiber_simulation.py#L115), [fiber_simulation.py:418](../myogen/simulator/core/emg/fiber_simulation.py#L418), [bioelectric.py:7](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L7), [volume_conductor.py:1](../myogen/simulator/core/emg/surface/volume_conductor.py#L1), [volume_conductor.py:97](../myogen/simulator/core/emg/surface/volume_conductor.py#L97), [volume_conductor.py:140](../myogen/simulator/core/emg/surface/volume_conductor.py#L140) | -| **roeleveld1997**: Roeleveld K, Blok JH, Stegeman DF, van Oosterom A (1997). Volume conduction models for surface EMG; confrontation with measurements. J Electromyogr Kinesiol 7(4):221–232. [doi:10.1016/S1050-6411(97)00009-6](https://doi.org/10.1016/S1050-6411(97)00009-6) | FT | ADOPTED | Provenance of skin σ = 1 S/m: a fitted effective value reproducing biceps MUAP fall-off (52 MUs), not a measurement. Replicated in the Roeleveld bench. | [Muscle](../myogen/simulator/core/muscle/muscle.py), [Roeleveld bench](../benchmarks/semg_roeleveld1997/README.md), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md) | +| **farina2004**: Farina D, Mesin L, Martina S, Merletti R (2004). A surface EMG generation model with multilayer cylindrical description of the volume conductor. IEEE Trans Biomed Eng 51(3):415–426. [doi:10.1109/TBME.2003.820998](https://doi.org/10.1109/TBME.2003.820998) | FT | ADOPTED | The sEMG volume conductor; reference for the notebook fixes (bipolar B(k_z), MUAP time axis, IAP z axis, fibre semi-lengths, amplitude). Layer σ (skin 1, fat 0.05, muscle 0.5/0.1 S/m) given without source. | [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py), [simulate_fiber](../myogen/simulator/core/emg/surface/simulate_fiber.py), [Muscle](../myogen/simulator/core/muscle/muscle.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [electrodes.py:189](../myogen/simulator/core/emg/electrodes.py#L189), [electrodes.py:323](../myogen/simulator/core/emg/electrodes.py#L323), [electrodes.py:328](../myogen/simulator/core/emg/electrodes.py#L328), [electrodes.py:335](../myogen/simulator/core/emg/electrodes.py#L335), [electrodes.py:340](../myogen/simulator/core/emg/electrodes.py#L340), [fiber_simulation.py:11](../myogen/simulator/core/emg/fiber_simulation.py#L11), [fiber_simulation.py:115](../myogen/simulator/core/emg/fiber_simulation.py#L115), [fiber_simulation.py:418](../myogen/simulator/core/emg/fiber_simulation.py#L418), [bioelectric.py:7](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L7), [simulate_fiber.py:107](../myogen/simulator/core/emg/surface/simulate_fiber.py#L107), [simulate_fiber.py:184](../myogen/simulator/core/emg/surface/simulate_fiber.py#L184), [simulate_fiber.py:452](../myogen/simulator/core/emg/surface/simulate_fiber.py#L452), [surface_emg.py:53](../myogen/simulator/core/emg/surface/surface_emg.py#L53), [surface_emg.py:148](../myogen/simulator/core/emg/surface/surface_emg.py#L148), [volume_conductor.py:1](../myogen/simulator/core/emg/surface/volume_conductor.py#L1), [volume_conductor.py:97](../myogen/simulator/core/emg/surface/volume_conductor.py#L97), [volume_conductor.py:140](../myogen/simulator/core/emg/surface/volume_conductor.py#L140), [muscle.py:133](../myogen/simulator/core/muscle/muscle.py#L133), [muscle.py:231](../myogen/simulator/core/muscle/muscle.py#L231), [muscle.py:283](../myogen/simulator/core/muscle/muscle.py#L283) | +| **roeleveld1997**: Roeleveld K, Blok JH, Stegeman DF, van Oosterom A (1997). Volume conduction models for surface EMG; confrontation with measurements. J Electromyogr Kinesiol 7(4):221–232. [doi:10.1016/S1050-6411(97)00009-6](https://doi.org/10.1016/S1050-6411(97)00009-6) | FT | ADOPTED | Provenance of skin σ = 1 S/m: a fitted effective value reproducing biceps MUAP fall-off (52 MUs), not a measurement. Replicated in the Roeleveld bench. | [Muscle](../myogen/simulator/core/muscle/muscle.py), [Roeleveld bench](../benchmarks/semg_roeleveld1997/README.md), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [muscle.py:232](../myogen/simulator/core/muscle/muscle.py#L232), [muscle.py:234](../myogen/simulator/core/muscle/muscle.py#L234), [muscle.py:290](../myogen/simulator/core/muscle/muscle.py#L290) | | **roeleveld1997b**: Roeleveld K et al. (1997), companion JEK paper on MUAP spread / exponents (details unverified). | LINK | CONTEXT | Source of the depth/lateral fall-off regression used in the bench; not read. | [Roeleveld bench](../benchmarks/semg_roeleveld1997/README.md) | -| **blok2002**: Blok JH, Stegeman DF, van Oosterom A (2002). Three-layer volume conductor model and software package for applications in surface electromyography. Ann Biomed Eng 30:566–577. [doi:10.1114/1.1475345](https://doi.org/10.1114/1.1475345) | FT | CONTEXT | Skin 1.0 S/m 'taken from Roeleveld'; calls it 'somewhat ambiguous'. σi 0.5 S/m, d 50 µm (source-strength comparison). | [Muscle](../myogen/simulator/core/muscle/muscle.py) | -| **lowery2002**: Lowery MM, Stoykov NS, Taflove A, Kuiken TA (2002). A multiple-layer finite-element model of the surface EMG signal. IEEE Trans Biomed Eng 49(5):446–454. [doi:10.1109/10.995683](https://doi.org/10.1109/10.995683) | FT | CONTEXT | Counterpoint: measured skin 4.55e-4 S/m (Gabriel 1996); Roeleveld's skin 'considerably higher than measured'. σi 1.01 S/m (Table I). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py) | +| **blok2002**: Blok JH, Stegeman DF, van Oosterom A (2002). Three-layer volume conductor model and software package for applications in surface electromyography. Ann Biomed Eng 30:566–577. [doi:10.1114/1.1475345](https://doi.org/10.1114/1.1475345) | FT | CONTEXT | Skin 1.0 S/m 'taken from Roeleveld'; calls it 'somewhat ambiguous'. σi 0.5 S/m, d 50 µm (source-strength comparison). | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:232](../myogen/simulator/core/muscle/muscle.py#L232), [muscle.py:235](../myogen/simulator/core/muscle/muscle.py#L235), [muscle.py:291](../myogen/simulator/core/muscle/muscle.py#L291) | +| **lowery2002**: Lowery MM, Stoykov NS, Taflove A, Kuiken TA (2002). A multiple-layer finite-element model of the surface EMG signal. IEEE Trans Biomed Eng 49(5):446–454. [doi:10.1109/10.995683](https://doi.org/10.1109/10.995683) | FT | CONTEXT | Counterpoint: measured skin 4.55e-4 S/m (Gabriel 1996); Roeleveld's skin 'considerably higher than measured'. σi 1.01 S/m (Table I). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py)
Cited at: [muscle.py:237](../myogen/simulator/core/muscle/muscle.py#L237), [muscle.py:292](../myogen/simulator/core/muscle/muscle.py#L292) | | **farinarainoldi1999**: Farina D, Rainoldi A (1999). Compensation of the effect of sub-cutaneous tissue layers on surface EMG: a simulation study. Med Eng Phys 21:487–496. [doi:10.1016/S1350-4533(99)00075-2](https://doi.org/10.1016/S1350-4533(99)00075-2) | FT | CONTEXT | Skin/fat ratio 20 (7 also tested), fat/muscle 0.5, cited to Roeleveld (EEG abstract), Geddes & Baker, Gootzen. 20 × 0.05 = 1 S/m. | — | -| **farinamerletti2001**: Farina D, Merletti R (2001). A novel approach for precise simulation of the EMG signal detected by surface electrodes. IEEE Trans Biomed Eng 48(6):637–646. [doi:10.1109/10.923782](https://doi.org/10.1109/10.923782) · [PMID 11396594](https://pubmed.ncbi.nlm.nih.gov/11396594/) | FT | CONTEXT | Same conductivity ratios; IAP 96 mV/mm³ with λ = 1 / mm. | [simulate_fiber](../myogen/simulator/core/emg/surface/simulate_fiber.py)
Cited at: [bioelectric.py:12](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L12), [bioelectric.py:232](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L232) | +| **farinamerletti2001**: Farina D, Merletti R (2001). A novel approach for precise simulation of the EMG signal detected by surface electrodes. IEEE Trans Biomed Eng 48(6):637–646. [doi:10.1109/10.923782](https://doi.org/10.1109/10.923782) · [PMID 11396594](https://pubmed.ncbi.nlm.nih.gov/11396594/) | FT | CONTEXT | Same conductivity ratios; IAP 96 mV/mm³ with λ = 1 / mm. | [simulate_fiber](../myogen/simulator/core/emg/surface/simulate_fiber.py)
Cited at: [bioelectric.py:12](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L12), [bioelectric.py:232](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L232), [simulate_fiber.py:463](../myogen/simulator/core/emg/surface/simulate_fiber.py#L463) | | **merlettifarina2016**: Merletti R, Farina D (eds) (2016). Surface Electromyography: Physiology, Engineering and Applications. Wiley-IEEE Press (ch. 8, Lowery). | FT | CONTEXT | §8.6.3 gives muscle 0.093–0.8 and fat 0.02–0.1 S/m with sources, but no skin value. | — | -| **botelho2019**: Pereira Botelho D, Curran K, Lowery MM (2019). Anatomically accurate model of EMG during index finger flexion and abduction derived from diffusion tensor imaging. PLoS Comput Biol 15(8):e1007267. [doi:10.1371/journal.pcbi.1007267](https://doi.org/10.1371/journal.pcbi.1007267) · [PMC6738720](https://pmc.ncbi.nlm.nih.gov/articles/PMC6738720/) | FT + FIG | CONTEXT | Main FDI comparator, measured: RMS 0.21 mV at 25 % MVC (IQR 0.19–0.26), MDF ~165 Hz (IQR 152–185), one subject, Delsys 5-pin. Existing muscle/fat σ defaults. Rejected as defaults: dry skin 4.88e-4 S/m; Rosenfalck α 0.5 (precedent for the optional λ). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py), [CHANGELOG](../CHANGELOG.md) | -| **gabriel1996**: Gabriel S, Lau RW, Gabriel C (1996). The dielectric properties of biological tissues (series). Phys Med Biol 41. | SEC | CONTEXT | Dry skin ~2–5e-4 S/m; source of Lowery's and Botelho's skin values. | [Muscle](../myogen/simulator/core/muscle/muscle.py) | +| **botelho2019**: Pereira Botelho D, Curran K, Lowery MM (2019). Anatomically accurate model of EMG during index finger flexion and abduction derived from diffusion tensor imaging. PLoS Comput Biol 15(8):e1007267. [doi:10.1371/journal.pcbi.1007267](https://doi.org/10.1371/journal.pcbi.1007267) · [PMC6738720](https://pmc.ncbi.nlm.nih.gov/articles/PMC6738720/) | FT + FIG | CONTEXT | Main FDI comparator, measured: RMS 0.21 mV at 25 % MVC (IQR 0.19–0.26), MDF ~165 Hz (IQR 152–185), one subject, Delsys 5-pin. Existing muscle/fat σ defaults. Rejected as defaults: dry skin 4.88e-4 S/m; Rosenfalck α 0.5 (precedent for the optional λ). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [surface_emg.py:108](../myogen/simulator/core/emg/surface/surface_emg.py#L108), [surface_emg.py:112](../myogen/simulator/core/emg/surface/surface_emg.py#L112), [surface_emg.py:118](../myogen/simulator/core/emg/surface/surface_emg.py#L118), [surface_emg.py:335](../myogen/simulator/core/emg/surface/surface_emg.py#L335), [muscle.py:148](../myogen/simulator/core/muscle/muscle.py#L148), [muscle.py:225](../myogen/simulator/core/muscle/muscle.py#L225), [muscle.py:227](../myogen/simulator/core/muscle/muscle.py#L227), [muscle.py:229](../myogen/simulator/core/muscle/muscle.py#L229), [muscle.py:238](../myogen/simulator/core/muscle/muscle.py#L238), [muscle.py:289](../myogen/simulator/core/muscle/muscle.py#L289) | +| **gabriel1996**: Gabriel S, Lau RW, Gabriel C (1996). The dielectric properties of biological tissues (series). Phys Med Biol 41. | SEC | CONTEXT | Dry skin ~2–5e-4 S/m; source of Lowery's and Botelho's skin values. | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:237](../myogen/simulator/core/muscle/muscle.py#L237) | | **itis**: Baumgartner C, Hasgall PA, Di Gennaro F, Neufeld E, Lloyd B, Gosselin MC, Payne D, Klingenböck A, Kuster N (2025). IT'IS Database for thermal and electromagnetic parameters of biological tissues, Version 5.0 (low-frequency conductivity table). [doi:10.13099/VIP21000-05-0](https://doi.org/10.13099/VIP21000-05-0) | FT | CONTEXT | Low-frequency skin 0.148 ± 0.042 S/m (7 studies, 0.057–0.25; the entry pools dry skin and epidermis/dermis, and the site advises caution). The 0.15 S/m of the calibration argument for 1 S/m; 0.15 S/m in the cylinder gives about 2.5–4× too much amplitude. | [Muscle](../myogen/simulator/core/muscle/muscle.py) | | **dideriksen2019**: Dideriksen JL, Farina D (2019). PLoS Comput Biol (amplitude cancellation and neural drive; title unverified). | FT | CONTEXT | Uses skin 2 mm / 1 S/m, attributed to 'a previously proposed model'. | — | | **hodgkinnakajima1972**: Hodgkin AL, Nakajima S (1972). The effect of diameter on the electrical constants of frog skeletal muscle fibres. J Physiol 221:105. [doi:10.1113/jphysiol.1972.sp009742](https://doi.org/10.1113/jphysiol.1972.sp009742) | ABS | CONTEXT | Gi 0.59 S/m at 20 °C (≈1.0 S/m at 37 °C, Q10 1.37, our arithmetic): supports σi = 1.01 S/m in the line-source strength. | [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py) | -| **rosenfalck1969**: Rosenfalck P (1969). Intra- and extracellular potential fields of active nerve and muscle fibres. Acta Physiol Scand Suppl 321. [PMID 5383732](https://pubmed.ncbi.nlm.nih.gov/5383732/) | SEC | ADOPTED | IAP Vm = 96 (λz)³ e^(−λz) − 90 mV, λ = 1 / mm (default; Devon 2026-11-01). λ exposed as SurfaceEMG(iap_lambda__per_mm). FDI fit λ 0.7 documented, not adopted. | [simulate_fiber](../myogen/simulator/core/emg/surface/simulate_fiber.py), [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [fiber_simulation.py:5](../myogen/simulator/core/emg/fiber_simulation.py#L5), [fiber_simulation.py:10](../myogen/simulator/core/emg/fiber_simulation.py#L10), [fiber_simulation.py:40](../myogen/simulator/core/emg/fiber_simulation.py#L40), [fiber_simulation.py:287](../myogen/simulator/core/emg/fiber_simulation.py#L287), [fiber_simulation.py:330](../myogen/simulator/core/emg/fiber_simulation.py#L330), [fiber_simulation.py:389](../myogen/simulator/core/emg/fiber_simulation.py#L389), [fiber_simulation.py:553](../myogen/simulator/core/emg/fiber_simulation.py#L553), [fiber_simulation.py:568](../myogen/simulator/core/emg/fiber_simulation.py#L568), [bioelectric.py:8](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L8), [bioelectric.py:13](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L13), [bioelectric.py:25](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L25), [bioelectric.py:48](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L48), [bioelectric.py:76](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L76), [test_iemg_sfap_units.py:4](../tests/test_iemg_sfap_units.py#L4), [test_iemg_sfap_units.py:5](../tests/test_iemg_sfap_units.py#L5) | +| **rosenfalck1969**: Rosenfalck P (1969). Intra- and extracellular potential fields of active nerve and muscle fibres. Acta Physiol Scand Suppl 321. [PMID 5383732](https://pubmed.ncbi.nlm.nih.gov/5383732/) | SEC | ADOPTED | IAP Vm = 96 (λz)³ e^(−λz) − 90 mV, λ = 1 / mm (default; Devon 2026-11-01). λ exposed as SurfaceEMG(iap_lambda__per_mm). FDI fit λ 0.7 documented, not adopted. | [simulate_fiber](../myogen/simulator/core/emg/surface/simulate_fiber.py), [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [fiber_simulation.py:5](../myogen/simulator/core/emg/fiber_simulation.py#L5), [fiber_simulation.py:10](../myogen/simulator/core/emg/fiber_simulation.py#L10), [fiber_simulation.py:40](../myogen/simulator/core/emg/fiber_simulation.py#L40), [fiber_simulation.py:287](../myogen/simulator/core/emg/fiber_simulation.py#L287), [fiber_simulation.py:330](../myogen/simulator/core/emg/fiber_simulation.py#L330), [fiber_simulation.py:389](../myogen/simulator/core/emg/fiber_simulation.py#L389), [fiber_simulation.py:553](../myogen/simulator/core/emg/fiber_simulation.py#L553), [fiber_simulation.py:568](../myogen/simulator/core/emg/fiber_simulation.py#L568), [bioelectric.py:8](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L8), [bioelectric.py:13](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L13), [bioelectric.py:25](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L25), [bioelectric.py:48](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L48), [bioelectric.py:76](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L76), [simulate_fiber.py:381](../myogen/simulator/core/emg/surface/simulate_fiber.py#L381), [simulate_fiber.py:383](../myogen/simulator/core/emg/surface/simulate_fiber.py#L383), [simulate_fiber.py:461](../myogen/simulator/core/emg/surface/simulate_fiber.py#L461), [simulate_fiber.py:478](../myogen/simulator/core/emg/surface/simulate_fiber.py#L478), [simulate_fiber.py:783](../myogen/simulator/core/emg/surface/simulate_fiber.py#L783), [simulate_fiber.py:785](../myogen/simulator/core/emg/surface/simulate_fiber.py#L785), [surface_emg.py:104](../myogen/simulator/core/emg/surface/surface_emg.py#L104), [surface_emg.py:106](../myogen/simulator/core/emg/surface/surface_emg.py#L106), [surface_emg.py:571](../myogen/simulator/core/emg/surface/surface_emg.py#L571), [test_iemg_sfap_units.py:4](../tests/test_iemg_sfap_units.py#L4), [test_iemg_sfap_units.py:5](../tests/test_iemg_sfap_units.py#L5) | | **dimitrova2006**: Dimitrova NA, Dimitrov GV (2006). Electromyography (EMG) modeling. Wiley Encyclopedia of Biomedical Engineering. | FT | CONTEXT | IAP profile length = duration × CV; spectral content scales with IAP duration (MDF gap). | — | | **dimitrov1998**: Dimitrov GV, Dimitrova NA et al. (1998). Three papers, Med Eng Phys 20:374, 580, 702 (titles unverified). | FT | CONTEXT | Spectra vs IAP duration and CV. No measured human IAP duration found. | — | | **rodriguezfalces2013**: Rodriguez-Falces J et al. (2013). Med Biol Eng Comput 50:447 (IAP / dipole metrics; title unverified). [doi:10.1007/s11517-012-0879-7](https://doi.org/10.1007/s11517-012-0879-7) | FT | CONTEXT | IAP duration metrics for the λ question. | — | @@ -70,37 +70,37 @@ To add a source: add it to the table in `scripts/build_literature.py`, link it f | Source | Status | Use | What it supports | Used in | |---|---|---|---|---| -| **nandedkar1983**: Nandedkar SD, Stålberg E (1983). Simulation of single muscle fibre action potentials. Med Biol Eng Comput 21:158–165. [doi:10.1007/BF02441531](https://doi.org/10.1007/BF02441531) | FT | ADOPTED | Fibre CV = 0.95 + 0.05·d[µm] m/s (fixes main's 2.0 m/s for every fibre); CV–diameter line for diameter-scaled sources. Read 2026-11-02: a modelling construct, not a measured regression — Stålberg 1966 biceps diameters 25–85 µm and CV 3.7 ± 0.71 m/s, with 25 / 55 / 85 µm pinned to the 2-SD band 2.2 / 3.7 / 5.2 m/s; linear, square and square-root forms gave similar amplitudes (p. 163, Fig. 6). Also eq. 1 of delvecchio2018 (p. 7). At FDI values it is inconsistent: 57.9 µm (polgar1973) → 3.85 m/s, 4.2 m/s (nishizono1990) → 65 µm. | [Muscle](../myogen/simulator/core/muscle/muscle.py), [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [test_muscle_fibre_properties](../tests/test_muscle_fibre_properties.py), [test_surface_dispersion](../tests/test_surface_dispersion.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [fiber_simulation.py:64](../myogen/simulator/core/emg/fiber_simulation.py#L64), [bioelectric.py:14](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L14), [bioelectric.py:110](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L110) | -| **nishizono1990**: Nishizono H, Fujimoto T, Ohtake H, Miyashita M (1990). Muscle fiber conduction velocity and contractile properties estimated from surface electrode arrays. Electroencephalogr Clin Neurophysiol 75:75–81. [doi:10.1016/0013-4694(90)90154-C](https://doi.org/10.1016/0013-4694(90)90154-C) · [PMID 1688776](https://pubmed.ncbi.nlm.nih.gov/1688776/) | FT | ADOPTED | FDI motor-unit CV by spike-triggered surface arrays (5 mm IED): 50 units from 4 men, 3.2–5.0 m/s, mean 4.2 ± 0.5 (p. 77) — MyoGen's default mean. Units recruited at 120–930 g, i.e. 5–42 % of the 2.2 kg mean MVC (p. 78); skin temperature held at 31–32 °C (p. 77); CV correlated with threshold force, r = 0.52 (p. 79). Botelho 2019 takes its CV range from this paper. | [Muscle](../myogen/simulator/core/muscle/muscle.py) | +| **nandedkar1983**: Nandedkar SD, Stålberg E (1983). Simulation of single muscle fibre action potentials. Med Biol Eng Comput 21:158–165. [doi:10.1007/BF02441531](https://doi.org/10.1007/BF02441531) | FT | ADOPTED | Fibre CV = 0.95 + 0.05·d[µm] m/s (fixes main's 2.0 m/s for every fibre); CV–diameter line for diameter-scaled sources. Read 2026-11-02: a modelling construct, not a measured regression — Stålberg 1966 biceps diameters 25–85 µm and CV 3.7 ± 0.71 m/s, with 25 / 55 / 85 µm pinned to the 2-SD band 2.2 / 3.7 / 5.2 m/s; linear, square and square-root forms gave similar amplitudes (p. 163, Fig. 6). Also eq. 1 of delvecchio2018 (p. 7). At FDI values it is inconsistent: 57.9 µm (polgar1973) → 3.85 m/s, 4.2 m/s (nishizono1990) → 65 µm. | [Muscle](../myogen/simulator/core/muscle/muscle.py), [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [test_muscle_fibre_properties](../tests/test_muscle_fibre_properties.py), [test_surface_dispersion](../tests/test_surface_dispersion.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [fiber_simulation.py:64](../myogen/simulator/core/emg/fiber_simulation.py#L64), [bioelectric.py:14](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L14), [bioelectric.py:110](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L110), [fiber_dispersion.py:90](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L90), [fiber_dispersion.py:96](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L96), [muscle.py:34](../myogen/simulator/core/muscle/muscle.py#L34), [muscle.py:164](../myogen/simulator/core/muscle/muscle.py#L164), [muscle.py:174](../myogen/simulator/core/muscle/muscle.py#L174), [muscle.py:186](../myogen/simulator/core/muscle/muscle.py#L186), [muscle.py:564](../myogen/simulator/core/muscle/muscle.py#L564), [muscle.py:576](../myogen/simulator/core/muscle/muscle.py#L576), [muscle.py:579](../myogen/simulator/core/muscle/muscle.py#L579), [test_muscle_fibre_properties.py:153](../tests/test_muscle_fibre_properties.py#L153) | +| **nishizono1990**: Nishizono H, Fujimoto T, Ohtake H, Miyashita M (1990). Muscle fiber conduction velocity and contractile properties estimated from surface electrode arrays. Electroencephalogr Clin Neurophysiol 75:75–81. [doi:10.1016/0013-4694(90)90154-C](https://doi.org/10.1016/0013-4694(90)90154-C) · [PMID 1688776](https://pubmed.ncbi.nlm.nih.gov/1688776/) | FT | ADOPTED | FDI motor-unit CV by spike-triggered surface arrays (5 mm IED): 50 units from 4 men, 3.2–5.0 m/s, mean 4.2 ± 0.5 (p. 77) — MyoGen's default mean. Units recruited at 120–930 g, i.e. 5–42 % of the 2.2 kg mean MVC (p. 78); skin temperature held at 31–32 °C (p. 77); CV correlated with threshold force, r = 0.52 (p. 79). Botelho 2019 takes its CV range from this paper. | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:157](../myogen/simulator/core/muscle/muscle.py#L157), [muscle.py:158](../myogen/simulator/core/muscle/muscle.py#L158), [muscle.py:286](../myogen/simulator/core/muscle/muscle.py#L286) | | **kouyoumdjian2023**: Kouyoumdjian JA et al. (2023). Muscle fiber conduction velocity in situ revisited. Front Neurol 14:1118510. [doi:10.3389/fneur.2023.1118510](https://doi.org/10.3389/fneur.2023.1118510) · [PMC9996126](https://pmc.ncbi.nlm.nih.gov/articles/PMC9996126/) | FT | CONTEXT | TA single-fibre CV 4.10 ± 0.66 m/s. | — | | **zalewska2012**: Zalewska E et al. (2012). A method for determination of muscle fiber diameter using single fiber potential (SFP) analysis. Med Biol Eng Comput. [doi:10.1007/s11517-012-0965-x](https://doi.org/10.1007/s11517-012-0965-x) · [PMC3514689](https://pmc.ncbi.nlm.nih.gov/articles/PMC3514689/) | FT | CONTEXT | Alternative CV–diameter line v = 2.2 + 0.05(d − 25). | — | -| **blijham2006**: Blijham PJ, ter Laak HJ, Schelhaas HJ, van Engelen BGM, Stegeman DF, Zwarts MJ (2006). Relation between muscle fiber conduction velocity and fiber size in neuromuscular disorders. J Appl Physiol 100:1837–1841. [doi:10.1152/japplphysiol.01009.2005](https://doi.org/10.1152/japplphysiol.01009.2005) | FT | CONTEXT | Read 2026-11-02. Invasive MFCV (direct stimulation, biceps) against needle-biopsy diameters (mostly quadriceps; 53 of 96 in the same muscle) in 96 patients, 24 of whom had no neuromuscular disorder (pp. 1837–1838). Only extremes were paired: smallest fibre with slowest MFCV, largest with fastest; R 0.58 / 0.46 (p. 1838 Table 1). Overall fit MFCV = 0.043·d[µm] + 0.83 m/s (p. 1840, Fig. 5), 'remarkably similar' to nandedkar1983 (p. 1840). Control ranges biceps 30–70, quadriceps 50–95 µm, citing polgar1973 (p. 1840). Cited with nandedkar1983 by delvecchio2018 (p. 7, ref. 6). Supports the slope and intercept of the Nandedkar line; patient data, so not adopted as its replacement. Cited in code for the equal relative spread (within 2 %) of the two lines and for the quadriceps range against the removed 80 µm clip. | — | -| **delvecchio2018**: Del Vecchio A, Negro F, Felici F, Farina D (2018). Distribution of muscle fibre conduction velocity for representative samples of motor units in the full recruitment range of the tibialis anterior muscle. Acta Physiol 222:e12930. [doi:10.1111/apha.12930](https://doi.org/10.1111/apha.12930) | FT | ADOPTED | TA, 10 subjects, 406 MUs: MU CV 2.78–6.21 m/s (4.32 ± 0.71), linear in recruitment threshold (R² 0.70 ± 0.09); 3.89 ± 0.50 m/s at RT 0–30 % MVC, 5.12 ± 0.45 at 50–70 % (p. 2, Fig. 1 p. 3). HD-sEMG grid of 64 electrodes. Since 2026-11-02 (Devon) 4.32 ± 0.71 sets the Muscle CV defaults (intramuscular EMG; was 3.89 ± 0.50 before fibre typing), matched over unit means since 2026-11-03 (was over fibres); R² 0.70 gives the 0.39 m/s residual scatter of cv_from_recruitment_force (derived); the linear CV-threshold relation is why fibre typing uses one diameter ladder across the pool. Within-unit fibre CV distribution unknown (p. 5); CoV 5 % is a modelling assumption (Devon). CV→diameter by MFD = (MUCV − 0.95)/0.05 (p. 7 eq. 1). Basis of fiber_cv_threshold_slope (0.63 × mean, derived). Earlier cited in error as the 2017 J Appl Physiol paper. | [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [CHANGELOG](../CHANGELOG.md), [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [ramp_analysis.py:144](../myogen/utils/ramp_analysis.py#L144), [ramp_analysis.py:152](../myogen/utils/ramp_analysis.py#L152), [test_ramp_recruitment_force.py:43](../tests/test_ramp_recruitment_force.py#L43) | +| **blijham2006**: Blijham PJ, ter Laak HJ, Schelhaas HJ, van Engelen BGM, Stegeman DF, Zwarts MJ (2006). Relation between muscle fiber conduction velocity and fiber size in neuromuscular disorders. J Appl Physiol 100:1837–1841. [doi:10.1152/japplphysiol.01009.2005](https://doi.org/10.1152/japplphysiol.01009.2005) | FT | CONTEXT | Read 2026-11-02. Invasive MFCV (direct stimulation, biceps) against needle-biopsy diameters (mostly quadriceps; 53 of 96 in the same muscle) in 96 patients, 24 of whom had no neuromuscular disorder (pp. 1837–1838). Only extremes were paired: smallest fibre with slowest MFCV, largest with fastest; R 0.58 / 0.46 (p. 1838 Table 1). Overall fit MFCV = 0.043·d[µm] + 0.83 m/s (p. 1840, Fig. 5), 'remarkably similar' to nandedkar1983 (p. 1840). Control ranges biceps 30–70, quadriceps 50–95 µm, citing polgar1973 (p. 1840). Cited with nandedkar1983 by delvecchio2018 (p. 7, ref. 6). Supports the slope and intercept of the Nandedkar line; patient data, so not adopted as its replacement. Cited in code for the equal relative spread (within 2 %) of the two lines and for the quadriceps range against the removed 80 µm clip. | —
Cited at: [fiber_dispersion.py:92](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L92) | +| **delvecchio2018**: Del Vecchio A, Negro F, Felici F, Farina D (2018). Distribution of muscle fibre conduction velocity for representative samples of motor units in the full recruitment range of the tibialis anterior muscle. Acta Physiol 222:e12930. [doi:10.1111/apha.12930](https://doi.org/10.1111/apha.12930) | FT | ADOPTED | TA, 10 subjects, 406 MUs: MU CV 2.78–6.21 m/s (4.32 ± 0.71), linear in recruitment threshold (R² 0.70 ± 0.09); 3.89 ± 0.50 m/s at RT 0–30 % MVC, 5.12 ± 0.45 at 50–70 % (p. 2, Fig. 1 p. 3). HD-sEMG grid of 64 electrodes. Since 2026-11-02 (Devon) 4.32 ± 0.71 sets the Muscle CV defaults (intramuscular EMG; was 3.89 ± 0.50 before fibre typing), matched over unit means since 2026-11-03 (was over fibres); R² 0.70 gives the 0.39 m/s residual scatter of cv_from_recruitment_force (derived); the linear CV-threshold relation is why fibre typing uses one diameter ladder across the pool. Within-unit fibre CV distribution unknown (p. 5); CoV 5 % is a modelling assumption (Devon). CV→diameter by MFD = (MUCV − 0.95)/0.05 (p. 7 eq. 1). Basis of fiber_cv_threshold_slope (0.63 × mean, derived). Earlier cited in error as the 2017 J Appl Physiol paper. | [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [CHANGELOG](../CHANGELOG.md), [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [fiber_dispersion.py:64](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L64), [fiber_dispersion.py:75](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L75), [fiber_dispersion.py:91](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L91), [fiber_dispersion.py:184](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L184), [fiber_dispersion.py:204](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L204), [surface_emg.py:111](../myogen/simulator/core/emg/surface/surface_emg.py#L111), [fiber_types.py:24](../myogen/simulator/core/muscle/fiber_types.py#L24), [muscle.py:35](../myogen/simulator/core/muscle/muscle.py#L35), [muscle.py:172](../myogen/simulator/core/muscle/muscle.py#L172), [muscle.py:185](../myogen/simulator/core/muscle/muscle.py#L185), [muscle.py:580](../myogen/simulator/core/muscle/muscle.py#L580), [ramp_analysis.py:144](../myogen/utils/ramp_analysis.py#L144), [ramp_analysis.py:152](../myogen/utils/ramp_analysis.py#L152), [test_muscle_fibre_properties.py:138](../tests/test_muscle_fibre_properties.py#L138), [test_ramp_recruitment_force.py:43](../tests/test_ramp_recruitment_force.py#L43) | | **delvecchio2017**: Del Vecchio A, Negro F, Felici F, Farina D (2017). Associations between motor unit action potential parameters and surface EMG features. J Appl Physiol 123:835–843. [doi:10.1152/japplphysiol.00482.2017](https://doi.org/10.1152/japplphysiol.00482.2017) | FT | CONTEXT | TA, 13 subjects, ramps to 70 % MVC: MU CV linear in recruitment threshold (R² 0.64 ± 0.14); intercept 3.88 ± 0.35 m/s (Table 2), mean slope 0.0224 m/s per % MVC of threshold (mean of the 13 subject slopes in Table 3). Global MDF poorly related to recruitment. Not cited in code. | — | -| **akhmadeev2020**: Akhmadeev K, Yu T, Le Carpentier E, Aoustin Y, Farina D (2020). Simulation of motor unit action potential recordings from intramuscular multichannel scanning electrodes. IEEE Trans Biomed Eng 67(7):2005–2014. Cited in MyoGen as 'Konstantin et al. 2020' (Konstantin is the first author's given name). [doi:10.1109/TBME.2019.2953680](https://doi.org/10.1109/TBME.2019.2953680) · [code](https://github.com/smetanadvorak/iemg_simulator) | FT + CODE | ADOPTED | Two-layer end-plate / nerve-branch model (shared iEMG/sEMG). Published eq. 5–6 coefficients are the default; reference-code coefficients kept as nmj_coefficients='reference_code'. Branch CVs 5/2 m/s from the reference code (paper: 10/1). | [nerve_branches](../myogen/simulator/core/emg/nerve_branches.py), [IntramuscularEMG](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py), [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [test_surface_dispersion](../tests/test_surface_dispersion.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [intramuscular_emg.py:70](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L70), [intramuscular_emg.py:73](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L73), [intramuscular_emg.py:76](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L76), [intramuscular_emg.py:79](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L79), [intramuscular_emg.py:100](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L100), [intramuscular_emg.py:280](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L280), [motor_unit_sim.py:8](../myogen/simulator/core/emg/intramuscular/motor_unit_sim.py#L8), [nerve_branches.py:1](../myogen/simulator/core/emg/nerve_branches.py#L1), [nerve_branches.py:21](../myogen/simulator/core/emg/nerve_branches.py#L21), [nerve_branches.py:22](../myogen/simulator/core/emg/nerve_branches.py#L22), [physiological_distribution.py:37](../myogen/simulator/core/physiological_distribution.py#L37), [physiological_distribution.py:75](../myogen/simulator/core/physiological_distribution.py#L75), [physiological_distribution.py:91](../myogen/simulator/core/physiological_distribution.py#L91) | +| **akhmadeev2020**: Akhmadeev K, Yu T, Le Carpentier E, Aoustin Y, Farina D (2020). Simulation of motor unit action potential recordings from intramuscular multichannel scanning electrodes. IEEE Trans Biomed Eng 67(7):2005–2014. Cited in MyoGen as 'Konstantin et al. 2020' (Konstantin is the first author's given name). [doi:10.1109/TBME.2019.2953680](https://doi.org/10.1109/TBME.2019.2953680) · [code](https://github.com/smetanadvorak/iemg_simulator) | FT + CODE | ADOPTED | Two-layer end-plate / nerve-branch model (shared iEMG/sEMG). Published eq. 5–6 coefficients are the default; reference-code coefficients kept as nmj_coefficients='reference_code'. Branch CVs 5/2 m/s from the reference code (paper: 10/1). | [nerve_branches](../myogen/simulator/core/emg/nerve_branches.py), [IntramuscularEMG](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py), [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [test_surface_dispersion](../tests/test_surface_dispersion.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [intramuscular_emg.py:70](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L70), [intramuscular_emg.py:73](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L73), [intramuscular_emg.py:76](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L76), [intramuscular_emg.py:79](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L79), [intramuscular_emg.py:100](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L100), [intramuscular_emg.py:280](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L280), [motor_unit_sim.py:8](../myogen/simulator/core/emg/intramuscular/motor_unit_sim.py#L8), [nerve_branches.py:1](../myogen/simulator/core/emg/nerve_branches.py#L1), [nerve_branches.py:21](../myogen/simulator/core/emg/nerve_branches.py#L21), [nerve_branches.py:22](../myogen/simulator/core/emg/nerve_branches.py#L22), [fiber_dispersion.py:44](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L44), [fiber_dispersion.py:53](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L53), [fiber_dispersion.py:179](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L179), [fiber_dispersion.py:181](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L181), [muscle.py:133](../myogen/simulator/core/muscle/muscle.py#L133), [muscle.py:284](../myogen/simulator/core/muscle/muscle.py#L284), [physiological_distribution.py:37](../myogen/simulator/core/physiological_distribution.py#L37), [physiological_distribution.py:75](../myogen/simulator/core/physiological_distribution.py#L75), [physiological_distribution.py:91](../myogen/simulator/core/physiological_distribution.py#L91) | | **stalbergkarlsson2001**: Stålberg E, Karlsson L (2001). Simulation of the normal concentric needle electromyogram by using a muscle model. Clin Neurophysiol 112:464–471. [doi:10.1016/S1388-2457(01)00459-X](https://doi.org/10.1016/S1388-2457(01)00459-X) | FT | CONTEXT | Bound: end-plate position 0 ± 1 mm; per-fibre delay 0–1 ms. Piasecki 2020 reuses this value (one chain, not two anchors). Companion paper: Simulation of EMG in pathological situations, Clin Neurophysiol 112:869–878, doi:10.1016/S1388-2457(01)00498-9 (title and pages were mixed up here before 2026-11-03; checked against Zotero). Their fibre diameter 50 ± 5 µm within each motor unit is a model setting, no measurement cited (literature check 2026-11-03). | — | | **piasecki2020**: Piasecki M et al. (2020/2021). Near-fibre EMG (medRxiv; Clin Neurophysiol 132:1089). [doi:10.1101/2020.10.07.20208348](https://doi.org/10.1101/2020.10.07.20208348) | FT | CONTEXT | Healthy end-plate SD 1 mm (from Stålberg & Karlsson). | — | | **lateva2010**: Lateva ZC, McGill KC, Johanson ME (2010). J Appl Physiol 108:1530. [PMC2886675](https://pmc.ncbi.nlm.nih.gov/articles/PMC2886675/) | FT | CONTEXT | Myelinated branch ~50 m/s bounds fast branch delays; fibre-end spread. | — | -| **keenan2005**: Keenan KG, Farina D et al. (2005). J Appl Physiol 98:120 (FDI sEMG simulation). [doi:10.1152/japplphysiol.00894.2004](https://doi.org/10.1152/japplphysiol.00894.2004) | FT | ADOPTED | Convention for the opt-in 5 mm tendon-end band (no measurement of fibre-end stagger found). | [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [CHANGELOG](../CHANGELOG.md) | +| **keenan2005**: Keenan KG, Farina D et al. (2005). J Appl Physiol 98:120 (FDI sEMG simulation). [doi:10.1152/japplphysiol.00894.2004](https://doi.org/10.1152/japplphysiol.00894.2004) | FT | ADOPTED | Convention for the opt-in 5 mm tendon-end band (no measurement of fibre-end stagger found). | [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [fiber_dispersion.py:187](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L187) | | **farinafosci2002**: Farina D, Fosci M, Merletti R (2002). J Appl Physiol 92:235. [doi:10.1152/jappl.2002.92.1.235](https://doi.org/10.1152/jappl.2002.92.1.235) | FT | CONTEXT | IZ / tendon spread 10 mm used as the sensitivity bound. | — | | **jahanmiri2015**: Jahanmiri-Nezhad F et al. (2015). Front Hum Neurosci 9:239. [doi:10.3389/fnhum.2015.00239](https://doi.org/10.3389/fnhum.2015.00239) | FT | CONTEXT | Single-MU IZ spread 9–18 mm. | — | -| **martin1988**: Martin TP, Bodine-Fowler S, Roy RR, Eldred E, Edgerton VR (1988). Metabolic and fiber size properties of cat tibialis anterior motor units. Am J Physiol 255:C43–C50. [doi:10.1152/ajpcell.1988.255.1.C43](https://doi.org/10.1152/ajpcell.1988.255.1.C43) | FT | CONTEXT | Cat TA, 14 units by glycogen depletion, 8–10 unit fibres each, single 20-µm sections (p. C44). Within-unit fibre cross-section CoV per unit (Table 1 p. C46): type S 14/21/15/16 %, FR 10/18/19/34 %, FI 33/20 %, FF 28/30/31/32 %; mean 25 % against 46 % for non-unit fibres (p. C45–C46); Bodine et al. 1987 found 28 % vs 38 % (p. C46). Within-unit variability approximates that of the unit type (p. C49). Only within-unit fibre-size data found (read 2026-11-03). Diameter CoV ≈ area CoV / 2: S ≈ 0.08, fast ≈ 0.13. Muscle default within-unit diameter log-SD is 0.166 (from type_log_sd 0.2, an assumption), above every unit here. | — | -| **andreassen1987**: Andreassen S, Arendt-Nielsen L (1987). Muscle fibre conduction velocity in motor units of the human anterior tibial muscle: a new size principle parameter. J Physiol 391:561–571. [doi:10.1113/jphysiol.1987.sp016756](https://doi.org/10.1113/jphysiol.1987.sp016756) | FT | CONTEXT | Human TA, 33 units by intramuscular axon microstimulation, surface tripolar array 15 mm: unit CV 2.6–5.3 m/s, 3.7 ± 0.7 (p. 567, Fig. 3D p. 566), a between-unit spread matching delvecchio2018 (0.71). Unit CV correlates with twitch torque r = 0.87 (p. 568 Fig. 4B). Argues (p. 569) that a wide unit-CV range needs fibres of one unit to share about the same CV and diameter; not measured. Twitch-torque ratio for FDI ~100 / 40 / 60–120 from other studies (Table 1 p. 565). | — | +| **martin1988**: Martin TP, Bodine-Fowler S, Roy RR, Eldred E, Edgerton VR (1988). Metabolic and fiber size properties of cat tibialis anterior motor units. Am J Physiol 255:C43–C50. [doi:10.1152/ajpcell.1988.255.1.C43](https://doi.org/10.1152/ajpcell.1988.255.1.C43) | FT | CONTEXT | Cat TA, 14 units by glycogen depletion, 8–10 unit fibres each, single 20-µm sections (p. C44). Within-unit fibre cross-section CoV per unit (Table 1 p. C46): type S 14/21/15/16 %, FR 10/18/19/34 %, FI 33/20 %, FF 28/30/31/32 %; mean 25 % against 46 % for non-unit fibres (p. C45–C46); Bodine et al. 1987 found 28 % vs 38 % (p. C46). Within-unit variability approximates that of the unit type (p. C49). Only within-unit fibre-size data found (read 2026-11-03). Diameter CoV ≈ area CoV / 2: S ≈ 0.08, fast ≈ 0.13. Muscle default within-unit diameter log-SD is 0.166 (from type_log_sd 0.2, an assumption), above every unit here. | —
Cited at: [surface_emg.py:115](../myogen/simulator/core/emg/surface/surface_emg.py#L115), [fiber_types.py:15](../myogen/simulator/core/muscle/fiber_types.py#L15), [fiber_types.py:176](../myogen/simulator/core/muscle/fiber_types.py#L176), [muscle.py:203](../myogen/simulator/core/muscle/muscle.py#L203), [test_fiber_types.py:127](../tests/test_fiber_types.py#L127), [test_muscle_fibre_properties.py:131](../tests/test_muscle_fibre_properties.py#L131) | +| **andreassen1987**: Andreassen S, Arendt-Nielsen L (1987). Muscle fibre conduction velocity in motor units of the human anterior tibial muscle: a new size principle parameter. J Physiol 391:561–571. [doi:10.1113/jphysiol.1987.sp016756](https://doi.org/10.1113/jphysiol.1987.sp016756) | FT | CONTEXT | Human TA, 33 units by intramuscular axon microstimulation, surface tripolar array 15 mm: unit CV 2.6–5.3 m/s, 3.7 ± 0.7 (p. 567, Fig. 3D p. 566), a between-unit spread matching delvecchio2018 (0.71). Unit CV correlates with twitch torque r = 0.87 (p. 568 Fig. 4B). Argues (p. 569) that a wide unit-CV range needs fibres of one unit to share about the same CV and diameter; not measured. Twitch-torque ratio for FDI ~100 / 40 / 60–120 from other studies (Table 1 p. 565). | —
Cited at: [muscle.py:173](../myogen/simulator/core/muscle/muscle.py#L173), [muscle.py:580](../myogen/simulator/core/muscle/muscle.py#L580), [test_muscle_fibre_properties.py:139](../tests/test_muscle_fibre_properties.py#L139) | ## C. Muscle anatomy (FDI dimensions, layers, motor-unit counts) | Source | Status | Use | What it supports | Used in | |---|---|---|---|---| -| **jacobson1992**: Jacobson MD, Raab R, Fazeli BM, Abrams RA, Botte MJ, Lieber RL (1992). Architectural design of the human intrinsic hand muscles. J Hand Surg Am 17(5):804–809. [doi:10.1016/0363-5023(92)90446-V](https://doi.org/10.1016/0363-5023(92)90446-V) | ABS | ADOPTED | FDI fibre length 31.7 mm and var_fiber_length__mm 2.8 mm (used as a uniform half-width; probably a between-specimen spread). **Table 1 unverified.** | [Muscle](../myogen/simulator/core/muscle/muscle.py), [CHANGELOG](../CHANGELOG.md) | -| **li2018**: Li H, Furst DE, Jin H et al. (2018). High-frequency ultrasound of the skin in systemic sclerosis. Arthritis Res Ther 20:181. [doi:10.1186/s13075-018-1686-9](https://doi.org/10.1186/s13075-018-1686-9) | FT | ADOPTED | Skin thickness 1.2 mm: hand dorsum over MCP II–III, median of 31 controls (0.79–1.50). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md) | -| **nishikawa2024**: Nishikawa Y, Watanabe K, Holobar A et al. (2024). Sex differences in laterality of motor unit firing behavior of the first dorsal interosseous muscle. Eur J Appl Physiol 124:1979–1990. [doi:10.1007/s00421-024-05420-7](https://doi.org/10.1007/s00421-024-05420-7) | FT | ADOPTED | FDI depth to muscle 2.54–3.30 mm; fat 1.3 mm = 2.5 − 1.2 (derived from the low end). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md) | -| **storchle2018**: Störchle P, Müller W, Sengeis M et al. (2018). Measurement of mean subcutaneous fat thickness. Sci Rep 8:16268. [doi:10.1038/s41598-018-34213-0](https://doi.org/10.1038/s41598-018-34213-0) | FT | REJECTED | Old fat default 0.3 mm (whole-hand average, excludes skin). | [Muscle](../myogen/simulator/core/muscle/muscle.py) | -| **brodar1960**: Brodar V (1960). Observations on skin thickness and subcutaneous tissue in man. Z Morphol Anthropol 50:386–395. | SEC | REJECTED | Old skin default 1.29 mm (whole-body male average). | [Muscle](../myogen/simulator/core/muscle/muscle.py) | +| **jacobson1992**: Jacobson MD, Raab R, Fazeli BM, Abrams RA, Botte MJ, Lieber RL (1992). Architectural design of the human intrinsic hand muscles. J Hand Surg Am 17(5):804–809. [doi:10.1016/0363-5023(92)90446-V](https://doi.org/10.1016/0363-5023(92)90446-V) | ABS | ADOPTED | FDI fibre length 31.7 mm and var_fiber_length__mm 2.8 mm (used as a uniform half-width; probably a between-specimen spread). **Table 1 unverified.** | [Muscle](../myogen/simulator/core/muscle/muscle.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [muscle.py:144](../myogen/simulator/core/muscle/muscle.py#L144), [muscle.py:207](../myogen/simulator/core/muscle/muscle.py#L207), [muscle.py:211](../myogen/simulator/core/muscle/muscle.py#L211), [muscle.py:285](../myogen/simulator/core/muscle/muscle.py#L285) | +| **li2018**: Li H, Furst DE, Jin H et al. (2018). High-frequency ultrasound of the skin in systemic sclerosis. Arthritis Res Ther 20:181. [doi:10.1186/s13075-018-1686-9](https://doi.org/10.1186/s13075-018-1686-9) | FT | ADOPTED | Skin thickness 1.2 mm: hand dorsum over MCP II–III, median of 31 controls (0.79–1.50). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [muscle.py:222](../myogen/simulator/core/muscle/muscle.py#L222), [muscle.py:293](../myogen/simulator/core/muscle/muscle.py#L293) | +| **nishikawa2024**: Nishikawa Y, Watanabe K, Holobar A et al. (2024). Sex differences in laterality of motor unit firing behavior of the first dorsal interosseous muscle. Eur J Appl Physiol 124:1979–1990. [doi:10.1007/s00421-024-05420-7](https://doi.org/10.1007/s00421-024-05420-7) | FT | ADOPTED | FDI depth to muscle 2.54–3.30 mm; fat 1.3 mm = 2.5 − 1.2 (derived from the low end). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [muscle.py:218](../myogen/simulator/core/muscle/muscle.py#L218), [muscle.py:294](../myogen/simulator/core/muscle/muscle.py#L294) | +| **storchle2018**: Störchle P, Müller W, Sengeis M et al. (2018). Measurement of mean subcutaneous fat thickness. Sci Rep 8:16268. [doi:10.1038/s41598-018-34213-0](https://doi.org/10.1038/s41598-018-34213-0) | FT | REJECTED | Old fat default 0.3 mm (whole-hand average, excludes skin). | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:219](../myogen/simulator/core/muscle/muscle.py#L219), [muscle.py:287](../myogen/simulator/core/muscle/muscle.py#L287) | +| **brodar1960**: Brodar V (1960). Observations on skin thickness and subcutaneous tissue in man. Z Morphol Anthropol 50:386–395. | SEC | REJECTED | Old skin default 1.29 mm (whole-body male average). | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:223](../myogen/simulator/core/muscle/muscle.py#L223), [muscle.py:288](../myogen/simulator/core/muscle/muscle.py#L288) | | **krammer2025**: Krammer et al. (2025). Diagnostics 15:1600. | FT | CONTEXT | Hand-dorsum dermis 0.52 ± 0.16 mm. | — | | **infantolino2010**: Infantolino BW, Challis JH (2010). Architectural properties of the first dorsal interosseous muscle. J Anat 216:463. [doi:10.1111/j.1469-7580.2009.01196.x](https://doi.org/10.1111/j.1469-7580.2009.01196.x) · [PMC2849523](https://pmc.ncbi.nlm.nih.gov/articles/PMC2849523/) | FT | CONTEXT | Volume 5.2 mL, fascicle 29.9 mm; derived CSA ~89 mm² vs model 150 mm². | — | | **burketsairis1973**: Burke RE, Tsairis P (1973). Anatomy and innervation ratios in motor units of cat gastrocnemius. J Physiol 234:749–765. [doi:10.1113/jphysiol.1973.sp010370](https://doi.org/10.1113/jphysiol.1973.sp010370) | FT | CONTEXT | Cat MG: innervation ratios FF ~550–750, FR ~400–550 (p. 756; Table 2 p. 758); unit fibres spread over a wide territory, 1–2 per primary fascicle, 3–5 per 100 fibres (p. 753); mean unit fibre areas FF 5290, FR 2890, S 1734 µm² (p. 760). No within-unit fibre-area spread given. | — | -| **polgar1973**: Polgar J, Johnson MA, Weightman D, Appleton D (1973). Data on fibre size in thirty-six human muscles: an autopsy study. J Neurol Sci 19:307–318. [doi:10.1016/0022-510X(73)90094-4](https://doi.org/10.1016/0022-510X(73)90094-4) | FT | ADOPTED | FDI fibre diameter defaults (since 2026-11-02, Devon). FDI (autopsy): type I 50.0 µm, type II 67.0 µm [p. 310 Table 2]; type I fibres 57.4 % [p. 312 Table 4]. Weighted by that proportion: mean 57.2 µm (Muscle since 2026-11-02: fibre types by motor unit on one diameter ladder that keeps these type means, log-SD 0.2 per type an assumption; was a per-fibre two-type mixture earlier the same day), root-mean-square 57.9 µm (SurfaceEMG source default, since the source scales with d²). Replaces the 50 µm attributed to brooke1970. Type II − type I 17.02 µm, P < 0.001 (p. 312 Table 4). FDI 95 % limits for a single subject's mean (between post-mortems, not the fibre-to-fibre spread): type I 35–66, type II 47–86 µm (p. 313 Table 5; methods p. 309). Minor-axis diameters, ≥ 200 fibres per sample (p. 308). Gives no within-muscle fibre SD. | — | -| **garnett1979**: Garnett RAF, O'Donovan MJ, Stephens JA, Taylor A (1979). Motor unit organization of human medial gastrocnemius. J Physiol 287:33–43. [doi:10.1113/jphysiol.1979.sp012643](https://doi.org/10.1113/jphysiol.1979.sp012643) · [PMC1281479](https://pmc.ncbi.nlm.nih.gov/articles/PMC1281479/) | FT | CONTEXT | 57 human MG units (microstimulation, glycogen depletion, biopsy). S units small/slow/resistant, FR intermediate, FF large/fatigable [p. 33]; S units type 1 fibres, FF type 2b [p. 39–41]. Ranked by size, S and FR interleave at low force; only FF added above ~30 % cumulative twitch tension [p. 42]. Sample biased against largest/smallest units [p. 41]. Basis (with limits) for typing units by threshold (Muscle fibre typing, 2026-11-02, cited in fiber_types.py and Muscle docstring): strict type I-first order is a simplification. | [Muscle](../myogen/simulator/core/muscle/muscle.py) | +| **polgar1973**: Polgar J, Johnson MA, Weightman D, Appleton D (1973). Data on fibre size in thirty-six human muscles: an autopsy study. J Neurol Sci 19:307–318. [doi:10.1016/0022-510X(73)90094-4](https://doi.org/10.1016/0022-510X(73)90094-4) | FT | ADOPTED | FDI fibre diameter defaults (since 2026-11-02, Devon). FDI (autopsy): type I 50.0 µm, type II 67.0 µm [p. 310 Table 2]; type I fibres 57.4 % [p. 312 Table 4]. Weighted by that proportion: mean 57.2 µm (Muscle since 2026-11-02: fibre types by motor unit on one diameter ladder that keeps these type means, log-SD 0.2 per type an assumption; was a per-fibre two-type mixture earlier the same day), root-mean-square 57.9 µm (SurfaceEMG source default, since the source scales with d²). Replaces the 50 µm attributed to brooke1970. Type II − type I 17.02 µm, P < 0.001 (p. 312 Table 4). FDI 95 % limits for a single subject's mean (between post-mortems, not the fibre-to-fibre spread): type I 35–66, type II 47–86 µm (p. 313 Table 5; methods p. 309). Minor-axis diameters, ≥ 200 fibres per sample (p. 308). Gives no within-muscle fibre SD. | —
Cited at: [surface_emg.py:95](../myogen/simulator/core/emg/surface/surface_emg.py#L95), [surface_emg.py:95](../myogen/simulator/core/emg/surface/surface_emg.py#L95), [fiber_types.py:7](../myogen/simulator/core/muscle/fiber_types.py#L7), [fiber_types.py:103](../myogen/simulator/core/muscle/fiber_types.py#L103), [fiber_types.py:105](../myogen/simulator/core/muscle/fiber_types.py#L105), [muscle.py:189](../myogen/simulator/core/muscle/muscle.py#L189), [muscle.py:194](../myogen/simulator/core/muscle/muscle.py#L194), [muscle.py:542](../myogen/simulator/core/muscle/muscle.py#L542), [muscle.py:543](../myogen/simulator/core/muscle/muscle.py#L543), [test_muscle_fibre_properties.py:57](../tests/test_muscle_fibre_properties.py#L57), [test_muscle_fibre_properties.py:278](../tests/test_muscle_fibre_properties.py#L278), [test_muscle_fibre_properties.py:278](../tests/test_muscle_fibre_properties.py#L278), [test_surface_amplitude.py:26](../tests/test_surface_amplitude.py#L26) | +| **garnett1979**: Garnett RAF, O'Donovan MJ, Stephens JA, Taylor A (1979). Motor unit organization of human medial gastrocnemius. J Physiol 287:33–43. [doi:10.1113/jphysiol.1979.sp012643](https://doi.org/10.1113/jphysiol.1979.sp012643) · [PMC1281479](https://pmc.ncbi.nlm.nih.gov/articles/PMC1281479/) | FT | CONTEXT | 57 human MG units (microstimulation, glycogen depletion, biopsy). S units small/slow/resistant, FR intermediate, FF large/fatigable [p. 33]; S units type 1 fibres, FF type 2b [p. 39–41]. Ranked by size, S and FR interleave at low force; only FF added above ~30 % cumulative twitch tension [p. 42]. Sample biased against largest/smallest units [p. 41]. Basis (with limits) for typing units by threshold (Muscle fibre typing, 2026-11-02, cited in fiber_types.py and Muscle docstring): strict type I-first order is a simplification. | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [fiber_types.py:9](../myogen/simulator/core/muscle/fiber_types.py#L9), [muscle.py:192](../myogen/simulator/core/muscle/muscle.py#L192) | | **hwang2013**: Hwang K, Huan F, Kim DJ (2013). Muscle fibre types of the lumbrical, interossei, flexor, and extensor muscles moving the index finger. J Plast Surg Hand Surg 47:268–272. [doi:10.3109/2000656X.2012.755988](https://doi.org/10.3109/2000656X.2012.755988) | FT | REJECTED | FDI ~31 µm (elderly, paraffin, diameter undefined): judged an underestimate. Source of Botelho's 24.8–40.6 µm. | — | | **feinstein1955**: Feinstein B, Lindegård B, Nyman E, Wohlfart G (1955). Morphologic studies of motor units in normal human muscles. Acta Anat 23:127–142. | SEC | CONTEXT | FDI ~119 MUs, ~40,000 fibres, ~340 fibres/MU (via Piasecki 2016, De Luca 1982). | — | | **zong2021**: Zong Y et al. (2021). IEEE Trans Neural Syst Rehabil Eng 29:1199. [doi:10.1109/TNSRE.2021.3088061](https://doi.org/10.1109/TNSRE.2021.3088061) · [PMC8780215](https://pmc.ncbi.nlm.nih.gov/articles/PMC8780215/) | FT | CONTEXT | FDI MUNE 108 ± 21; CMAP 16.75 mV (ceiling). | — | diff --git a/myogen/simulator/core/muscle/fiber_types.py b/myogen/simulator/core/muscle/fiber_types.py index 9ff99c9a..9eea590a 100644 --- a/myogen/simulator/core/muscle/fiber_types.py +++ b/myogen/simulator/core/muscle/fiber_types.py @@ -1,8 +1,7 @@ """Fibre types and diameters by motor unit. Every motor unit has one fibre type, and its mean fibre diameter rises with its recruitment -threshold along one ladder across the whole pool (design: docs/superpowers/specs/ -2026-11-02-fdi-fibre-typing-design.md, option A). +threshold along one ladder across the whole pool. - Types: units in threshold order are type I until they hold the type I fibre fraction (FDI 57.4 % [polgar1973 p. 312 Table 4]). Strict order is a modelling simplification: in From d1fcd9c4f5eacabdc75a32627e038f3f5f308293 Mon Sep 17 00:00:00 2001 From: Devon Rohlf Date: Sat, 7 Nov 2026 13:48:27 +0100 Subject: [PATCH 5/6] fix(muscle): innervation centres do not depend on platform floating point The fast-marching field has exact ties (the mirror pair at the second centre, and 12 more within the first 300 centres). np.argmax took whichever cell a platform's floating point put a last bit higher; on macOS arm64 the layout came out different and the stored typed fibre diameters failed. Ties within 1e-12 relative now go to the lowest index, which is what argmax returns on exact ties, so layouts on this machine are unchanged (stored values still pass). Distinct values differ by at least 2.6e-9 relative over 300 centres. Tested with 1e-13 relative noise on the field. --- CHANGELOG.md | 1 + myogen/simulator/core/muscle/muscle.py | 14 +++++++- tests/test_muscle_innervation_centers.py | 45 ++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 tests/test_muscle_innervation_centers.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ba7f9e3..03d1c1ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,7 @@ This release changes default outputs; regenerate anything calibrated against ear - The sum over the fibre omitted the spatial step, so amplitudes scaled with `1/spatial_resolution__mm`. Together the bugs nearly cancelled at the default 0.01 mm step for a nearby electrode. On an FDI cylinder (bipolar fine wire, 2 mm IED, 15 units) MUAPs go from 0.03–1.8 mV to 0.9–37 mV peak-to-peak. These are point electrodes in an infinite homogeneous medium, which overestimates the near field (no electrode area, no near-field correction); see Breaking changes. - **Large circular fibre layouts.** Fibre centres came from a 399 499-point table covering a square, of which only ~313 000 points lie inside the circle. Beyond that the outer ring was filled only at the diagonals, and beyond 399 499 the fibre count was silently capped. Layouts the table covers are unchanged (FDI defaults ≈ 54 000 fibres); larger counts now use a scrambled Halton sequence in the disc, seeded from MyoGen's generator, with a warning. +- **Innervation centres on other platforms.** The fast-marching placement has exact ties (two cells at the same distance, first at the second centre). `np.argmax` took whichever cell a platform's floating point put a last bit higher, so on another machine the centres could come out mirrored and most fibres went to other units. Ties now go to the lowest cell index, which is what `argmax` returned on exact ties, so layouts are unchanged where they were already reproducible and now agree across platforms. ### Added diff --git a/myogen/simulator/core/muscle/muscle.py b/myogen/simulator/core/muscle/muscle.py index c740da11..562da7fa 100644 --- a/myogen/simulator/core/muscle/muscle.py +++ b/myogen/simulator/core/muscle/muscle.py @@ -127,6 +127,18 @@ def _perform_fast_marching(speed_map: np.ndarray, seed_points: np.ndarray) -> np return distance +def _farthest_cell(distance: np.ndarray, rtol: float = 1e-12) -> int: + """Flat index of the farthest cell, the lowest index among ties. + + The fast-marching field has exact ties (mirror cells), which floating point on another platform can break by a + last bit either way. Cells within ``rtol`` of the maximum count as tied; distinct values on the 256 grid differ by + at least 2.6e-9 relative over the first 300 centres. On ties this is what ``np.argmax`` already returns. + """ + flat = np.ravel(distance) + top = flat.max() + return int(np.flatnonzero(flat >= top - rtol * abs(top))[0]) + + @beartowertype class Muscle: """ @@ -639,7 +651,7 @@ def distribute_innervation_centers(self) -> None: for i in range(1, self._number_of_neurons + 1): # Use scikit-fmm for fast marching # Create speed map, avoiding division by zero - ind = np.argmax(_perform_fast_marching(density_map.copy(), vertices[:, :i])) + ind = _farthest_cell(_perform_fast_marching(density_map.copy(), vertices[:, :i])) x, y = np.unravel_index(ind, (self._grid_resolution, self._grid_resolution)) vertices[:, i] = [x, y] diff --git a/tests/test_muscle_innervation_centers.py b/tests/test_muscle_innervation_centers.py new file mode 100644 index 00000000..53e577e0 --- /dev/null +++ b/tests/test_muscle_innervation_centers.py @@ -0,0 +1,45 @@ +"""Innervation-centre placement must not depend on last-bit differences between platforms. + +The fast-marching field has exact ties (two cells at the same distance, e.g. the mirror pair at step 2). A plain +``argmax`` then takes whichever cell a platform's floating point puts a last bit higher, and every later centre and +fibre assignment follows that choice. +""" +import numpy as np +import pytest +import quantities as pq + +from myogen import set_random_seed +from myogen.simulator import Muscle, RecruitmentThresholds +import myogen.simulator.core.muscle.muscle as muscle_module + + +def test_farthest_cell_takes_the_lowest_index_among_ties(): + from myogen.simulator.core.muscle.muscle import _farthest_cell + + d = np.array([1.0, 5.0, 2.0, 5.0]) + assert _farthest_cell(d) == 1 + d[3] = 5.0 * (1 + 1e-14) # the tie broken by a last-bit difference + assert _farthest_cell(d) == 1 + d[3] = 5.0 * (1 + 1e-6) # a real difference + assert _farthest_cell(d) == 3 + + +def _centres(noise_seed=None): + set_random_seed(1) + thr, _ = RecruitmentThresholds(N=20, recruitment_range__ratio=50, mode="fuglevand") + m = Muscle(recruitment_thresholds=thr, radius__mm=3 * pq.mm) + fmm = muscle_module._perform_fast_marching + if noise_seed is not None: + rng = np.random.default_rng(noise_seed) + muscle_module._perform_fast_marching = lambda s, p: (lambda d: d * (1 + 1e-13 * rng.standard_normal(d.shape)))( + fmm(s, p)) + try: + m.distribute_innervation_centers() + finally: + muscle_module._perform_fast_marching = fmm + return np.asarray(m._innervation_center_positions__mm.magnitude) + + +@pytest.mark.parametrize("noise_seed", range(4)) +def test_centres_survive_last_bit_noise(noise_seed): + np.testing.assert_array_equal(_centres(noise_seed), _centres()) From a34bb2244025fb7a8bb8f418bdea6566e61aece9 Mon Sep 17 00:00:00 2001 From: Devon Rohlf Date: Sat, 7 Nov 2026 14:06:22 +0100 Subject: [PATCH 6/6] docs(literature): rebuild register (muscle.py line numbers after the tie fix) --- docs/literature.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/literature.md b/docs/literature.md index 89e5bccc..a644f82c 100644 --- a/docs/literature.md +++ b/docs/literature.md @@ -43,16 +43,16 @@ To add a source: add it to the table in `scripts/build_literature.py`, link it f | Source | Status | Use | What it supports | Used in | |---|---|---|---|---| -| **farina2004**: Farina D, Mesin L, Martina S, Merletti R (2004). A surface EMG generation model with multilayer cylindrical description of the volume conductor. IEEE Trans Biomed Eng 51(3):415–426. [doi:10.1109/TBME.2003.820998](https://doi.org/10.1109/TBME.2003.820998) | FT | ADOPTED | The sEMG volume conductor; reference for the notebook fixes (bipolar B(k_z), MUAP time axis, IAP z axis, fibre semi-lengths, amplitude). Layer σ (skin 1, fat 0.05, muscle 0.5/0.1 S/m) given without source. | [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py), [simulate_fiber](../myogen/simulator/core/emg/surface/simulate_fiber.py), [Muscle](../myogen/simulator/core/muscle/muscle.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [electrodes.py:189](../myogen/simulator/core/emg/electrodes.py#L189), [electrodes.py:323](../myogen/simulator/core/emg/electrodes.py#L323), [electrodes.py:328](../myogen/simulator/core/emg/electrodes.py#L328), [electrodes.py:335](../myogen/simulator/core/emg/electrodes.py#L335), [electrodes.py:340](../myogen/simulator/core/emg/electrodes.py#L340), [fiber_simulation.py:11](../myogen/simulator/core/emg/fiber_simulation.py#L11), [fiber_simulation.py:115](../myogen/simulator/core/emg/fiber_simulation.py#L115), [fiber_simulation.py:418](../myogen/simulator/core/emg/fiber_simulation.py#L418), [bioelectric.py:7](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L7), [simulate_fiber.py:107](../myogen/simulator/core/emg/surface/simulate_fiber.py#L107), [simulate_fiber.py:184](../myogen/simulator/core/emg/surface/simulate_fiber.py#L184), [simulate_fiber.py:452](../myogen/simulator/core/emg/surface/simulate_fiber.py#L452), [surface_emg.py:53](../myogen/simulator/core/emg/surface/surface_emg.py#L53), [surface_emg.py:148](../myogen/simulator/core/emg/surface/surface_emg.py#L148), [volume_conductor.py:1](../myogen/simulator/core/emg/surface/volume_conductor.py#L1), [volume_conductor.py:97](../myogen/simulator/core/emg/surface/volume_conductor.py#L97), [volume_conductor.py:140](../myogen/simulator/core/emg/surface/volume_conductor.py#L140), [muscle.py:133](../myogen/simulator/core/muscle/muscle.py#L133), [muscle.py:231](../myogen/simulator/core/muscle/muscle.py#L231), [muscle.py:283](../myogen/simulator/core/muscle/muscle.py#L283) | -| **roeleveld1997**: Roeleveld K, Blok JH, Stegeman DF, van Oosterom A (1997). Volume conduction models for surface EMG; confrontation with measurements. J Electromyogr Kinesiol 7(4):221–232. [doi:10.1016/S1050-6411(97)00009-6](https://doi.org/10.1016/S1050-6411(97)00009-6) | FT | ADOPTED | Provenance of skin σ = 1 S/m: a fitted effective value reproducing biceps MUAP fall-off (52 MUs), not a measurement. Replicated in the Roeleveld bench. | [Muscle](../myogen/simulator/core/muscle/muscle.py), [Roeleveld bench](../benchmarks/semg_roeleveld1997/README.md), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [muscle.py:232](../myogen/simulator/core/muscle/muscle.py#L232), [muscle.py:234](../myogen/simulator/core/muscle/muscle.py#L234), [muscle.py:290](../myogen/simulator/core/muscle/muscle.py#L290) | +| **farina2004**: Farina D, Mesin L, Martina S, Merletti R (2004). A surface EMG generation model with multilayer cylindrical description of the volume conductor. IEEE Trans Biomed Eng 51(3):415–426. [doi:10.1109/TBME.2003.820998](https://doi.org/10.1109/TBME.2003.820998) | FT | ADOPTED | The sEMG volume conductor; reference for the notebook fixes (bipolar B(k_z), MUAP time axis, IAP z axis, fibre semi-lengths, amplitude). Layer σ (skin 1, fat 0.05, muscle 0.5/0.1 S/m) given without source. | [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py), [simulate_fiber](../myogen/simulator/core/emg/surface/simulate_fiber.py), [Muscle](../myogen/simulator/core/muscle/muscle.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [electrodes.py:189](../myogen/simulator/core/emg/electrodes.py#L189), [electrodes.py:323](../myogen/simulator/core/emg/electrodes.py#L323), [electrodes.py:328](../myogen/simulator/core/emg/electrodes.py#L328), [electrodes.py:335](../myogen/simulator/core/emg/electrodes.py#L335), [electrodes.py:340](../myogen/simulator/core/emg/electrodes.py#L340), [fiber_simulation.py:11](../myogen/simulator/core/emg/fiber_simulation.py#L11), [fiber_simulation.py:115](../myogen/simulator/core/emg/fiber_simulation.py#L115), [fiber_simulation.py:418](../myogen/simulator/core/emg/fiber_simulation.py#L418), [bioelectric.py:7](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L7), [simulate_fiber.py:107](../myogen/simulator/core/emg/surface/simulate_fiber.py#L107), [simulate_fiber.py:184](../myogen/simulator/core/emg/surface/simulate_fiber.py#L184), [simulate_fiber.py:452](../myogen/simulator/core/emg/surface/simulate_fiber.py#L452), [surface_emg.py:53](../myogen/simulator/core/emg/surface/surface_emg.py#L53), [surface_emg.py:148](../myogen/simulator/core/emg/surface/surface_emg.py#L148), [volume_conductor.py:1](../myogen/simulator/core/emg/surface/volume_conductor.py#L1), [volume_conductor.py:97](../myogen/simulator/core/emg/surface/volume_conductor.py#L97), [volume_conductor.py:140](../myogen/simulator/core/emg/surface/volume_conductor.py#L140), [muscle.py:145](../myogen/simulator/core/muscle/muscle.py#L145), [muscle.py:243](../myogen/simulator/core/muscle/muscle.py#L243), [muscle.py:295](../myogen/simulator/core/muscle/muscle.py#L295) | +| **roeleveld1997**: Roeleveld K, Blok JH, Stegeman DF, van Oosterom A (1997). Volume conduction models for surface EMG; confrontation with measurements. J Electromyogr Kinesiol 7(4):221–232. [doi:10.1016/S1050-6411(97)00009-6](https://doi.org/10.1016/S1050-6411(97)00009-6) | FT | ADOPTED | Provenance of skin σ = 1 S/m: a fitted effective value reproducing biceps MUAP fall-off (52 MUs), not a measurement. Replicated in the Roeleveld bench. | [Muscle](../myogen/simulator/core/muscle/muscle.py), [Roeleveld bench](../benchmarks/semg_roeleveld1997/README.md), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [muscle.py:244](../myogen/simulator/core/muscle/muscle.py#L244), [muscle.py:246](../myogen/simulator/core/muscle/muscle.py#L246), [muscle.py:302](../myogen/simulator/core/muscle/muscle.py#L302) | | **roeleveld1997b**: Roeleveld K et al. (1997), companion JEK paper on MUAP spread / exponents (details unverified). | LINK | CONTEXT | Source of the depth/lateral fall-off regression used in the bench; not read. | [Roeleveld bench](../benchmarks/semg_roeleveld1997/README.md) | -| **blok2002**: Blok JH, Stegeman DF, van Oosterom A (2002). Three-layer volume conductor model and software package for applications in surface electromyography. Ann Biomed Eng 30:566–577. [doi:10.1114/1.1475345](https://doi.org/10.1114/1.1475345) | FT | CONTEXT | Skin 1.0 S/m 'taken from Roeleveld'; calls it 'somewhat ambiguous'. σi 0.5 S/m, d 50 µm (source-strength comparison). | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:232](../myogen/simulator/core/muscle/muscle.py#L232), [muscle.py:235](../myogen/simulator/core/muscle/muscle.py#L235), [muscle.py:291](../myogen/simulator/core/muscle/muscle.py#L291) | -| **lowery2002**: Lowery MM, Stoykov NS, Taflove A, Kuiken TA (2002). A multiple-layer finite-element model of the surface EMG signal. IEEE Trans Biomed Eng 49(5):446–454. [doi:10.1109/10.995683](https://doi.org/10.1109/10.995683) | FT | CONTEXT | Counterpoint: measured skin 4.55e-4 S/m (Gabriel 1996); Roeleveld's skin 'considerably higher than measured'. σi 1.01 S/m (Table I). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py)
Cited at: [muscle.py:237](../myogen/simulator/core/muscle/muscle.py#L237), [muscle.py:292](../myogen/simulator/core/muscle/muscle.py#L292) | +| **blok2002**: Blok JH, Stegeman DF, van Oosterom A (2002). Three-layer volume conductor model and software package for applications in surface electromyography. Ann Biomed Eng 30:566–577. [doi:10.1114/1.1475345](https://doi.org/10.1114/1.1475345) | FT | CONTEXT | Skin 1.0 S/m 'taken from Roeleveld'; calls it 'somewhat ambiguous'. σi 0.5 S/m, d 50 µm (source-strength comparison). | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:244](../myogen/simulator/core/muscle/muscle.py#L244), [muscle.py:247](../myogen/simulator/core/muscle/muscle.py#L247), [muscle.py:303](../myogen/simulator/core/muscle/muscle.py#L303) | +| **lowery2002**: Lowery MM, Stoykov NS, Taflove A, Kuiken TA (2002). A multiple-layer finite-element model of the surface EMG signal. IEEE Trans Biomed Eng 49(5):446–454. [doi:10.1109/10.995683](https://doi.org/10.1109/10.995683) | FT | CONTEXT | Counterpoint: measured skin 4.55e-4 S/m (Gabriel 1996); Roeleveld's skin 'considerably higher than measured'. σi 1.01 S/m (Table I). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py)
Cited at: [muscle.py:249](../myogen/simulator/core/muscle/muscle.py#L249), [muscle.py:304](../myogen/simulator/core/muscle/muscle.py#L304) | | **farinarainoldi1999**: Farina D, Rainoldi A (1999). Compensation of the effect of sub-cutaneous tissue layers on surface EMG: a simulation study. Med Eng Phys 21:487–496. [doi:10.1016/S1350-4533(99)00075-2](https://doi.org/10.1016/S1350-4533(99)00075-2) | FT | CONTEXT | Skin/fat ratio 20 (7 also tested), fat/muscle 0.5, cited to Roeleveld (EEG abstract), Geddes & Baker, Gootzen. 20 × 0.05 = 1 S/m. | — | | **farinamerletti2001**: Farina D, Merletti R (2001). A novel approach for precise simulation of the EMG signal detected by surface electrodes. IEEE Trans Biomed Eng 48(6):637–646. [doi:10.1109/10.923782](https://doi.org/10.1109/10.923782) · [PMID 11396594](https://pubmed.ncbi.nlm.nih.gov/11396594/) | FT | CONTEXT | Same conductivity ratios; IAP 96 mV/mm³ with λ = 1 / mm. | [simulate_fiber](../myogen/simulator/core/emg/surface/simulate_fiber.py)
Cited at: [bioelectric.py:12](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L12), [bioelectric.py:232](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L232), [simulate_fiber.py:463](../myogen/simulator/core/emg/surface/simulate_fiber.py#L463) | | **merlettifarina2016**: Merletti R, Farina D (eds) (2016). Surface Electromyography: Physiology, Engineering and Applications. Wiley-IEEE Press (ch. 8, Lowery). | FT | CONTEXT | §8.6.3 gives muscle 0.093–0.8 and fat 0.02–0.1 S/m with sources, but no skin value. | — | -| **botelho2019**: Pereira Botelho D, Curran K, Lowery MM (2019). Anatomically accurate model of EMG during index finger flexion and abduction derived from diffusion tensor imaging. PLoS Comput Biol 15(8):e1007267. [doi:10.1371/journal.pcbi.1007267](https://doi.org/10.1371/journal.pcbi.1007267) · [PMC6738720](https://pmc.ncbi.nlm.nih.gov/articles/PMC6738720/) | FT + FIG | CONTEXT | Main FDI comparator, measured: RMS 0.21 mV at 25 % MVC (IQR 0.19–0.26), MDF ~165 Hz (IQR 152–185), one subject, Delsys 5-pin. Existing muscle/fat σ defaults. Rejected as defaults: dry skin 4.88e-4 S/m; Rosenfalck α 0.5 (precedent for the optional λ). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [surface_emg.py:108](../myogen/simulator/core/emg/surface/surface_emg.py#L108), [surface_emg.py:112](../myogen/simulator/core/emg/surface/surface_emg.py#L112), [surface_emg.py:118](../myogen/simulator/core/emg/surface/surface_emg.py#L118), [surface_emg.py:335](../myogen/simulator/core/emg/surface/surface_emg.py#L335), [muscle.py:148](../myogen/simulator/core/muscle/muscle.py#L148), [muscle.py:225](../myogen/simulator/core/muscle/muscle.py#L225), [muscle.py:227](../myogen/simulator/core/muscle/muscle.py#L227), [muscle.py:229](../myogen/simulator/core/muscle/muscle.py#L229), [muscle.py:238](../myogen/simulator/core/muscle/muscle.py#L238), [muscle.py:289](../myogen/simulator/core/muscle/muscle.py#L289) | -| **gabriel1996**: Gabriel S, Lau RW, Gabriel C (1996). The dielectric properties of biological tissues (series). Phys Med Biol 41. | SEC | CONTEXT | Dry skin ~2–5e-4 S/m; source of Lowery's and Botelho's skin values. | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:237](../myogen/simulator/core/muscle/muscle.py#L237) | +| **botelho2019**: Pereira Botelho D, Curran K, Lowery MM (2019). Anatomically accurate model of EMG during index finger flexion and abduction derived from diffusion tensor imaging. PLoS Comput Biol 15(8):e1007267. [doi:10.1371/journal.pcbi.1007267](https://doi.org/10.1371/journal.pcbi.1007267) · [PMC6738720](https://pmc.ncbi.nlm.nih.gov/articles/PMC6738720/) | FT + FIG | CONTEXT | Main FDI comparator, measured: RMS 0.21 mV at 25 % MVC (IQR 0.19–0.26), MDF ~165 Hz (IQR 152–185), one subject, Delsys 5-pin. Existing muscle/fat σ defaults. Rejected as defaults: dry skin 4.88e-4 S/m; Rosenfalck α 0.5 (precedent for the optional λ). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [surface_emg.py:108](../myogen/simulator/core/emg/surface/surface_emg.py#L108), [surface_emg.py:112](../myogen/simulator/core/emg/surface/surface_emg.py#L112), [surface_emg.py:118](../myogen/simulator/core/emg/surface/surface_emg.py#L118), [surface_emg.py:335](../myogen/simulator/core/emg/surface/surface_emg.py#L335), [muscle.py:160](../myogen/simulator/core/muscle/muscle.py#L160), [muscle.py:237](../myogen/simulator/core/muscle/muscle.py#L237), [muscle.py:239](../myogen/simulator/core/muscle/muscle.py#L239), [muscle.py:241](../myogen/simulator/core/muscle/muscle.py#L241), [muscle.py:250](../myogen/simulator/core/muscle/muscle.py#L250), [muscle.py:301](../myogen/simulator/core/muscle/muscle.py#L301) | +| **gabriel1996**: Gabriel S, Lau RW, Gabriel C (1996). The dielectric properties of biological tissues (series). Phys Med Biol 41. | SEC | CONTEXT | Dry skin ~2–5e-4 S/m; source of Lowery's and Botelho's skin values. | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:249](../myogen/simulator/core/muscle/muscle.py#L249) | | **itis**: Baumgartner C, Hasgall PA, Di Gennaro F, Neufeld E, Lloyd B, Gosselin MC, Payne D, Klingenböck A, Kuster N (2025). IT'IS Database for thermal and electromagnetic parameters of biological tissues, Version 5.0 (low-frequency conductivity table). [doi:10.13099/VIP21000-05-0](https://doi.org/10.13099/VIP21000-05-0) | FT | CONTEXT | Low-frequency skin 0.148 ± 0.042 S/m (7 studies, 0.057–0.25; the entry pools dry skin and epidermis/dermis, and the site advises caution). The 0.15 S/m of the calibration argument for 1 S/m; 0.15 S/m in the cylinder gives about 2.5–4× too much amplitude. | [Muscle](../myogen/simulator/core/muscle/muscle.py) | | **dideriksen2019**: Dideriksen JL, Farina D (2019). PLoS Comput Biol (amplitude cancellation and neural drive; title unverified). | FT | CONTEXT | Uses skin 2 mm / 1 S/m, attributed to 'a previously proposed model'. | — | | **hodgkinnakajima1972**: Hodgkin AL, Nakajima S (1972). The effect of diameter on the electrical constants of frog skeletal muscle fibres. J Physiol 221:105. [doi:10.1113/jphysiol.1972.sp009742](https://doi.org/10.1113/jphysiol.1972.sp009742) | ABS | CONTEXT | Gi 0.59 S/m at 20 °C (≈1.0 S/m at 37 °C, Q10 1.37, our arithmetic): supports σi = 1.01 S/m in the line-source strength. | [SurfaceEMG](../myogen/simulator/core/emg/surface/surface_emg.py) | @@ -70,37 +70,37 @@ To add a source: add it to the table in `scripts/build_literature.py`, link it f | Source | Status | Use | What it supports | Used in | |---|---|---|---|---| -| **nandedkar1983**: Nandedkar SD, Stålberg E (1983). Simulation of single muscle fibre action potentials. Med Biol Eng Comput 21:158–165. [doi:10.1007/BF02441531](https://doi.org/10.1007/BF02441531) | FT | ADOPTED | Fibre CV = 0.95 + 0.05·d[µm] m/s (fixes main's 2.0 m/s for every fibre); CV–diameter line for diameter-scaled sources. Read 2026-11-02: a modelling construct, not a measured regression — Stålberg 1966 biceps diameters 25–85 µm and CV 3.7 ± 0.71 m/s, with 25 / 55 / 85 µm pinned to the 2-SD band 2.2 / 3.7 / 5.2 m/s; linear, square and square-root forms gave similar amplitudes (p. 163, Fig. 6). Also eq. 1 of delvecchio2018 (p. 7). At FDI values it is inconsistent: 57.9 µm (polgar1973) → 3.85 m/s, 4.2 m/s (nishizono1990) → 65 µm. | [Muscle](../myogen/simulator/core/muscle/muscle.py), [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [test_muscle_fibre_properties](../tests/test_muscle_fibre_properties.py), [test_surface_dispersion](../tests/test_surface_dispersion.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [fiber_simulation.py:64](../myogen/simulator/core/emg/fiber_simulation.py#L64), [bioelectric.py:14](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L14), [bioelectric.py:110](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L110), [fiber_dispersion.py:90](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L90), [fiber_dispersion.py:96](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L96), [muscle.py:34](../myogen/simulator/core/muscle/muscle.py#L34), [muscle.py:164](../myogen/simulator/core/muscle/muscle.py#L164), [muscle.py:174](../myogen/simulator/core/muscle/muscle.py#L174), [muscle.py:186](../myogen/simulator/core/muscle/muscle.py#L186), [muscle.py:564](../myogen/simulator/core/muscle/muscle.py#L564), [muscle.py:576](../myogen/simulator/core/muscle/muscle.py#L576), [muscle.py:579](../myogen/simulator/core/muscle/muscle.py#L579), [test_muscle_fibre_properties.py:153](../tests/test_muscle_fibre_properties.py#L153) | -| **nishizono1990**: Nishizono H, Fujimoto T, Ohtake H, Miyashita M (1990). Muscle fiber conduction velocity and contractile properties estimated from surface electrode arrays. Electroencephalogr Clin Neurophysiol 75:75–81. [doi:10.1016/0013-4694(90)90154-C](https://doi.org/10.1016/0013-4694(90)90154-C) · [PMID 1688776](https://pubmed.ncbi.nlm.nih.gov/1688776/) | FT | ADOPTED | FDI motor-unit CV by spike-triggered surface arrays (5 mm IED): 50 units from 4 men, 3.2–5.0 m/s, mean 4.2 ± 0.5 (p. 77) — MyoGen's default mean. Units recruited at 120–930 g, i.e. 5–42 % of the 2.2 kg mean MVC (p. 78); skin temperature held at 31–32 °C (p. 77); CV correlated with threshold force, r = 0.52 (p. 79). Botelho 2019 takes its CV range from this paper. | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:157](../myogen/simulator/core/muscle/muscle.py#L157), [muscle.py:158](../myogen/simulator/core/muscle/muscle.py#L158), [muscle.py:286](../myogen/simulator/core/muscle/muscle.py#L286) | +| **nandedkar1983**: Nandedkar SD, Stålberg E (1983). Simulation of single muscle fibre action potentials. Med Biol Eng Comput 21:158–165. [doi:10.1007/BF02441531](https://doi.org/10.1007/BF02441531) | FT | ADOPTED | Fibre CV = 0.95 + 0.05·d[µm] m/s (fixes main's 2.0 m/s for every fibre); CV–diameter line for diameter-scaled sources. Read 2026-11-02: a modelling construct, not a measured regression — Stålberg 1966 biceps diameters 25–85 µm and CV 3.7 ± 0.71 m/s, with 25 / 55 / 85 µm pinned to the 2-SD band 2.2 / 3.7 / 5.2 m/s; linear, square and square-root forms gave similar amplitudes (p. 163, Fig. 6). Also eq. 1 of delvecchio2018 (p. 7). At FDI values it is inconsistent: 57.9 µm (polgar1973) → 3.85 m/s, 4.2 m/s (nishizono1990) → 65 µm. | [Muscle](../myogen/simulator/core/muscle/muscle.py), [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [test_muscle_fibre_properties](../tests/test_muscle_fibre_properties.py), [test_surface_dispersion](../tests/test_surface_dispersion.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [fiber_simulation.py:64](../myogen/simulator/core/emg/fiber_simulation.py#L64), [bioelectric.py:14](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L14), [bioelectric.py:110](../myogen/simulator/core/emg/intramuscular/bioelectric.py#L110), [fiber_dispersion.py:90](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L90), [fiber_dispersion.py:96](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L96), [muscle.py:34](../myogen/simulator/core/muscle/muscle.py#L34), [muscle.py:176](../myogen/simulator/core/muscle/muscle.py#L176), [muscle.py:186](../myogen/simulator/core/muscle/muscle.py#L186), [muscle.py:198](../myogen/simulator/core/muscle/muscle.py#L198), [muscle.py:576](../myogen/simulator/core/muscle/muscle.py#L576), [muscle.py:588](../myogen/simulator/core/muscle/muscle.py#L588), [muscle.py:591](../myogen/simulator/core/muscle/muscle.py#L591), [test_muscle_fibre_properties.py:153](../tests/test_muscle_fibre_properties.py#L153) | +| **nishizono1990**: Nishizono H, Fujimoto T, Ohtake H, Miyashita M (1990). Muscle fiber conduction velocity and contractile properties estimated from surface electrode arrays. Electroencephalogr Clin Neurophysiol 75:75–81. [doi:10.1016/0013-4694(90)90154-C](https://doi.org/10.1016/0013-4694(90)90154-C) · [PMID 1688776](https://pubmed.ncbi.nlm.nih.gov/1688776/) | FT | ADOPTED | FDI motor-unit CV by spike-triggered surface arrays (5 mm IED): 50 units from 4 men, 3.2–5.0 m/s, mean 4.2 ± 0.5 (p. 77) — MyoGen's default mean. Units recruited at 120–930 g, i.e. 5–42 % of the 2.2 kg mean MVC (p. 78); skin temperature held at 31–32 °C (p. 77); CV correlated with threshold force, r = 0.52 (p. 79). Botelho 2019 takes its CV range from this paper. | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:169](../myogen/simulator/core/muscle/muscle.py#L169), [muscle.py:170](../myogen/simulator/core/muscle/muscle.py#L170), [muscle.py:298](../myogen/simulator/core/muscle/muscle.py#L298) | | **kouyoumdjian2023**: Kouyoumdjian JA et al. (2023). Muscle fiber conduction velocity in situ revisited. Front Neurol 14:1118510. [doi:10.3389/fneur.2023.1118510](https://doi.org/10.3389/fneur.2023.1118510) · [PMC9996126](https://pmc.ncbi.nlm.nih.gov/articles/PMC9996126/) | FT | CONTEXT | TA single-fibre CV 4.10 ± 0.66 m/s. | — | | **zalewska2012**: Zalewska E et al. (2012). A method for determination of muscle fiber diameter using single fiber potential (SFP) analysis. Med Biol Eng Comput. [doi:10.1007/s11517-012-0965-x](https://doi.org/10.1007/s11517-012-0965-x) · [PMC3514689](https://pmc.ncbi.nlm.nih.gov/articles/PMC3514689/) | FT | CONTEXT | Alternative CV–diameter line v = 2.2 + 0.05(d − 25). | — | | **blijham2006**: Blijham PJ, ter Laak HJ, Schelhaas HJ, van Engelen BGM, Stegeman DF, Zwarts MJ (2006). Relation between muscle fiber conduction velocity and fiber size in neuromuscular disorders. J Appl Physiol 100:1837–1841. [doi:10.1152/japplphysiol.01009.2005](https://doi.org/10.1152/japplphysiol.01009.2005) | FT | CONTEXT | Read 2026-11-02. Invasive MFCV (direct stimulation, biceps) against needle-biopsy diameters (mostly quadriceps; 53 of 96 in the same muscle) in 96 patients, 24 of whom had no neuromuscular disorder (pp. 1837–1838). Only extremes were paired: smallest fibre with slowest MFCV, largest with fastest; R 0.58 / 0.46 (p. 1838 Table 1). Overall fit MFCV = 0.043·d[µm] + 0.83 m/s (p. 1840, Fig. 5), 'remarkably similar' to nandedkar1983 (p. 1840). Control ranges biceps 30–70, quadriceps 50–95 µm, citing polgar1973 (p. 1840). Cited with nandedkar1983 by delvecchio2018 (p. 7, ref. 6). Supports the slope and intercept of the Nandedkar line; patient data, so not adopted as its replacement. Cited in code for the equal relative spread (within 2 %) of the two lines and for the quadriceps range against the removed 80 µm clip. | —
Cited at: [fiber_dispersion.py:92](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L92) | -| **delvecchio2018**: Del Vecchio A, Negro F, Felici F, Farina D (2018). Distribution of muscle fibre conduction velocity for representative samples of motor units in the full recruitment range of the tibialis anterior muscle. Acta Physiol 222:e12930. [doi:10.1111/apha.12930](https://doi.org/10.1111/apha.12930) | FT | ADOPTED | TA, 10 subjects, 406 MUs: MU CV 2.78–6.21 m/s (4.32 ± 0.71), linear in recruitment threshold (R² 0.70 ± 0.09); 3.89 ± 0.50 m/s at RT 0–30 % MVC, 5.12 ± 0.45 at 50–70 % (p. 2, Fig. 1 p. 3). HD-sEMG grid of 64 electrodes. Since 2026-11-02 (Devon) 4.32 ± 0.71 sets the Muscle CV defaults (intramuscular EMG; was 3.89 ± 0.50 before fibre typing), matched over unit means since 2026-11-03 (was over fibres); R² 0.70 gives the 0.39 m/s residual scatter of cv_from_recruitment_force (derived); the linear CV-threshold relation is why fibre typing uses one diameter ladder across the pool. Within-unit fibre CV distribution unknown (p. 5); CoV 5 % is a modelling assumption (Devon). CV→diameter by MFD = (MUCV − 0.95)/0.05 (p. 7 eq. 1). Basis of fiber_cv_threshold_slope (0.63 × mean, derived). Earlier cited in error as the 2017 J Appl Physiol paper. | [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [CHANGELOG](../CHANGELOG.md), [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [fiber_dispersion.py:64](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L64), [fiber_dispersion.py:75](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L75), [fiber_dispersion.py:91](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L91), [fiber_dispersion.py:184](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L184), [fiber_dispersion.py:204](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L204), [surface_emg.py:111](../myogen/simulator/core/emg/surface/surface_emg.py#L111), [fiber_types.py:24](../myogen/simulator/core/muscle/fiber_types.py#L24), [muscle.py:35](../myogen/simulator/core/muscle/muscle.py#L35), [muscle.py:172](../myogen/simulator/core/muscle/muscle.py#L172), [muscle.py:185](../myogen/simulator/core/muscle/muscle.py#L185), [muscle.py:580](../myogen/simulator/core/muscle/muscle.py#L580), [ramp_analysis.py:144](../myogen/utils/ramp_analysis.py#L144), [ramp_analysis.py:152](../myogen/utils/ramp_analysis.py#L152), [test_muscle_fibre_properties.py:138](../tests/test_muscle_fibre_properties.py#L138), [test_ramp_recruitment_force.py:43](../tests/test_ramp_recruitment_force.py#L43) | +| **delvecchio2018**: Del Vecchio A, Negro F, Felici F, Farina D (2018). Distribution of muscle fibre conduction velocity for representative samples of motor units in the full recruitment range of the tibialis anterior muscle. Acta Physiol 222:e12930. [doi:10.1111/apha.12930](https://doi.org/10.1111/apha.12930) | FT | ADOPTED | TA, 10 subjects, 406 MUs: MU CV 2.78–6.21 m/s (4.32 ± 0.71), linear in recruitment threshold (R² 0.70 ± 0.09); 3.89 ± 0.50 m/s at RT 0–30 % MVC, 5.12 ± 0.45 at 50–70 % (p. 2, Fig. 1 p. 3). HD-sEMG grid of 64 electrodes. Since 2026-11-02 (Devon) 4.32 ± 0.71 sets the Muscle CV defaults (intramuscular EMG; was 3.89 ± 0.50 before fibre typing), matched over unit means since 2026-11-03 (was over fibres); R² 0.70 gives the 0.39 m/s residual scatter of cv_from_recruitment_force (derived); the linear CV-threshold relation is why fibre typing uses one diameter ladder across the pool. Within-unit fibre CV distribution unknown (p. 5); CoV 5 % is a modelling assumption (Devon). CV→diameter by MFD = (MUCV − 0.95)/0.05 (p. 7 eq. 1). Basis of fiber_cv_threshold_slope (0.63 × mean, derived). Earlier cited in error as the 2017 J Appl Physiol paper. | [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [CHANGELOG](../CHANGELOG.md), [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [fiber_dispersion.py:64](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L64), [fiber_dispersion.py:75](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L75), [fiber_dispersion.py:91](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L91), [fiber_dispersion.py:184](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L184), [fiber_dispersion.py:204](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L204), [surface_emg.py:111](../myogen/simulator/core/emg/surface/surface_emg.py#L111), [fiber_types.py:24](../myogen/simulator/core/muscle/fiber_types.py#L24), [muscle.py:35](../myogen/simulator/core/muscle/muscle.py#L35), [muscle.py:184](../myogen/simulator/core/muscle/muscle.py#L184), [muscle.py:197](../myogen/simulator/core/muscle/muscle.py#L197), [muscle.py:592](../myogen/simulator/core/muscle/muscle.py#L592), [ramp_analysis.py:144](../myogen/utils/ramp_analysis.py#L144), [ramp_analysis.py:152](../myogen/utils/ramp_analysis.py#L152), [test_muscle_fibre_properties.py:138](../tests/test_muscle_fibre_properties.py#L138), [test_ramp_recruitment_force.py:43](../tests/test_ramp_recruitment_force.py#L43) | | **delvecchio2017**: Del Vecchio A, Negro F, Felici F, Farina D (2017). Associations between motor unit action potential parameters and surface EMG features. J Appl Physiol 123:835–843. [doi:10.1152/japplphysiol.00482.2017](https://doi.org/10.1152/japplphysiol.00482.2017) | FT | CONTEXT | TA, 13 subjects, ramps to 70 % MVC: MU CV linear in recruitment threshold (R² 0.64 ± 0.14); intercept 3.88 ± 0.35 m/s (Table 2), mean slope 0.0224 m/s per % MVC of threshold (mean of the 13 subject slopes in Table 3). Global MDF poorly related to recruitment. Not cited in code. | — | -| **akhmadeev2020**: Akhmadeev K, Yu T, Le Carpentier E, Aoustin Y, Farina D (2020). Simulation of motor unit action potential recordings from intramuscular multichannel scanning electrodes. IEEE Trans Biomed Eng 67(7):2005–2014. Cited in MyoGen as 'Konstantin et al. 2020' (Konstantin is the first author's given name). [doi:10.1109/TBME.2019.2953680](https://doi.org/10.1109/TBME.2019.2953680) · [code](https://github.com/smetanadvorak/iemg_simulator) | FT + CODE | ADOPTED | Two-layer end-plate / nerve-branch model (shared iEMG/sEMG). Published eq. 5–6 coefficients are the default; reference-code coefficients kept as nmj_coefficients='reference_code'. Branch CVs 5/2 m/s from the reference code (paper: 10/1). | [nerve_branches](../myogen/simulator/core/emg/nerve_branches.py), [IntramuscularEMG](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py), [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [test_surface_dispersion](../tests/test_surface_dispersion.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [intramuscular_emg.py:70](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L70), [intramuscular_emg.py:73](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L73), [intramuscular_emg.py:76](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L76), [intramuscular_emg.py:79](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L79), [intramuscular_emg.py:100](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L100), [intramuscular_emg.py:280](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L280), [motor_unit_sim.py:8](../myogen/simulator/core/emg/intramuscular/motor_unit_sim.py#L8), [nerve_branches.py:1](../myogen/simulator/core/emg/nerve_branches.py#L1), [nerve_branches.py:21](../myogen/simulator/core/emg/nerve_branches.py#L21), [nerve_branches.py:22](../myogen/simulator/core/emg/nerve_branches.py#L22), [fiber_dispersion.py:44](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L44), [fiber_dispersion.py:53](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L53), [fiber_dispersion.py:179](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L179), [fiber_dispersion.py:181](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L181), [muscle.py:133](../myogen/simulator/core/muscle/muscle.py#L133), [muscle.py:284](../myogen/simulator/core/muscle/muscle.py#L284), [physiological_distribution.py:37](../myogen/simulator/core/physiological_distribution.py#L37), [physiological_distribution.py:75](../myogen/simulator/core/physiological_distribution.py#L75), [physiological_distribution.py:91](../myogen/simulator/core/physiological_distribution.py#L91) | +| **akhmadeev2020**: Akhmadeev K, Yu T, Le Carpentier E, Aoustin Y, Farina D (2020). Simulation of motor unit action potential recordings from intramuscular multichannel scanning electrodes. IEEE Trans Biomed Eng 67(7):2005–2014. Cited in MyoGen as 'Konstantin et al. 2020' (Konstantin is the first author's given name). [doi:10.1109/TBME.2019.2953680](https://doi.org/10.1109/TBME.2019.2953680) · [code](https://github.com/smetanadvorak/iemg_simulator) | FT + CODE | ADOPTED | Two-layer end-plate / nerve-branch model (shared iEMG/sEMG). Published eq. 5–6 coefficients are the default; reference-code coefficients kept as nmj_coefficients='reference_code'. Branch CVs 5/2 m/s from the reference code (paper: 10/1). | [nerve_branches](../myogen/simulator/core/emg/nerve_branches.py), [IntramuscularEMG](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py), [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [test_surface_dispersion](../tests/test_surface_dispersion.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [intramuscular_emg.py:70](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L70), [intramuscular_emg.py:73](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L73), [intramuscular_emg.py:76](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L76), [intramuscular_emg.py:79](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L79), [intramuscular_emg.py:100](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L100), [intramuscular_emg.py:280](../myogen/simulator/core/emg/intramuscular/intramuscular_emg.py#L280), [motor_unit_sim.py:8](../myogen/simulator/core/emg/intramuscular/motor_unit_sim.py#L8), [nerve_branches.py:1](../myogen/simulator/core/emg/nerve_branches.py#L1), [nerve_branches.py:21](../myogen/simulator/core/emg/nerve_branches.py#L21), [nerve_branches.py:22](../myogen/simulator/core/emg/nerve_branches.py#L22), [fiber_dispersion.py:44](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L44), [fiber_dispersion.py:53](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L53), [fiber_dispersion.py:179](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L179), [fiber_dispersion.py:181](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L181), [muscle.py:145](../myogen/simulator/core/muscle/muscle.py#L145), [muscle.py:296](../myogen/simulator/core/muscle/muscle.py#L296), [physiological_distribution.py:37](../myogen/simulator/core/physiological_distribution.py#L37), [physiological_distribution.py:75](../myogen/simulator/core/physiological_distribution.py#L75), [physiological_distribution.py:91](../myogen/simulator/core/physiological_distribution.py#L91) | | **stalbergkarlsson2001**: Stålberg E, Karlsson L (2001). Simulation of the normal concentric needle electromyogram by using a muscle model. Clin Neurophysiol 112:464–471. [doi:10.1016/S1388-2457(01)00459-X](https://doi.org/10.1016/S1388-2457(01)00459-X) | FT | CONTEXT | Bound: end-plate position 0 ± 1 mm; per-fibre delay 0–1 ms. Piasecki 2020 reuses this value (one chain, not two anchors). Companion paper: Simulation of EMG in pathological situations, Clin Neurophysiol 112:869–878, doi:10.1016/S1388-2457(01)00498-9 (title and pages were mixed up here before 2026-11-03; checked against Zotero). Their fibre diameter 50 ± 5 µm within each motor unit is a model setting, no measurement cited (literature check 2026-11-03). | — | | **piasecki2020**: Piasecki M et al. (2020/2021). Near-fibre EMG (medRxiv; Clin Neurophysiol 132:1089). [doi:10.1101/2020.10.07.20208348](https://doi.org/10.1101/2020.10.07.20208348) | FT | CONTEXT | Healthy end-plate SD 1 mm (from Stålberg & Karlsson). | — | | **lateva2010**: Lateva ZC, McGill KC, Johanson ME (2010). J Appl Physiol 108:1530. [PMC2886675](https://pmc.ncbi.nlm.nih.gov/articles/PMC2886675/) | FT | CONTEXT | Myelinated branch ~50 m/s bounds fast branch delays; fibre-end spread. | — | | **keenan2005**: Keenan KG, Farina D et al. (2005). J Appl Physiol 98:120 (FDI sEMG simulation). [doi:10.1152/japplphysiol.00894.2004](https://doi.org/10.1152/japplphysiol.00894.2004) | FT | ADOPTED | Convention for the opt-in 5 mm tendon-end band (no measurement of fibre-end stagger found). | [SurfaceFiberDispersion](../myogen/simulator/core/emg/surface/fiber_dispersion.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [fiber_dispersion.py:187](../myogen/simulator/core/emg/surface/fiber_dispersion.py#L187) | | **farinafosci2002**: Farina D, Fosci M, Merletti R (2002). J Appl Physiol 92:235. [doi:10.1152/jappl.2002.92.1.235](https://doi.org/10.1152/jappl.2002.92.1.235) | FT | CONTEXT | IZ / tendon spread 10 mm used as the sensitivity bound. | — | | **jahanmiri2015**: Jahanmiri-Nezhad F et al. (2015). Front Hum Neurosci 9:239. [doi:10.3389/fnhum.2015.00239](https://doi.org/10.3389/fnhum.2015.00239) | FT | CONTEXT | Single-MU IZ spread 9–18 mm. | — | -| **martin1988**: Martin TP, Bodine-Fowler S, Roy RR, Eldred E, Edgerton VR (1988). Metabolic and fiber size properties of cat tibialis anterior motor units. Am J Physiol 255:C43–C50. [doi:10.1152/ajpcell.1988.255.1.C43](https://doi.org/10.1152/ajpcell.1988.255.1.C43) | FT | CONTEXT | Cat TA, 14 units by glycogen depletion, 8–10 unit fibres each, single 20-µm sections (p. C44). Within-unit fibre cross-section CoV per unit (Table 1 p. C46): type S 14/21/15/16 %, FR 10/18/19/34 %, FI 33/20 %, FF 28/30/31/32 %; mean 25 % against 46 % for non-unit fibres (p. C45–C46); Bodine et al. 1987 found 28 % vs 38 % (p. C46). Within-unit variability approximates that of the unit type (p. C49). Only within-unit fibre-size data found (read 2026-11-03). Diameter CoV ≈ area CoV / 2: S ≈ 0.08, fast ≈ 0.13. Muscle default within-unit diameter log-SD is 0.166 (from type_log_sd 0.2, an assumption), above every unit here. | —
Cited at: [surface_emg.py:115](../myogen/simulator/core/emg/surface/surface_emg.py#L115), [fiber_types.py:15](../myogen/simulator/core/muscle/fiber_types.py#L15), [fiber_types.py:176](../myogen/simulator/core/muscle/fiber_types.py#L176), [muscle.py:203](../myogen/simulator/core/muscle/muscle.py#L203), [test_fiber_types.py:127](../tests/test_fiber_types.py#L127), [test_muscle_fibre_properties.py:131](../tests/test_muscle_fibre_properties.py#L131) | -| **andreassen1987**: Andreassen S, Arendt-Nielsen L (1987). Muscle fibre conduction velocity in motor units of the human anterior tibial muscle: a new size principle parameter. J Physiol 391:561–571. [doi:10.1113/jphysiol.1987.sp016756](https://doi.org/10.1113/jphysiol.1987.sp016756) | FT | CONTEXT | Human TA, 33 units by intramuscular axon microstimulation, surface tripolar array 15 mm: unit CV 2.6–5.3 m/s, 3.7 ± 0.7 (p. 567, Fig. 3D p. 566), a between-unit spread matching delvecchio2018 (0.71). Unit CV correlates with twitch torque r = 0.87 (p. 568 Fig. 4B). Argues (p. 569) that a wide unit-CV range needs fibres of one unit to share about the same CV and diameter; not measured. Twitch-torque ratio for FDI ~100 / 40 / 60–120 from other studies (Table 1 p. 565). | —
Cited at: [muscle.py:173](../myogen/simulator/core/muscle/muscle.py#L173), [muscle.py:580](../myogen/simulator/core/muscle/muscle.py#L580), [test_muscle_fibre_properties.py:139](../tests/test_muscle_fibre_properties.py#L139) | +| **martin1988**: Martin TP, Bodine-Fowler S, Roy RR, Eldred E, Edgerton VR (1988). Metabolic and fiber size properties of cat tibialis anterior motor units. Am J Physiol 255:C43–C50. [doi:10.1152/ajpcell.1988.255.1.C43](https://doi.org/10.1152/ajpcell.1988.255.1.C43) | FT | CONTEXT | Cat TA, 14 units by glycogen depletion, 8–10 unit fibres each, single 20-µm sections (p. C44). Within-unit fibre cross-section CoV per unit (Table 1 p. C46): type S 14/21/15/16 %, FR 10/18/19/34 %, FI 33/20 %, FF 28/30/31/32 %; mean 25 % against 46 % for non-unit fibres (p. C45–C46); Bodine et al. 1987 found 28 % vs 38 % (p. C46). Within-unit variability approximates that of the unit type (p. C49). Only within-unit fibre-size data found (read 2026-11-03). Diameter CoV ≈ area CoV / 2: S ≈ 0.08, fast ≈ 0.13. Muscle default within-unit diameter log-SD is 0.166 (from type_log_sd 0.2, an assumption), above every unit here. | —
Cited at: [surface_emg.py:115](../myogen/simulator/core/emg/surface/surface_emg.py#L115), [fiber_types.py:15](../myogen/simulator/core/muscle/fiber_types.py#L15), [fiber_types.py:176](../myogen/simulator/core/muscle/fiber_types.py#L176), [muscle.py:215](../myogen/simulator/core/muscle/muscle.py#L215), [test_fiber_types.py:127](../tests/test_fiber_types.py#L127), [test_muscle_fibre_properties.py:131](../tests/test_muscle_fibre_properties.py#L131) | +| **andreassen1987**: Andreassen S, Arendt-Nielsen L (1987). Muscle fibre conduction velocity in motor units of the human anterior tibial muscle: a new size principle parameter. J Physiol 391:561–571. [doi:10.1113/jphysiol.1987.sp016756](https://doi.org/10.1113/jphysiol.1987.sp016756) | FT | CONTEXT | Human TA, 33 units by intramuscular axon microstimulation, surface tripolar array 15 mm: unit CV 2.6–5.3 m/s, 3.7 ± 0.7 (p. 567, Fig. 3D p. 566), a between-unit spread matching delvecchio2018 (0.71). Unit CV correlates with twitch torque r = 0.87 (p. 568 Fig. 4B). Argues (p. 569) that a wide unit-CV range needs fibres of one unit to share about the same CV and diameter; not measured. Twitch-torque ratio for FDI ~100 / 40 / 60–120 from other studies (Table 1 p. 565). | —
Cited at: [muscle.py:185](../myogen/simulator/core/muscle/muscle.py#L185), [muscle.py:592](../myogen/simulator/core/muscle/muscle.py#L592), [test_muscle_fibre_properties.py:139](../tests/test_muscle_fibre_properties.py#L139) | ## C. Muscle anatomy (FDI dimensions, layers, motor-unit counts) | Source | Status | Use | What it supports | Used in | |---|---|---|---|---| -| **jacobson1992**: Jacobson MD, Raab R, Fazeli BM, Abrams RA, Botte MJ, Lieber RL (1992). Architectural design of the human intrinsic hand muscles. J Hand Surg Am 17(5):804–809. [doi:10.1016/0363-5023(92)90446-V](https://doi.org/10.1016/0363-5023(92)90446-V) | ABS | ADOPTED | FDI fibre length 31.7 mm and var_fiber_length__mm 2.8 mm (used as a uniform half-width; probably a between-specimen spread). **Table 1 unverified.** | [Muscle](../myogen/simulator/core/muscle/muscle.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [muscle.py:144](../myogen/simulator/core/muscle/muscle.py#L144), [muscle.py:207](../myogen/simulator/core/muscle/muscle.py#L207), [muscle.py:211](../myogen/simulator/core/muscle/muscle.py#L211), [muscle.py:285](../myogen/simulator/core/muscle/muscle.py#L285) | -| **li2018**: Li H, Furst DE, Jin H et al. (2018). High-frequency ultrasound of the skin in systemic sclerosis. Arthritis Res Ther 20:181. [doi:10.1186/s13075-018-1686-9](https://doi.org/10.1186/s13075-018-1686-9) | FT | ADOPTED | Skin thickness 1.2 mm: hand dorsum over MCP II–III, median of 31 controls (0.79–1.50). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [muscle.py:222](../myogen/simulator/core/muscle/muscle.py#L222), [muscle.py:293](../myogen/simulator/core/muscle/muscle.py#L293) | -| **nishikawa2024**: Nishikawa Y, Watanabe K, Holobar A et al. (2024). Sex differences in laterality of motor unit firing behavior of the first dorsal interosseous muscle. Eur J Appl Physiol 124:1979–1990. [doi:10.1007/s00421-024-05420-7](https://doi.org/10.1007/s00421-024-05420-7) | FT | ADOPTED | FDI depth to muscle 2.54–3.30 mm; fat 1.3 mm = 2.5 − 1.2 (derived from the low end). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [muscle.py:218](../myogen/simulator/core/muscle/muscle.py#L218), [muscle.py:294](../myogen/simulator/core/muscle/muscle.py#L294) | -| **storchle2018**: Störchle P, Müller W, Sengeis M et al. (2018). Measurement of mean subcutaneous fat thickness. Sci Rep 8:16268. [doi:10.1038/s41598-018-34213-0](https://doi.org/10.1038/s41598-018-34213-0) | FT | REJECTED | Old fat default 0.3 mm (whole-hand average, excludes skin). | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:219](../myogen/simulator/core/muscle/muscle.py#L219), [muscle.py:287](../myogen/simulator/core/muscle/muscle.py#L287) | -| **brodar1960**: Brodar V (1960). Observations on skin thickness and subcutaneous tissue in man. Z Morphol Anthropol 50:386–395. | SEC | REJECTED | Old skin default 1.29 mm (whole-body male average). | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:223](../myogen/simulator/core/muscle/muscle.py#L223), [muscle.py:288](../myogen/simulator/core/muscle/muscle.py#L288) | +| **jacobson1992**: Jacobson MD, Raab R, Fazeli BM, Abrams RA, Botte MJ, Lieber RL (1992). Architectural design of the human intrinsic hand muscles. J Hand Surg Am 17(5):804–809. [doi:10.1016/0363-5023(92)90446-V](https://doi.org/10.1016/0363-5023(92)90446-V) | ABS | ADOPTED | FDI fibre length 31.7 mm and var_fiber_length__mm 2.8 mm (used as a uniform half-width; probably a between-specimen spread). **Table 1 unverified.** | [Muscle](../myogen/simulator/core/muscle/muscle.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [muscle.py:156](../myogen/simulator/core/muscle/muscle.py#L156), [muscle.py:219](../myogen/simulator/core/muscle/muscle.py#L219), [muscle.py:223](../myogen/simulator/core/muscle/muscle.py#L223), [muscle.py:297](../myogen/simulator/core/muscle/muscle.py#L297) | +| **li2018**: Li H, Furst DE, Jin H et al. (2018). High-frequency ultrasound of the skin in systemic sclerosis. Arthritis Res Ther 20:181. [doi:10.1186/s13075-018-1686-9](https://doi.org/10.1186/s13075-018-1686-9) | FT | ADOPTED | Skin thickness 1.2 mm: hand dorsum over MCP II–III, median of 31 controls (0.79–1.50). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [muscle.py:234](../myogen/simulator/core/muscle/muscle.py#L234), [muscle.py:305](../myogen/simulator/core/muscle/muscle.py#L305) | +| **nishikawa2024**: Nishikawa Y, Watanabe K, Holobar A et al. (2024). Sex differences in laterality of motor unit firing behavior of the first dorsal interosseous muscle. Eur J Appl Physiol 124:1979–1990. [doi:10.1007/s00421-024-05420-7](https://doi.org/10.1007/s00421-024-05420-7) | FT | ADOPTED | FDI depth to muscle 2.54–3.30 mm; fat 1.3 mm = 2.5 − 1.2 (derived from the low end). | [Muscle](../myogen/simulator/core/muscle/muscle.py), [test_surface_amplitude](../tests/test_surface_amplitude.py), [CHANGELOG](../CHANGELOG.md)
Cited at: [muscle.py:230](../myogen/simulator/core/muscle/muscle.py#L230), [muscle.py:306](../myogen/simulator/core/muscle/muscle.py#L306) | +| **storchle2018**: Störchle P, Müller W, Sengeis M et al. (2018). Measurement of mean subcutaneous fat thickness. Sci Rep 8:16268. [doi:10.1038/s41598-018-34213-0](https://doi.org/10.1038/s41598-018-34213-0) | FT | REJECTED | Old fat default 0.3 mm (whole-hand average, excludes skin). | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:231](../myogen/simulator/core/muscle/muscle.py#L231), [muscle.py:299](../myogen/simulator/core/muscle/muscle.py#L299) | +| **brodar1960**: Brodar V (1960). Observations on skin thickness and subcutaneous tissue in man. Z Morphol Anthropol 50:386–395. | SEC | REJECTED | Old skin default 1.29 mm (whole-body male average). | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [muscle.py:235](../myogen/simulator/core/muscle/muscle.py#L235), [muscle.py:300](../myogen/simulator/core/muscle/muscle.py#L300) | | **krammer2025**: Krammer et al. (2025). Diagnostics 15:1600. | FT | CONTEXT | Hand-dorsum dermis 0.52 ± 0.16 mm. | — | | **infantolino2010**: Infantolino BW, Challis JH (2010). Architectural properties of the first dorsal interosseous muscle. J Anat 216:463. [doi:10.1111/j.1469-7580.2009.01196.x](https://doi.org/10.1111/j.1469-7580.2009.01196.x) · [PMC2849523](https://pmc.ncbi.nlm.nih.gov/articles/PMC2849523/) | FT | CONTEXT | Volume 5.2 mL, fascicle 29.9 mm; derived CSA ~89 mm² vs model 150 mm². | — | | **burketsairis1973**: Burke RE, Tsairis P (1973). Anatomy and innervation ratios in motor units of cat gastrocnemius. J Physiol 234:749–765. [doi:10.1113/jphysiol.1973.sp010370](https://doi.org/10.1113/jphysiol.1973.sp010370) | FT | CONTEXT | Cat MG: innervation ratios FF ~550–750, FR ~400–550 (p. 756; Table 2 p. 758); unit fibres spread over a wide territory, 1–2 per primary fascicle, 3–5 per 100 fibres (p. 753); mean unit fibre areas FF 5290, FR 2890, S 1734 µm² (p. 760). No within-unit fibre-area spread given. | — | -| **polgar1973**: Polgar J, Johnson MA, Weightman D, Appleton D (1973). Data on fibre size in thirty-six human muscles: an autopsy study. J Neurol Sci 19:307–318. [doi:10.1016/0022-510X(73)90094-4](https://doi.org/10.1016/0022-510X(73)90094-4) | FT | ADOPTED | FDI fibre diameter defaults (since 2026-11-02, Devon). FDI (autopsy): type I 50.0 µm, type II 67.0 µm [p. 310 Table 2]; type I fibres 57.4 % [p. 312 Table 4]. Weighted by that proportion: mean 57.2 µm (Muscle since 2026-11-02: fibre types by motor unit on one diameter ladder that keeps these type means, log-SD 0.2 per type an assumption; was a per-fibre two-type mixture earlier the same day), root-mean-square 57.9 µm (SurfaceEMG source default, since the source scales with d²). Replaces the 50 µm attributed to brooke1970. Type II − type I 17.02 µm, P < 0.001 (p. 312 Table 4). FDI 95 % limits for a single subject's mean (between post-mortems, not the fibre-to-fibre spread): type I 35–66, type II 47–86 µm (p. 313 Table 5; methods p. 309). Minor-axis diameters, ≥ 200 fibres per sample (p. 308). Gives no within-muscle fibre SD. | —
Cited at: [surface_emg.py:95](../myogen/simulator/core/emg/surface/surface_emg.py#L95), [surface_emg.py:95](../myogen/simulator/core/emg/surface/surface_emg.py#L95), [fiber_types.py:7](../myogen/simulator/core/muscle/fiber_types.py#L7), [fiber_types.py:103](../myogen/simulator/core/muscle/fiber_types.py#L103), [fiber_types.py:105](../myogen/simulator/core/muscle/fiber_types.py#L105), [muscle.py:189](../myogen/simulator/core/muscle/muscle.py#L189), [muscle.py:194](../myogen/simulator/core/muscle/muscle.py#L194), [muscle.py:542](../myogen/simulator/core/muscle/muscle.py#L542), [muscle.py:543](../myogen/simulator/core/muscle/muscle.py#L543), [test_muscle_fibre_properties.py:57](../tests/test_muscle_fibre_properties.py#L57), [test_muscle_fibre_properties.py:278](../tests/test_muscle_fibre_properties.py#L278), [test_muscle_fibre_properties.py:278](../tests/test_muscle_fibre_properties.py#L278), [test_surface_amplitude.py:26](../tests/test_surface_amplitude.py#L26) | -| **garnett1979**: Garnett RAF, O'Donovan MJ, Stephens JA, Taylor A (1979). Motor unit organization of human medial gastrocnemius. J Physiol 287:33–43. [doi:10.1113/jphysiol.1979.sp012643](https://doi.org/10.1113/jphysiol.1979.sp012643) · [PMC1281479](https://pmc.ncbi.nlm.nih.gov/articles/PMC1281479/) | FT | CONTEXT | 57 human MG units (microstimulation, glycogen depletion, biopsy). S units small/slow/resistant, FR intermediate, FF large/fatigable [p. 33]; S units type 1 fibres, FF type 2b [p. 39–41]. Ranked by size, S and FR interleave at low force; only FF added above ~30 % cumulative twitch tension [p. 42]. Sample biased against largest/smallest units [p. 41]. Basis (with limits) for typing units by threshold (Muscle fibre typing, 2026-11-02, cited in fiber_types.py and Muscle docstring): strict type I-first order is a simplification. | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [fiber_types.py:9](../myogen/simulator/core/muscle/fiber_types.py#L9), [muscle.py:192](../myogen/simulator/core/muscle/muscle.py#L192) | +| **polgar1973**: Polgar J, Johnson MA, Weightman D, Appleton D (1973). Data on fibre size in thirty-six human muscles: an autopsy study. J Neurol Sci 19:307–318. [doi:10.1016/0022-510X(73)90094-4](https://doi.org/10.1016/0022-510X(73)90094-4) | FT | ADOPTED | FDI fibre diameter defaults (since 2026-11-02, Devon). FDI (autopsy): type I 50.0 µm, type II 67.0 µm [p. 310 Table 2]; type I fibres 57.4 % [p. 312 Table 4]. Weighted by that proportion: mean 57.2 µm (Muscle since 2026-11-02: fibre types by motor unit on one diameter ladder that keeps these type means, log-SD 0.2 per type an assumption; was a per-fibre two-type mixture earlier the same day), root-mean-square 57.9 µm (SurfaceEMG source default, since the source scales with d²). Replaces the 50 µm attributed to brooke1970. Type II − type I 17.02 µm, P < 0.001 (p. 312 Table 4). FDI 95 % limits for a single subject's mean (between post-mortems, not the fibre-to-fibre spread): type I 35–66, type II 47–86 µm (p. 313 Table 5; methods p. 309). Minor-axis diameters, ≥ 200 fibres per sample (p. 308). Gives no within-muscle fibre SD. | —
Cited at: [surface_emg.py:95](../myogen/simulator/core/emg/surface/surface_emg.py#L95), [surface_emg.py:95](../myogen/simulator/core/emg/surface/surface_emg.py#L95), [fiber_types.py:7](../myogen/simulator/core/muscle/fiber_types.py#L7), [fiber_types.py:103](../myogen/simulator/core/muscle/fiber_types.py#L103), [fiber_types.py:105](../myogen/simulator/core/muscle/fiber_types.py#L105), [muscle.py:201](../myogen/simulator/core/muscle/muscle.py#L201), [muscle.py:206](../myogen/simulator/core/muscle/muscle.py#L206), [muscle.py:554](../myogen/simulator/core/muscle/muscle.py#L554), [muscle.py:555](../myogen/simulator/core/muscle/muscle.py#L555), [test_muscle_fibre_properties.py:57](../tests/test_muscle_fibre_properties.py#L57), [test_muscle_fibre_properties.py:278](../tests/test_muscle_fibre_properties.py#L278), [test_muscle_fibre_properties.py:278](../tests/test_muscle_fibre_properties.py#L278), [test_surface_amplitude.py:26](../tests/test_surface_amplitude.py#L26) | +| **garnett1979**: Garnett RAF, O'Donovan MJ, Stephens JA, Taylor A (1979). Motor unit organization of human medial gastrocnemius. J Physiol 287:33–43. [doi:10.1113/jphysiol.1979.sp012643](https://doi.org/10.1113/jphysiol.1979.sp012643) · [PMC1281479](https://pmc.ncbi.nlm.nih.gov/articles/PMC1281479/) | FT | CONTEXT | 57 human MG units (microstimulation, glycogen depletion, biopsy). S units small/slow/resistant, FR intermediate, FF large/fatigable [p. 33]; S units type 1 fibres, FF type 2b [p. 39–41]. Ranked by size, S and FR interleave at low force; only FF added above ~30 % cumulative twitch tension [p. 42]. Sample biased against largest/smallest units [p. 41]. Basis (with limits) for typing units by threshold (Muscle fibre typing, 2026-11-02, cited in fiber_types.py and Muscle docstring): strict type I-first order is a simplification. | [Muscle](../myogen/simulator/core/muscle/muscle.py)
Cited at: [fiber_types.py:9](../myogen/simulator/core/muscle/fiber_types.py#L9), [muscle.py:204](../myogen/simulator/core/muscle/muscle.py#L204) | | **hwang2013**: Hwang K, Huan F, Kim DJ (2013). Muscle fibre types of the lumbrical, interossei, flexor, and extensor muscles moving the index finger. J Plast Surg Hand Surg 47:268–272. [doi:10.3109/2000656X.2012.755988](https://doi.org/10.3109/2000656X.2012.755988) | FT | REJECTED | FDI ~31 µm (elderly, paraffin, diameter undefined): judged an underestimate. Source of Botelho's 24.8–40.6 µm. | — | | **feinstein1955**: Feinstein B, Lindegård B, Nyman E, Wohlfart G (1955). Morphologic studies of motor units in normal human muscles. Acta Anat 23:127–142. | SEC | CONTEXT | FDI ~119 MUs, ~40,000 fibres, ~340 fibres/MU (via Piasecki 2016, De Luca 1982). | — | | **zong2021**: Zong Y et al. (2021). IEEE Trans Neural Syst Rehabil Eng 29:1199. [doi:10.1109/TNSRE.2021.3088061](https://doi.org/10.1109/TNSRE.2021.3088061) · [PMC8780215](https://pmc.ncbi.nlm.nih.gov/articles/PMC8780215/) | FT | CONTEXT | FDI MUNE 108 ± 21; CMAP 16.75 mV (ceiling). | — |

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 zYR)TqZ61TJ+)Ykf%qzNW9&h#com8^q75z33(MheOoz}df~*}N@8&Vk{D|&ApWlOq6KikYJx^Euw zrRO3Sy7G$tn}?gxiim>kyrKi=VS1+R*uY)9q6g=pu8|&o(34km;XInc796ef;uU>3 zkK66dp_ab9q7&zF!aXLW*pFBA;yhemOh2L($Sb;W9&>DJ4j(zpEBbLB{i)!fcOkr@ zBj?dDW89(D;k=?J=W#3lUO;ICujtBo#Ay5YkBZ?HeL0UUvBM8W#PN#GoX0FB^1zow zUeTNLQ1jWo-ywxpbmu(kn)~^Z>Aa#p7oPujKeTWT!a4l!J>kL}2y-CJf$$v&4hRki z4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki z4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki z4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki z4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki z4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki z4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki z4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki z4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki z4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki4hRki z4hRki4hRki4*b6ZbJ$#fnEF5dR-m&QZQXZwDK6dpNqH4o&SD&O3Ry8LfyY*v_N#>#vCK+jzv6o{L=Q%42M> zZB)z_9%W0qML*ljV|Bla(PK98cvI;R{8>0C;pl1}iG7HKid8(uKk!H#v66@Qq*l^SYaX^v zOw#q`Jl^T=JE>&JBk0}8GAB&sQ7B6|<2!}N!f0fXlXyH?(~{NCh=+$(TDF5B52e?ObMnUXNIv&9 z=gU|gM!V0Poi~ODIo&!pVl7hJ!@3>mgx;JIfRcndL!mL2kn-rH=ng}xN`O7%`sm&EIAl;%d3^cbIdLked6HNtEsf_M-IL2 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

fjm<(lYK1tv6WU$4Eti3t^d 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