====== Meta Commands Overview ======
\\
A meta-command is a Visual3D pipeline script with additional header lines so that you can pass in parameter values. It has a **.v3m** extension instead of **.v3s**. The meta-command should be stored in a folder labeled **Meta-Commands**, which is located in the Visual3D **Plugins** Folder. You will have to create this folder yourself - it is not part of a default installation.
When Visual3D starts, it scans the meta-command directory (identified in the Edit->Preferences dialog) and adds any meta-commands it finds to the pipeline editing dialog.
The header in the meta-command defines the data that should be passed. A meta-command can be used just like any other command in a pipeline script, and can be used to simply supply values, or it can be used as a macro that includes pipeline commands as well.
\\
==== Meta-Command Header Syntax ====
! BEGIN_META\\
//- This line is a mandatory identifier to signal Visual3D//
\\
! META_CMD_NAME = x\\
//- Where x is the name you want your new command to have//
\\
A meta-command can have multiple parameter specifications. Each one formatted:\\
! META_PARAM = parm_name: type : default_parameter : optionality [:sig_type:sig_name:sig_folder]\\
//- Parm_Name = what you call your parameter - followed by :\\
//
- Type = integer, string, float, signal\\
- Default_Parameter = You can set a default value for the parameter, or this can be left blank\\
- Optionality = yes, no determines if parameter is required or not\\
- For type=signal, the signal type, name, and folder are also needed//\\
//
\\
! END_META\\
//- The mandatory end identifier//
\\
For example:
! BEGIN_META
! META_CMD_NAME=Terry_Rt_Plantar_Flexors_Group
! META_PARAM= MODEL_NAME : string ::yes
! META_PARAM= RIGHT_THIGH_MARKERS : string ::yes
! META_PARAM= RIGHT_SHANK_MARKERS: string ::yes
! META_PARAM= RIGHT_FOOT_MARKERS: string ::yes
! END_META
This command will appear in the Visual3D Pipeline Dialog list box in a folder labeled **Meta_Commands**. The command will be similar to the following:
Terry_Rt_Plantar_Flexors_Group
/MODEL_NAME= *model.mdh
/RIGHT_THIGH_MARKERS= RGT+RLK+RMK
/RIGHT_SHANK_MARKERS= LTT +RLA+RMA
/RIGHT_FOOT_MARKERS= RHL+RFT2+RFT1
;
Example of a default parameter: ! META_PARAM = SEGMENT_NAME:string:RPV:yes
=== Editing a Meta-Command ===
Meta-commands are stored on the disk, not in the Workspace. In order to edit a meta-command it is necessary to open the file in a text editor such as Notepad. The pipeline stores a reference to the meta-command file, rather than loading the meta-command.
=== Meta-Command Examples ===
Following is a list of Meta-Command Examples:
== EMG ==
**1. Basic_EMG_Filters** - Basic filtering of EMG signals. A series of band-stop (notch) filter for filtering 60 Hz noise, followed by a high pass filter at 10 Hz and a low pass filter at 350 Hz. Click [[Visual3D:Documentation:Pipeline:Meta_Commands:Example_-_EMG_Meta_Command|Meta Commands Example 2]] for details.
**2. EMG_Resting_Background and Madonna_EMG_Remove Background** - To Offset trial data to accommodate for any DC shift by quantifying the EMG Background noise based on a "Resting Trial". Click [[Visual3D:Documentation:EMG:Processing_Tools|EMG: Removing Background Noise]] for details.
**3. EMG_Compute_Normalization_Factors** - Compute the normalization factor for greatest ½ second activity during 5 second trial. A window of twenty-five .02 second intervals of integrated EMG is moved one interval at a time across the 5 seconds of data to find the greatest EMG. The average integrated EMG during the ½ second is used to compute the normalization factor. Click [[Visual3D:Documentation:EMG:Filtering:Removing_DC_Bias|EMG Compute Normalization Scale Factors]] for details.
**4. EMG_Normalize** - Typically the Scaling factors for EMG signals are the result of other data trials. Individual files in Visual3D cannot access the data from other files, so they only way signals can be shared is through the Global Workspace. For the sake of this example, we will assume that the scale factors already exist in the Global Workspace. Click [[Visual3D:Documentation:EMG:Processing:Normalize_EMG_to_Generic_Global_Variable|EMG Scale by Global Value]] for details.
== Events ==
**1. Copy_Events_Between_Files** - Copy Event Labels from the MoCap c3d file into the Analog c3d file. One set of analog signals are collected with the MoCap system at 1000 Hz. One set of analog signals are collected with different software at 1500 Hz (frame 1 is synchronized). Click [[Visual3D:Documentation:Pipeline:Event_Commands:Example_-_Copy_Events_Between_Files|Events:Example 11]] for details.
**2. Compute_Events_Without_GRF** - Computing gait events from only kinematic data. The following example is based on the following article published in 2008. Zeni JA, Richards JG, Higginson JS (2008) Two simple methods for determining gait events during treadmill and overground walking using kinematic data. Gait & Posture 27, 710-714. Click [[Visual3D:Documentation:Pipeline:Event_Commands:Example_-_Gait_Events_using_Kinematic_Data|Events:Example 6]] for details.
**3. Sit_To_Stand_Events** - Computing events for sit to stand from vertical height of the Center of Mass. The subject stands then sits and stands again. Click [[Visual3D:Documentation:Pipeline:Event_Commands:Example_-_Sit_to_Stand_Events|Events:Example 7]] for details.
**4. Number_Events_Sequentially** - This meta-command will rename an event sequentially across files. There are two examples. One that renames an Event_label sequentially and the other example uses this meta-command to find complete cycles across a series of trials. Click [[Visual3D:Documentation:Pipeline:Meta_Commands:Number_Events_Sequentially_Using_a_Meta-Command|Number Events Sequentially Using a Meta-Command]] for details.
== Metrics ==
**1. Concatenate_Gait_Metrics** - This meta-command will create the gait metrics for each TAG, labeling the GLOBAL Metrics folder by this TAG, then concatenated the metrics from all TAGS into one signal and store it in a GLOBAL METRICS folder labelled ALL_TAGS. Click [[Visual3D:Documentation:Pipeline:Meta_Commands:Concatenate_Gait_Metric_Signals_Using_a_Meta-Command|Concatenate Gait Metric Signals Using a Meta-Command]] for details.
**2. Add_Index_Column_To_Metric** - Visual3D cannot plot an array of metric values since the METRIC signals have no time base. This meta-command will create a new column of data containing index numbers, so that we can plot column1 against column2. Essentially it creates an array for the metric signal which will have the additional index column. Click [[|Metrics Example 3]] for details.
== SDSSPP ==
**1. Create_3DSSPP_Target_Offsets** - This meta-command creates a collection of DERIVED signals that are used for computing the 3DSSPP Planar Angles. This command is used where there is no Linkmodel, and therefore no Landmarks defined. Click [[|Create 3DSSPP Target Offsets]] for details.
**2. Create_3DSSPP_Projected_Angles** - This meta-command computes projected planar angles consistent with the definition of the model pose in the 3DSSPP software. Click [[|Create_3DSSPP_Projected_Angles]] for details.
'**3. Create_3DSSPP_Origin_Destination_Events** - This meta-command creates Event Labels for the Origin and Destination of the Lift. Each of the three tasks, floor-to-waist, knee-to-waist, waist-to-overhead are processed differently for the event detection. These algorithms are not fool-proof, so it is imperative that the user check the events visually. Click [[|Create_3DSSPP_Origin_Destination_Events]] for details.
== Other ==
**1. Create_Global_Means_For_Left_Right** - Creates a Global_Normalized_Signal_Mean event for left and right sides with common labels (e.g. RHS and LHS). Click [[Visual3D:Documentation:Pipeline:Signal_Commands:Signal_Management_Commands#Meta-Command_-_Create_Global_Means_For_Left_Right|Create_Global_Means_For_Left_Right]] or [[Visual3D:Documentation:Statistics:Create_Mean_Signal|Statistics Example 1]] for details.
**2. Set_Corners** - Creates landmarks from Targets in a movement trial but not in the standing trial. The movement trial contains 4 markers that have been placed on the corners of an object. The standing trial does not contain these markers, but needs the corner locations for defining an object (segment). Click [[Visual3D:Documentation:Modeling:Landmarks:Example_-_Create_landmarks_from_Targets_in_movement_trial|Landmarks Example 4]] for details.
**3. FP_Shift** - Meta-command example to shift force platform corners. Click [[Visual3D:Documentation:Pipeline:Meta_Commands:Shift_Force_Platform_Corners_Using_a_Meta-command|Shift Force Platform Corners Using a Meta-command]] for details.
**4. Add_Sequential_Tags** - Given a set of C3D files opened in the Workspace, TAG files in numerical order regardless of their filenames. The purpose is to have a series of TAGS Trial1, Trial2, Trial 3,,..., etc for reporting. The order of the files is based on their internal order in Visual3D and may appear random to the user. Click [[Visual3D:Documentation:Pipeline:Meta_Commands:Tag_Files_Sequentially_using_a_Meta-Command|Tag Files Sequentially using a Meta-Command]] for details.
**5. Example_Meta** - This is an example of using a meta-command to process differing experimental protocols, models, metrics, and reports. The specifics for each experimental protocol can be passed as meta-command parameters. This could be used to standardize scripts and protocols within a lab. Click [[Visual3D:Documentation:Pipeline:Meta_Commands:Example_-_Meta_Command_Parameters|Meta Commands Example 3]] for details.
**6. Linear_Regression_Explicit** - This is an example of using a meta-command to perform a linear regression of data that is passed as meta-command parameters. Click [[Visual3D:Documentation:Statistics:Compute_Linear_Regression|Statistics Example 4]] for details.
**7. Linear_Regression_Events** - This is an example of using a meta-command to perform a linear regression between an event range for data that is passed as meta-command parameters. Click [[Visual3D:Documentation:Statistics:Meta_Command_for_Linear_Regression|Statistics Example 5]] for details.