====== Signal Management Commands ====== ==== Contents ==== * [[#Signal_Management|1 Signal Management]] * [[#Global_Normalized_Signal_Mean|1.1 Global_Normalized_Signal_Mean]] * [[#Meta-Command_-_Create_Global_Means_For_Left_Right|1.1.1 Meta-Command - Create_Global_Means_For_Left_Right]] * [[#Find_Representative_Signal|1.2 Find Representative Signal]] * [[#Merge_Data|1.3 Merge_Data]] * [[#Copy_Folder|1.4 Copy_Folder]] * [[#Rename_Folder|1.5 Rename_Folder]] * [[#Delete_Folder|1.6 Delete_Folder]] * [[#Remove_Signals|1.7 Remove_Signals]] * [[#Rename_Signals|1.8 Rename_Signals]] ==== Signal Management ==== === Global_Normalized_Signal_Mean === Time normalize a signal (in this case Knee Flexion Angle) between events (RHS to RHS) for Right Knee angles and (LHS to LHS) for Left Knee angles, and compute a GLOBAL mean and Standard Deviation. Note: the Global_Normalized_Signal_Mean command only works on one component at at time for each signal. (You must select either Y, Y or Z as the SIGNAL_COMPONENTS.) First add the Global_Normalized_Signal_Mean command to the pipeline. Double click on the command to launch the dialog. {{:GMSM_1.jpg}} select the RKNEE_ANGLE Signal and the event sequence (e.g RHS to RHS) and select **Add A New Signal** {{:GNSM_2.jpg}} select the LKNEE_ANGLE Signal and the event sequence (e.g LHS to LHS) and select **Add A New Signal** {{:GNSM_3.jpg}} Enter the **P2D Result Signal Name** and click **Create Standard Deviation** Button {{:GNSM_4.jpg}} When you select **OK** the text representation of the command should be as follows: Global_Normalized_Signal_Mean /SIGNAL_TYPES=LINK_MODEL_BASED+LINK_MODEL_BASED /SIGNAL_NAMES=RKNEE_ANGLE+LKNEE_ANGLE /SIGNAL_FOLDER=ORIGINAL+ORIGINAL /SIGNAL_COMPONENTS=X+X /START_LABEL= /END_LABEL= /EVENT_SEQUENCE= RHS+RHS++LHS+LHS ! /EXCLUDE_EVENTS= /RESULT_NAME=KNEE_FLEXION ! /RESULT_FOLDER=ORIGINAL /NORMALIZE_POINTS=101 /CREATE_STANDARD_DEVIATION=TRUE ! /CALCULATE_PER_FILE=FALSE ; **Note:** If **CALCULATE_PER_FILE=FALSE** Signals from all active files are used to compute the mean. **Note:** If **CALCULATE_PER_FILE=TRUE** The mean value is computed for Signals from each active files. The global mean value is then the mean value of the mean values. **Note:** The Output signal is a P2D Signal, which is associated with every file. The resulting signal, therefore, is stored in the GLOBAL_WORKPACE == Meta-Command - Create_Global_Means_For_Left_Right == A Meta-Command can be created for processing all 3 components of a number of model based signals using one pipeline command. Let the original cmo file contain the following signals: **RANKLE_ANGLE**, **RKNEE_ANGLE**, **RHIP_ANGLE**, **LANKLE_ANGLE**, **LKNEE_ANGLE**, and **LHIP_ANGLE**. Let the events for heel strike be labeled **LHS** and **RHS**. The mean signal should be computed from heel strike to heel strike. The Pipeline call for the Meta-Command below is: Create_Global_Means_For_Left_Right /TYPE=ANGLE /JOINTS=ANKLE+KNEE+HIP /START_EVENT=HS /END_EVENT=HS ; The Meta-Command, which should be placed in the Meta_Command folder within the Plugins folder is as follows: ! BEGIN_META ! META_CMD_NAME=Create_Global_Means_For_Left_Right ! META_PARAM= TYPE  : string ::yes ! META_PARAM= JOINTS  : string ::yes ! META_PARAM= START_EVENT  : string ::yes ! META_PARAM= END_EVENT  : string ::yes ! END_META ! Create a Global_Normalized_Signal_Mean event for left and right sides with common labels (e.g.RHS and LHS) For_Each /ITERATION_PARAMETER_NAME=INDEX1 /ITEMS=::JOINTS ; For_Each /ITERATION_PARAMETER_NAME=INDEX2 /ITEMS=X+Y+Z ; Global_Normalized_Signal_Mean /SIGNAL_TYPES=LINK_MODEL_BASED+LINK_MODEL_BASED /SIGNAL_NAMES=R&::INDEX1&_&::TYPE+L&::INDEX1&_&::TYPE /SIGNAL_FOLDER=ORIGINAL+ORIGINAL /SIGNAL_COMPONENTS=::INDEX2+::INDEX2 /START_LABEL=R&::START_EVENT+L&::END_EVENT /END_LABEL=R&::START_EVENT+L&::END_EVENT ! /EVENT_SEQUENCE= ! /EXCLUDE_EVENTS= /RESULT_NAME=::INDEX1&_&::TYPE&_&::INDEX2 ! /RESULT_FOLDER=ORIGINAL ! /NORMALIZE_POINTS=101 ! /CREATE_STANDARD_DEVIATION=FALSE ! /CALCULATE_PER_FILE=FALSE ; End_For_Each /ITERATION_PARAMETER_NAME=INDEX2 ; End_For_Each /ITERATION_PARAMETER_NAME=INDEX1 ; === Find Representative Signal === Find the signal that is most representative of a set of signals. This implementation is based on the following article: Shadmehr R and Mussa-Ivaldi FA (1994) **Adaptive Representation of Dynamics during Learning of a Motor Task**. J. Neuroscience 14(5), pp 3208-3224. **Note:** that there is an error in the appendix that we have accounted for. For example, to find the representative Knee Flexion Angle over the range RHS to RHS. Find_Representative_Signal /SIGNAL_TYPES=LINK_MODEL_BASED /SIGNAL_NAMES=RKNEE_ANGLE /SIGNAL_FOLDER=ORIGINAL /SIGNAL_COMPONENTS=X /EVENT_SEQUENCE=RHS+RHS ! /EXCLUDE_EVENTS= ! /NORMALIZE_RESULT_POINTS= /RESULT_NAME=RKNEE_ANGLE_REP ! /RESULT_FOLDER=ORIGINAL ; === Merge_Data === Merges data from more than one data name into a single signal either by **APPEND_TO_END** (appending one signal to the end of another signal) or by **MERGE_AS_NEW_COMPONENTS** (treat each original signal as a component of the new signal) For example, create a vector from 3 analog signals. Merge_Data /SIGNAL_NAMES=Analog1+Analog2+Analog3 /SIGNAL_TYPES=ANALOG+ANALOG+ANALOG /SIGNAL_FOLDER=ORIGINAL+ORIGINAL+ORIGINAL /SIGNAL_COMPONENTS=0+0+0 /RESULT_NAME=Vector /RESULT_TYPE=DERIVED /RESULT_FOLDER=PROCESSED /MERGE_TYPE=MERGE_AS_NEW_COMPONENTS ; **Note:** If the Signal_Components parameter is empty, all components of the signals will be used. === Copy_Folder === Makes a copy of an existing folder. If the new folder already exists, select whether these signals should be overwritten (replaced). Copy_Folder /SIGNAL_TYPE= /EXISTING_FOLDER= /NEW_FOLDER_NAME= /OVERWRITE_EXISTING_SIGNALS=FALSE ; === Rename_Folder === Rename the specified data tree folder. Rename_Folder /SIGNAL_TYPE= /EXISTING_FOLDER= /NEW_FOLDER_NAME= ; === Delete_Folder === Deletes the specified folder. **Note:** that ORIGINAL folders cannot be deleted. Delete_Folder /SIGNAL_TYPE= /FOLDER= ; === Remove_Signals === Remove a signal from the Workspace. **Note:** that Visual3D will not allow the user to delete ORIGINAL signals. Remove_Signals /SIGNAL_TYPES= /SIGNAL_NAMES= ! /SIGNAL_FOLDER=ORIGINAL ; For example, remove one Derived signal and one Metric Remove_Signals /SIGNAL_TYPES=DERIVED+METRIC /SIGNAL_NAMES= DERIVED1+METRIC1 ! /SIGNAL_FOLDER=PROCESSED+PROCESSED ; === Rename_Signals === Rename a signal in the Workspace. For example, rename a DERIVED signal in all of the ACTIVE files Rename_Signals ! /FILE_NAME= /SIGNAL_TYPES=DERIVED /SIGNAL_NAMES=Derived1 /SIGNAL_FOLDER=PROCESSED /NEW_SIGNAL_NAME=Derived2 ! /APPEND_TO_OLD_SIGNAL_NAME=FALSE ;