OpenSim un cadru de modelare și simulare musculoscheletală pentru investigații in silico și
Ajay Seth
și Bioinginerie, Universitatea Stanford, Stanford, CA, SUA
Michael Sherman
și Bioinginerie, Universitatea Stanford, Stanford, CA, SUA
Jeffrey A. Reinbolt
b Inginerie mecanică, aerospațială și biomedicală, Universitatea din Tennessee, Knoxville, TN, SUA
Scott L. Delp
și Bioinginerie, Universitatea Stanford, Stanford, CA, SUA
c Inginerie mecanică, Universitatea Stanford, Stanford, CA, SUA
Abstract
1. Introducere
Modelarea și simularea musculo-scheletului are un potențial extraordinar de a îmbunătăți îngrijirea pacientului și de a reduce costurile tratamentului prin elucidarea relațiilor de cauză și efect la persoanele cu tulburări neurologice și musculo-scheletice și prin prezicerea tratamentelor chirurgicale și de reabilitare eficiente. Experimentele singure nu pot identifica sursele de mișcare anormală, iar proiectarea tratamentelor rămâne limitată, deoarece variabile importante, cum ar fi forțele musculare, nu sunt în general măsurabile. Simulările dinamice acționate de mușchi devin o abordare viabilă pentru a determina modul în care elementele sistemului musculo-scheletic interacționează pentru a produce mișcare. Pentru a aplica această tehnologie emergentă, pentru a identifica ce elemente afectează tulburarea de mișcare a unui individ (de exemplu, deformări osoase, excitații musculare anormale sau slăbiciune musculară) și pentru a evalua tratamente potențiale, avem nevoie de simulări tridimensionale, acționate de mușchi, care să reproducă cu exactitate mersul și alte dinamici de mișcare ale pacienților individuali. În plus, tehnologia de simulare trebuie să fie scalabilă și reutilizabilă pentru o varietate de modele și mișcări, iar aceste modele și date ar trebui să fie transferabile și rezultatele lor reproductibile.
În calitate de centru național NIH pentru simularea structurilor biologice bazată pe fizică (Simbios), mandatul nostru este de a dezvolta și disemina un kit de instrumente de simulare (SimTK) pentru a reduce barierele în calea adoptării simulării ca instrument pentru avansarea cercetării biomedicale. În special, am introdus OpenSim [1] ca resursă comunitară pentru a permite anchetatorilor individuali să modeleze și să simuleze dinamica neuromusculoscheletală în scopul înțelegerii mersului în populațiile neafectate și de pacienți.
1.1. Prezentare generală OpenSim
OpenSim cuprinde un cadru software pentru omul de știință, biomecanist, robotic, neurolog, chirurg ortoped sau orice entuziast de mișcare umană sau animală care dorește să construiască modele musculo-scheletice, să simuleze mișcarea și să analizeze comportamentele rezultate. Acest cadru include 1) o aplicație pentru utilizatorul final cu o interfață grafică pentru utilizator (GUI), 2) un set de utilitare din linia de comandă, 3) un kit de dezvoltare software (SDK) care include interfețe de programare a aplicațiilor (API) și biblioteci corespunzătoare, 4 ) un set standardizat de formate de fișiere pentru definirea și partajarea modelelor neuromusculoscheletice și a datelor conexe și 5) un set în creștere de modele musculo-scheletice reutilizabile în aceste formate, dezvoltat și publicat de diverși cercetători [2, 1, 3, 4]. Deși majoritatea utilizatorilor sunt deserviți de OpenSim GUI pentru acces la instrumentele existente, executabilele din linia de comandă facilitează procesarea în lot și gestionarea datelor prin programe terțe și scripturi shell.
Extinderea capacităților programului OpenSim necesită un nivel modest de abilități de programare C ++ și cunoștințe despre API-ul OpenSim. Extensiile iau două forme: 1) „pluginuri” care extind setul de instrumente existente și pot fi utilizate, de exemplu, din cadrul OpenSim GUI și 2) noi programe care utilizează OpenSim API, cum ar fi GUI-uri cu destinație specială sau utilitare suplimentare din linia de comandă. Pluginurile OpenSim fac extensiile utilizatorului ușoare atunci când funcționalitatea nouă se încadrează în una din cele două categorii: un nou element de model sau o metodă de extragere a stărilor sau măsurătorilor dintr-un model sau simulare. Un exemplu de extensie de utilizator ar putea fi un program de linie de comandă care determină parametrii modelului musculo-scheletic specific subiectului din datele experimentale utilizând un algoritm nou. Instrumentele din linia de comandă OpenSim sunt implementate în același mod; utilizează API-ul OpenSim pentru a încărca un model specificat, pentru a executa o secvență de rezolvatori și pentru a raporta rezultatele.
Bibliotecile OpenSim sunt scrise în C ++ și accesate printr-un API orientat obiect. Un design modular ajută la menținerea programatorului de pluginuri casual concentrat pe crearea unei singure clase sau metode fără a fi nevoie să stăpânească funcționarea interioară din spatele API-ului OpenSim. Acest design este discutat în secțiunea 3 de mai jos. API-ul și bibliotecile OpenSim sunt la rândul lor construite pe Simbody, care face parte, de asemenea, din SimTK, care oferă un API extins pentru asamblarea și gestionarea sistemului multicorp subiacent și efectuarea calculelor dinamicii multicorpului și a altor operații numerice. Simbody este descris într-o lucrare însoțitoare în aceste proceduri [5]. Programatorii OpenSim API au acces complet și la API-ul Simbody.
1.2. Capabilitățile OpenSim
OpenSim permite construirea de modele musculo-scheletice, vizualizarea mișcării acestora și un set de instrumente pentru extragerea informațiilor semnificative. Aceste instrumente includ cinematică inversă, pentru a rezolva coordonatele interne din pozițiile disponibile ale markerului spațial, corespunzătoare reperelor cunoscute pe segmente rigide; dinamica inversă pentru a determina setul de forțe generalizate necesare pentru a se potrivi cu accelerațiile estimate; optimizare statică [6, 7] pentru a descompune forțele nete generalizate printre actuatori redundanți (mușchi); și dinamica directă pentru a genera traiectorii ale stărilor prin integrarea ecuațiilor dinamice ale sistemului ca răspuns la controalele de intrare și forțele externe. Sunt furnizate instrumente specializate pentru generarea de simulări specifice pacientului. Acestea includ scalarea unui model existent pentru a se potrivi măsurătorilor specifice pacientului [8] și determinarea activărilor musculare dinamice care determină modelul să urmărească datele experimentale [9].
Modelele OpenSim sunt alcătuite din mai multe elemente (componente) care au echivalenți de calcul în sistemul de bază multicorp Simbody. Acestea includ: oase (corpuri rigide), articulații (mobilizatoare, constrângeri și forțe), elemente de contact (constrângeri rigide și forțe conforme), precum și ligamente și dispozitive de acționare musculară (forțe). Reprezentarea comenzilor neuronale provenite din sistemul nervos central care controlează activitatea musculară și astfel generarea forței musculare este centrală pentru simularea neuromusculoscheletală. Prin urmare, OpenSim oferă, de asemenea, un element de control care poate consta în funcții definite de utilizator, control de feedback canonic, control optim, precum și modele surogate simplificate pentru estimarea controlului avansului de alimentare.