LabMaestro
Breadcrumbs

Method Components

Introduction

This page aims to detail the Method components available in the LabMaestro Experiment Builder and how they interact with their underlying Timelines.

After reading this page, you should:

  • Be familiar with the available Method components.

  • Understand how to edit Method properties.

  • Understand how method properties impact the experiment.

Prerequisites

  • LabMaestro is installed and activated.

Method Components

Method components allow experimenters to manage variables related to their experimental design, such as stimulus properties (e.g., colour, size, presentation time, spatial frequency), and streamline their definition. Method components are the top-level components and can be added directly under Experiment Design in the Project Panel. Upon opening a Method component, a window will open.

image-20260204-191058.png
Editing a Method component (LabMaestro Version 1.11)

You can generally divide this window into two halves. The top half shows method properties and allows the experimenter to control how the experiment behaves. The bottom half, or Condition List, allows experimenters to define variables and build their experiment design across all trials.

Method Component Properties

Each Method component type has its own properties. Below is a detailed overview of each available Method component type and its editable properties.

Constant Stimulus Method

The Constant Stimulus component enables precise control of experimental variables for designs that present a constant visual stimulus as a function of various parameters. This component is flexible and can serve as a base for many vision science experiments.

Constant Stimuli components have the following properties:

  • Name. Component reference name. Use this name when accessing a method property. Must be unique to avoid conflicts.

  • Type (Read Only). Type of the component, as defined in the component library.

  • Trial Transition Screen. Define the type of trial transition for this component. Options include wait time and wait key.

  • Fixed Seed. Toggle on to define a static seed to control random behaviour during the experiment. Generally used for testing and confirming that you can replicate random behaviour. In most cases, this should be off during data collection.

  • Seed. Define the seed controlling random pattern behaviour, if Fixed Seed is On.

  • Save Types in Log. Toggle On to save the trial type to the output log file.

  • Replications. Define the number of times to repeat all trials defined in the Condition List.

  • Blocking Trials. Define the blocking method for trials.

    • Blocked by Replications will show all possible trials once before replicating them.

      • For example, if 5 trials are defined in the condition list and Replications is set to 2, replications would follow a ([1-2-3-4-5][1-2-3-4-5]) design.

    • Blocked by Conditions will show all trials of a condition for the appropriate number of replications before proceeding to the next condition.

      • For example, if 5 trials are defined in the condition list and Replications is set to 2, replications would follow a ([1-1][2-2][3-3][4-4][5-5]) design.

    • Fully Randomized shows trials in a completely random order.

  • Show Logs in Output Window. Toggle On to produce logs in the LabMaestro output window.

For an example of a complete experiment using a Constant Stimulus method, please see this page, which shows a LabMaestro implementation of the Stroop task.

Staircase Method

Method component to enable standard staircase procedures for experiments. This classical method is often used when visual stimuli must react to participant responses during an experiment.

Staircase components have the following properties:

  • Name. Component reference name. Use this name when accessing a method property. Must be unique to avoid conflicts.

  • Type (Read Only). Type of the component, as defined in the component library.

  • Trial Transition Screen. Define the type of trial transition for this component. Options include wait time and wait key.

  • Fixed Seed. Toggle on to define a static seed to control random behaviour during the experiment. Generally used for testing and confirming that you can replicate random behaviour. In most cases, this should be off during data collection.

  • Seed. Define the seed controlling random pattern behaviour, if Fixed Seed is On.

  • Save Types in Log. Toggle On to save the trial type to the output log file.

  • Dependent Variable. The name of the dependent variable. You can use this name in Expressions to dynamically reflect changes in component properties.

  • Starting Value. Initial estimate of the dependent variable value.

  • Minimum Value. Define the minimum value for the dependent variable.

  • Maximum Value. Define the maximum value for the dependent variable.

  • Maximum Number of Reversals. Define the maximum number of reversals. Once this number is reached, the part of the experiment related to this method component ends.

  • Maximum Number of Attempts. Define the maximum number of trials. Once this number is reached, the method component ends regardless of the number of reversals observed.

  • Thresholds.

  • Inputs. Define possible participant inputs. You can define inputs that will increase the value of the Dependent Variable, and others that decrease it.

  • Fixed Value Replication. Toggle On to enable replications at fixed values of your dependent variable.

  • Blocking Trials. Define the blocking method for trials and replications.

    • Blocked by Replications will show all possible trials once before replicating them.

    • Blocked by Conditions will show all trials of a condition for the appropriate number of replications before proceeding to the next condition.

    • Fully Randomized shows trials in a completely random manner.

  • Starting From. Define the starting point of the staircase method in your experiment, generally a timeline under your staircase component.

  • Default Step. Define the default variation in the dependent variable value after each trial.

  • Steps. Define more precise step values based on the number of reversals during the task. Allows you to reduce the step size to capture more minute variations after multiple reversals.

