Table of Contents

Set Pipeline Parameter To Data Value

Overview

This command can be used to set the value of a pipeline parameter to a specified value as defined by the user. This value can be any type of signal in that given workspace. This command can be found under Pipeline Control in the pipeline workshop.

Pipeline Command

The command below is as seen on the Visual3D application.

Set_Pipeline_Parameter_To_Data_Value
/SIGNAL_TYPES=
! /SIGNAL_FOLDER=ORIGINAL
! /SIGNAL_NAMES=
! /SIGNAL_COMPONENTS=ALL_COMPONENTS
/PARAMETER_NAME=
;

Command Parameters

The following table shows the command parameters and descriptions:

SIGNAL_TYPES The type of signal you wish to set as the parameter value, e.g. LINK_MODEL_BASED
SIGNAL_FOLDER Corresponding Folder e.g. PROCESSED
SIGNAL_NAMES Name of the Desired signal
SIGNAL_COMPONENTS Components of the desired Signal, default is all components
PARAMATER_NAME Name for new parameter

Examples

Simple example

Create a parameter called SUBJECT_ID based on subject names stored in PARAMETERS:SUBJECT:NAMES.

Set_Pipeline_Parameter_To_Data_Value
/SIGNAL_TYPES=PARAMETERS
/SIGNAL_FOLDER=SUBJECTS
/SIGNAL_NAMES=NAMES
! /SIGNAL_COMPONENTS=ALL_COMPONENTS
/PARAMETER_NAME=SUBJECT_ID
;

Complex example

Example of EMG data processing using Set_Parameter_Pipeline_To_Data_Value to get the analog sampling which was used to determine the number of frames of the moving RMS window.

File_New

;

Set_Pipeline_Parameter_To_Folder_Path
/PARAMETER_NAME=ROOTFOLDER
/PARAMETER_VALUE=VISUAL3D_DEFAULT_DATA_FOLDER
! /FROM_MOTION_FILE_IN_WORKSPACE=
! /PARAMETER_VALUE_SEARCH_FOR=
! /PARAMETER_VALUE_REPLACE_WITH=
! /PARAMETER_VALUE_APPEND=
! /SET_PROMPT=Select a directory
! /ALPHABETIZE=TRUE
;

File_Open
/FILE_NAME=*Q*
/FILE_PATH=::ROOTFOLDER
/SEARCH_SUBFOLDERS=TRUE
! /SUFFIX=
! /SET_PROMPT=File_Open
! /ON_FILE_NOT_FOUND=PROMPT
! /FILE_TYPES_ON_PROMPT=
;

!Assign Tags to MVC_A file
Assign_Tags_To_File
/MOTION_FILE_NAMES=*QMVC_A.C3D
! /QUERY=
/TAGS=MVC_A
;

!Assign Tags to MVC_B file
Assign_Tags_To_File
/MOTION_FILE_NAMES=*QMVC_B.C3D
! /QUERY=
/TAGS=MVC_B
;

!Assign Tags to MVC_C file
Assign_Tags_To_File
/MOTION_FILE_NAMES=*QMVC_C.C3D
! /QUERY=
/TAGS=MVC_C
;

!Assign Tags to walking files
Assign_Tags_To_File
/MOTION_FILE_NAMES=*Qtrial*.C3D
!/QUERY=
/TAGS=MOVEMENT
;

Set_Pipeline_Parameter
/PARAMETER_NAME=EMG_SIGNALS
/PARAMETER_VALUE=EMG_A+EMG_B+EMG_C
;

! Select active file ALL_FILES
Select_Active_File 
/FILE_NAME=ALL_FILES 
! /QUERY= 
;

! Apply highpass filter with 50 Hz cutoff
Highpass_Filter 
/Signal_Types=ANALOG 
/SIgnal_Names=::EMG_SIGNALS 
/Signal_Folder=ORIGINAL 
! /Result_Suffix= 
! /Result_Folder=PROCESSED 
! /Filter_Class=BUTTERWORTH 
/Frequency_Cutoff=50 
/Num_Reflected= 0 
/Total_Buffer_Size=100 
/Num_Bidirectional_Passes=1 
;

! Apply lowpass filter with 500 Hz cutoff
Lowpass_Filter 
/Signal_Types=ANALOG 
/SIgnal_Names=::EMG_SIGNALS 
/Signal_Folder=PROCESSED 
! /Result_Suffix= 
! /Result_Folder=PROCESSED 
! /Filter_Class=BUTTERWORTH 
/Frequency_Cutoff=500 
/Num_Reflected= 0 
/Total_Buffer_Size=100 
/Num_Bidirectional_Passes=1 
;

Set_Pipeline_Parameter_To_Data_Value
/SIGNAL_TYPES=PARAMETERS
/SIGNAL_FOLDER=ANALOG
/SIGNAL_NAMES=RATE
! /SIGNAL_COMPONENTS=ALL_COMPONENTS
/PARAMETER_NAME=ANALOGRATE
;

