Skip to main content

A Python package for musculoskeletal modelling (version 0.2.1)

Project description

msk_modelling_python (pre-release)

A Python package for musculoskeletal modelling.

Author: Basilio Goncalves, PhD, University of Vienna, 2024


Pre-requisites for Installation

  1. Download a Code Interpreter
    I recommend Visual Studio Code, but use your preferred one.

  2. Download and Install Python (>= 3.8)
    Make sure it is the correct bit version: Python 3.8

  3. Download and Install OpenSim (suggest >=4.3)
    OpenSim Downloads

  4. Install Rapid Env Editor (optional)
    Rapid Env Editor

  5. MOKKA (optional / only Windows users) Open-source and cross-platform software to easily analyze biomechanical data


Pip installation

Create a Virtual Environment**

python -m venv msk

Note: replace 'msk' if you want a different name

Install uv package manager

pip install uv

Install msk-modelling-python

uv pip install msk-modelling-python

Test usage

import msk_modelling_python as msk
msk.bops.greet()

Install opensim

import msk_modelling_python as msk
msk.install_opensim.run()

Work with the code

  1. Activate your virtual enviroment (assume name 'msk')
    .\msk\Scripts\activate
    

  1. Clone this Module "msk_modelling_python" to your virtual environment
    cd .\msk\Lib\site-packages
    
    git clone https://github.com/basgoncalves/msk_modelling_python.git
    
    Note: Ensure the name of the package is exactly "msk_modelling_python"

  1. Run OpenSim Setup from Installation Folder
    See OpenSim Scripting in Python
    .\msk\Scripts\activate
    
    cd 'C:\OpenSim 4.5\sdk\Python'
    
    python setup_win_python38.py
    
    python -m pip install .
    
    Note: run commands from shell or terminal

  1. Add the Path to the OpenSim Libraries to Your Environment Variables
    Add the following paths to your PATH variable:
    C:\OpenSim 4.5\bin
    C:\OpenSim 4.5\lib
    
    Note: see for help https://answers.microsoft.com/en-us/windows/forum/all/change-system-variables-on-windows-11/f172c29e-fd9e-4f0b-949d-c4696bd656b8

  1. Verify the OpenSim Installation.
    python 
    
    import opensim as osim
    model = osim.Model()
    

  1. Install requirements (in the terminal)
    cd .\msk\Lib\site-packages\msk_modelling_python
    pip install -r requirements.txt
    

  1. Testing msk_modelling_python (in python)
    import msk_modelling_python as msk
    msk.run_bops()
    
    Note: to change the performance of msk.run_bops() edit the settings file in .\msk_modelling_python\src\bops\settings.json

  1. Basic Usage
    import msk_modelling_python as msk
    
    # test msk
    msk.bops.Platypus().happy()
    
    # export c3d
    c3d_file_path = r'path\to\your\file.c3d'
    msk.bops.export_c3d(c3d_file_path)
    
    # run IK
    trial = msk.Project
    

  1. Use Example Scripts Use example scripts in the "ExampleScripts" directory to get started with common tasks and workflows.

This package includes a combination of other packages and custom functions to manipulate and analyze biomechanical data. Inspired by the MATLAB version of BOPS (Batch OpenSim Processing Scripts) - BOPS

Tools to be Included:


Code Structure

  1. msk_modelling_python This is the main package including all the modules needed for msk modelling, stats, data_processing, etc. This package contains subpackages that can be used independently.

  2. bops Batch Opensim Processing Software
    Package with functions and classes to use Opensim, CEINMS, stats, and others for easier processing.

  3. workflow ⭐ NEW! Workflow Pipeline System inspired by n8n
    Create and execute automated processing pipelines with a simple, intuitive API.

    from msk_modelling_python.workflow import Pipeline, WorkflowNode
    
    # Create a pipeline
    pipeline = Pipeline("OpenSim Analysis", "IK -> ID -> SO -> JRA")
    
    # Add nodes
    ik_node = WorkflowNode("IK", run_ik_function, {"model": "path/to/model.osim"})
    id_node = WorkflowNode("ID", run_id_function)
    
    pipeline.add_node(ik_node, is_start=True)
    pipeline.add_node(id_node)
    pipeline.connect("IK", "ID")
    
    # Execute
    results = pipeline.execute()
    

    See WORKFLOW_README.md for detailed documentation.

  4. ui Functions to create user interface.

  5. osim commands


Examples

Find examples under ".\example_data\example_modules".

Workflow Examples: See example_data/workflow_example.py for complete pipeline examples including:

  • OpenSim analysis pipelines (IK -> ID -> SO -> JRA)
  • Batch processing workflows
  • Data processing pipelines

Contact

For any questions or inquiries, please contact:

References

Thelen, D. G. -2003- J. Biomech. Eng. 125, 70–77

Lloyd, D. G. et al. -2003- J. Biomech. 36, 765–776

Delp, S. L. et al. -2007- IEEE Trans. Biomed. Eng. 54, 1940–1950

Pizzolato, C. et al. -2015- J. Biomech. 48, 3929–3936

Hicks, J. L. et al. -2015- J. Biomech. Eng. 137,

Rajagopal, A. et al. -2016- IEEE Trans. Biomed. Eng. 63, 2068–2079

Goncalves, B. A. M. et al. -2023- Gait Posture 106, S68

Goncalves, B. A. M. et al. -2024- Med. Sci. Sport. Exerc. 56, 402–410

Version updates 0.1.0

  • include openSim.py with functions to improve opensim management

Version: 0.2.1

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

msk_modelling_python-0.2.1.tar.gz (2.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

msk_modelling_python-0.2.1-py3-none-any.whl (2.4 MB view details)

Uploaded Python 3

File details

Details for the file msk_modelling_python-0.2.1.tar.gz.

File metadata

  • Download URL: msk_modelling_python-0.2.1.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for msk_modelling_python-0.2.1.tar.gz
Algorithm Hash digest
SHA256 cf8c819633dca28fb7c65c30381e15f46a7a565609cbffeee70fdc8ad8edbfe3
MD5 81347646c1685d0b244ae1cf653bc836
BLAKE2b-256 e4def717bcab638c40c390b1ffbede2c8c2ff7a6aafaa7a25818e2ba88d87de1

See more details on using hashes here.

File details

Details for the file msk_modelling_python-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for msk_modelling_python-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4058ffec2a59f83bc355bfe53c6a8c02643353a8604f5c419aa866c6f6107e0e
MD5 bee39939f12db028390591c1686a1123
BLAKE2b-256 fc58d76fc556a1452a013db0a740b0cbd6a5c76062f467d00dc61e55a42554cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page