For an example of a complete experiment using the Staircase method, please see this page, which shows a LabMaestro implementation of a contrast sensitivity measurement task.

Quest Method

Method component allowing manipulation of an experimental variable using the QUEST Bayesian algorithm (Watson & Pelli, 1983). This method is similar to the staircase method, but the step size dynamically varies after each reversal based on predefined parameters.

Quest components have the following properties:

  • Name. Component reference name. Use this name when accessing a method property. Must be unique to avoid conflicts.

  • Type (Read Only). Type of the component, as defined in the component library.

  • Trial Transition Screen. Define the type of trial transition for this component. Options include wait time and wait key.

  • Fixed Seed. Toggle on to define a static seed to control random behaviour during the experiment. Generally used for testing and confirming that you can replicate random behaviour. In most cases, this should be off during data collection.

  • Seed. Define the seed controlling random pattern behaviour, if Fixed Seed is On.

  • Save Types in Log. Toggle On to save the trial type to the output log file.

  • Dependent Variable. The name of the dependent variable. Use this name in Expressions to dynamically reflect changes in component properties.

  • Guess. Initial estimate of the dependent variable value.

  • Minimum Value. Define the minimum value for the dependent variable.

  • Maximum Value. Define the maximum value for the dependent variable.

  • Maximum Number of Reversals. Define the maximum number of reversals. Once this number is reached, the method component ends.

  • Maximum Number of Attempts. Define the maximum number of trials. Once this number is reached, the method component ends.

  • Thresholds.

  • Inputs. Define possible participant inputs. You can define inputs that will increase the value of the Dependent Variable and others that decrease it.

  • Fixed Value Replication. Toggle On to enable replications at fixed values of your dependent variable.

  • Blocking Trials. Define the blocking method for trials.

    • Blocked by Replications will show all possible trials once before replicating them.

    • Blocked by Conditions will show all trials of a condition for the appropriate number of replications before proceeding to the next condition.

    • Fully Randomized shows trials in a completely random manner.

  • Starting From. Define the starting point of the quest method in your experiment. This will generally be a timeline under your staircase component.

  • Standard Deviation Guess. Standard deviation on the initial estimate. The higher the value, the more quickly the estimate will fluctuate between trials.

  • Quest Parameters. Parameters underlying the Quest function, adjusting the value of steps. These include:

    • Beta. Define the slope of the Weibull psychometric function.

    • Gamma. Define the probability of success at 0 intensity.

    • Delta. Define the estimated rate of unwilling mistakes (i.e., finger mistakes).

    • Grain. Define the precision of the estimate.

    • Range.

Condition List

The Condition List, located at the bottom half of the editing window for method components, allows you to define independent variables expected to affect your dependent variable.

The steps below detail how to set up a Condition List for an experiment.

Step 1 - Define Variables

As a first step, you should create variables for each independent variable in your experiment. You can do this by pressing the Define a New Variable button. Each variable has the following properties:

  • Name: The variable reference name.

  • Description: Small, optional description for experimenters to know what this variable represents.

  • Type Name: The value type for this variable. The type can be any of those compatible with LabMaestro Expressions.

  • Class: Variable level of importance. Can be independent (split or blocked), which will tie with the requested number of Replications defined in the method properties, or an attribute.

  • Randomize: Toggle on to randomize the order of occurrence of the defined variable values.

image-20260205-152803.png
Defining a new variable in the Condition List (LabMaestro Version 1.11).

Step 2 - Populate Variable Values

As a second step, you should populate the condition list with the expected values your variables should take during the experiment.

As an example, taking the condition list from the StroopTask - Ink method of the Stroop Effect template experiment, we can see the independent parameter (TextColorName) has three possible values, which can all appear in three different colors (RGB(1, 0, 0), RGB(0, 1, 0), RGB(0, 0, 1)). The correct input is tied to the ink colour, and not to the presented word. With these 9 trials defined in the condition list and run across 10 fully randomized replications, this experiment would last a total of 90 trials, with each of the 9 possible trial conditions appearing fully randomized across the experiment.

image-20260205-155933.png
Example of a populated Condition List (LabMaestro Version 1.11)

Step 3 - Validate Experiment Flow

Once you have populated your Condition List, you can test your method by pressing the Runtime Preview button to confirm that your experiment behaves as desired. This requires the underlying Timelines to have been prepared.

Experiment Design Hierarchy

Values and Expressions: Dynamic Content

Stroop Effect