Moving_RMS 
/SIGNAL_TYPES=ANALOG 
/SIGNAL_NAMES=::EMG_SIGNALS 
/SIGNAL_FOLDER=PROCESSED 
! /RESULT_SUFFIX= 
/RESULT_FOLDER=RMS 
/NUM_WINDOW_FRAMES=1+0.1*&::ANALOGRATE&
;

Event_Explicit
/EVENT_NAME=START
/FRAME=50
! /TIME=
;

Event_Explicit
/EVENT_NAME=END
/FRAME=250
! /TIME=
;

Set_Pipeline_Parameter 
/PARAMETER_NAME=START_AT_EVENT 
/PARAMETER_VALUE=START 
;

Set_Pipeline_Parameter 
/PARAMETER_NAME=END_AT_EVENT  
/PARAMETER_VALUE=END 
;

For_Each 
/ITERATION_PARAMETER_NAME=INDEX 
/ITEMS=::EMG_SIGNALS 
;

! Create an event at the maximum value
Event_Global_Maximum 
/SIGNAL_TYPES=ANALOG 
/SIGNAL_NAMES=::INDEX 
/SIGNAL_FOLDER=RMS 
/EVENT_NAME=EMG_MAX 
/SELECT_X=TRUE 
! /SELECT_Y=FALSE 
! /SELECT_Z=FALSE 
/START_AT_EVENT=::START_AT_EVENT 
/END_AT_EVENT=::END_AT_EVENT 
;

! Create an event MEAN_START 15 frames prior to the max event
Event_Copy 
/EVENT_NAME=EMG_MAX 
! /EVENT_INSTANCE=0 
! /START_AT_EVENT= 
! /END_AT_EVENT= 
/NEW_EVENT_NAME=MEAN_START 
/FRAME_OFFSET=-15 
;

! Create an event MEAN_END 15 frames after the max event
Event_Copy 
/EVENT_NAME=EMG_MAX 
! /EVENT_INSTANCE=0 
! /START_AT_EVENT= 
! /END_AT_EVENT= 
/NEW_EVENT_NAME=MEAN_END 
/FRAME_OFFSET=15 
;

! Calculate mean of EMG signal between MEAN_START and MEAN_END 
Metric_Mean 
/RESULT_METRIC_NAME=::INDEX&_SCALE 
! /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE 
/RESULT_METRIC_FOLDER=EMG_SCALE 
/SIGNAL_TYPES=ANALOG 
/SIGNAL_NAMES=::INDEX 
/SIGNAL_FOLDER=RMS 
/SIGNAL_COMPONENTS=0 
/EVENT_SEQUENCE=MEAN_START+MEAN_END 
/EXCLUDE_EVENTS= 
/GENERATE_MEAN_AND_STDDEV=FALSE 
! /APPEND_TO_EXISTING_VALUES=FALSE 
;

! calculate the global maximum of the mean signal
Metric_Maximum
! /RESULT_METRIC_FOLDER=PROCESSED
/RESULT_METRIC_NAME=
/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
/SIGNAL_TYPES=METRIC
/SIGNAL_FOLDER=EMG_SCALE
/SIGNAL_NAMES=::INDEX&_SCALE
/COMPONENT_SEQUENCE=ALL
/EVENT_SEQUENCE=
/EXCLUDE_EVENTS=
/SEQUENCE_PERCENT_START=
/SEQUENCE_PERCENT_END=
! /GENERATE_MEAN_AND_STDDEV=TRUE
! /GENERATE_MEAN_AND_STDDEV_ACROSS_SUBJECTS=FALSE
! /APPEND_TO_EXISTING_VALUES=FALSE
/CREATE_GLOBAL_MAXIMUM=TRUE
! /CREATE_TRIAL_MAXIMUM=FALSE
;

! Clean up some temporary signals 
Event_Delete 
/EVENT_NAME=EMG_MAX+MEAN_START+MEAN_END 
! /EVENT_SEQUENCE= 
! /EXCLUDE_EVENTS= 
! /TIME= 
;

Remove_Signals 
/SIGNAL_TYPES=METRIC 
/SIGNAL_NAMES=::INDEX&_SCALE_MAX 
/SIGNAL_FOLDER=PROCESSED 
;

End_For_Each 
/ITERATION_PARAMETER_NAME=INDEX 
;

For_Each
/Iteration_Parameter_Name=CURRENT_SIGNAL
/Items=EMG_A+EMG_B+EMG_C
;

! Divide the EMG signal by it's maximum value, which was stored automatically in the GLOBAL workspace 

 Evaluate_Expression
 /EXPRESSION= ANALOG::ORIGINAL::&::CURRENT_SIGNAL& / GLOBAL::METRIC::PROCESSED::&::CURRENT_SIGNAL&_SCALE_MAX
 ! /SIGNAL_TYPES=
 ! /SIGNAL_FOLDER=ORIGINAL
 ! /SIGNAL_NAMES=
 /RESULT_TYPES=ANALOG
 /RESULT_FOLDERS=NORMALIZED
 /RESULT_NAME=::CURRENT_SIGNAL
 ! /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE
 ;

End_For_Each 
/Iteration_Parameter_Name= CURRENT_SIGNAL
;