pyCGM2.Lib.analysis.makeAnalysis#
- pyCGM2.Lib.analysis.makeAnalysis(DATA_PATH: str, filenames: List, eventType: str = 'Gait', kinematicLabelsDict: Dict | None = {'Left': ['LHipAngles', 'LKneeAngles', 'LAnkleAngles', 'LFootProgressAngles', 'LPelvisAngles', 'LForeFootAngles', 'LThoraxAngles', 'LSpineAngles', 'LNeckAngles', 'LHeadAngles', 'LShoulderAngles', 'LElbowAngles', 'LWristAngles'], 'Right': ['RHipAngles', 'RKneeAngles', 'RAnkleAngles', 'RFootProgressAngles', 'RPelvisAngles', 'RForeFootAngles', 'RThoraxAngles', 'RSpineAngles', 'RNeckAngles', 'RHeadAngles', 'RShoulderAngles', 'RElbowAngles', 'RWristAngles']}, kineticLabelsDict: Dict | None = {'Left': ['LHipMoment', 'LKneeMoment', 'LAnkleMoment', 'LHipPower', 'LKneePower', 'LAnklePower', 'LStanGroundReactionForce', 'LGroundReactionForce'], 'Right': ['RHipMoment', 'RKneeMoment', 'RAnkleMoment', 'RHipPower', 'RKneePower', 'RAnklePower', 'RStanGroundReactionForce', 'RGroundReactionForce']}, emgChannels: List | None = ['Voltage.EMG1', 'Voltage.EMG2', 'Voltage.EMG3', 'Voltage.EMG4', 'Voltage.EMG5', 'Voltage.EMG6', 'Voltage.EMG7', 'Voltage.EMG8', 'Voltage.EMG9', 'Voltage.EMG10', 'Voltage.EMG11', 'Voltage.EMG12', 'Voltage.EMG13', 'Voltage.EMG14', 'Voltage.EMG15', 'Voltage.EMG16'], geometryMuscleLabelsDict: Dict | None = None, dynamicMuscleLabelsDict: Dict | None = None, pointLabelSuffix: str | None = None, subjectInfo: Dict | None = None, experimentalInfo: Dict | None = None, modelInfo: Dict | None = None, **kwargs)#
This function normalises data in time and returns an Analysis Instance ie a nested dictionary containing spatiotemporal parameters, normalized kinematics, normalized kinetics and normalized EMG envelops from a list of c3d files.
By default: the function calls :
kinematic and kinetic ouputs of the CGM
emg channels names Voltage.EMG1 to Voltage.EMG16
You can also compute spatiotemporal parameters, normalized kinematics, normalized kinetics and normalized EMG envelops from different set of c3d files. For that, use the named arguments :
pstfilenames
kinematicfilenames
kineticfilenames
emgfilenames
- Parameters:
DATA_PATH (str) – Folder path containing c3d files.
filenames (List[str]) – List of c3d filenames for analysis.
eventType (str, optional) – Type of events, defaults to ‘Gait’. Options include ‘Gait’ and ‘unknown’.
kinematicLabelsDict (Dict, optional) – Dictionary specifying kinematic data to normalize.
kineticLabelsDict (Dict, optional) – Dictionary specifying kinetic data to normalize.
emgChannels (List[str], optional) – List of EMG channels. Defaults to channels defined in pyCGM2.EMG_CHANNELS.
geometryMuscleLabelsDict (Optional[Dict], optional) – Dictionary specifying muscle geometry labels.
dynamicMuscleLabelsDict (Optional[Dict], optional) – Dictionary specifying dynamic muscle labels.
pointLabelSuffix (Optional[str], optional) – Suffix associated with point outputs.
subjectInfo (Optional[Dict], optional) – Metadata information about the subject.
experimentalInfo (Optional[Dict], optional) – Metadata information about the experiment.
modelInfo (Optional[Dict], optional) – Metadata information about the model.
- Keyword Arguments:
btkAcqs (List[btk.btkAcquisition]) – Optional list of btkAcquisition instances to process.
pstfilenames (List[str]) – Optional list of c3d files for computing spatiotemporal parameters.
kinematicfilenames (List[str]) – Optional list of c3d files for normalizing kinematic data.
kineticfilenames (List[str]) – Optional list of c3d files for normalizing kinetic data.
emgfilenames (List[str]) – Optional list of c3d files for normalizing EMG data.
- Returns:
analysis.Analysis – an analysis instance
Examples:
analysisInstance = analysis.makeAnalysis(DATA_PATH, [file1.c3d,"file2.c3d"])
The code takes 2 c3d files, then time normalized kinematics, kinetics and emg. Kinematic and kinetic labels are the default CGM output labels. The Emg channels are defined in the emg.setting file
analysisInstance2 = analysis.makeAnalysis(DATA_PATH, [file1.c3d,"file2.c3d"], ..........................................kinematicLabelsDict = {"Left": ["LHipAngles,LKneeAngles"], "Right": ["RHipAngles,RKneeAngles"]}, ..........................................kineticLabelsDict = {"Left": ["LHipMoment,LKneePower"], "Right": ["RHipMoment,RKneeMoment"], ..........................................emgChannels = ["Voltage.EMG1","Voltage.EMG2","Voltage.EMG3"], ..........................................subjectInfo = {"Name":"Doe","Firstname":"John"}, ..........................................experimentalInfo = {"Barefoot":"No"}, ..........................................modelInfo = {"Model":"CGM1"})
The code called specific model outputs and emg channels. In addition, the code also adds subject, experimental and model metadata. These information will be displayed in the exported spreadsheet.