<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Experiments on LabBench, Version 6.0</title>
    <link>https://docs.labbench.io/docs/experiments/</link>
    <description>Recent content in Experiments on LabBench, Version 6.0</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://docs.labbench.io/docs/experiments/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Participant validation</title>
      <link>https://docs.labbench.io/docs/experiments/participantvalidation/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.labbench.io/docs/experiments/participantvalidation/</guid>
      <description>&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;&#xA;&lt;p&gt;Participants are central to how data is recorded and stored. Running an experiment with LabBench consists of collecting data from a series of participants that each is identified by an ID.&lt;/p&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;To ensure valid participant IDs, it is possible to specify their validation in the Experiment Definition File with the &lt;code&gt;participant-validator&lt;/code&gt; element. Subject &lt;code&gt;ID&lt;/code&gt; are validated with a regular expression that can be specified by the regex attribute of the &lt;code&gt;&amp;lt;participant-validator&amp;gt;&lt;/code&gt; element. The &lt;code&gt;&amp;lt;participant-validator&amp;gt;&lt;/code&gt; also has an &lt;code&gt;advice&lt;/code&gt; attribute with text that will be displayed to the researcher if they enter an invalid ID. This attribute can be used to provide help to the operator on what is a valid participant ID in the experiment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Languages and Localization</title>
      <link>https://docs.labbench.io/docs/experiments/languages/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.labbench.io/docs/experiments/languages/</guid>
      <description>&lt;p&gt;Localization refers to adapting software to suit a specific region or culture, typically involving language, cultural norms, and regional preferences. Most importantly, this involves that subject-facing text is displayed in a language that the subject understands, but it may also involve customizing other aspects of the protocol, such as formats for dates, numbers, currency, and similar culture dependent items.&lt;/p&gt;&#xA;&lt;p&gt;Localization goes beyond mere translation and often requires a deep understanding of the subject&amp;rsquo;s culture. For example, localizing questionnaires goes beyond a translation of the text in the questionnaire but also requires a validation that the translated text holds the same meaning to the subject as the original language of the questionnaire to native speakers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Protocol properties</title>
      <link>https://docs.labbench.io/docs/experiments/protocolproperties/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.labbench.io/docs/experiments/protocolproperties/</guid>
      <description>&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;&#xA;&lt;p&gt;The behavior of a protocol when LabBench Runner executes it can be controlled with the use of protocol properties.&lt;/p&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Protocol properties is specified with the &lt;code&gt;&amp;lt;properties&amp;gt;&lt;/code&gt; element in the &lt;code&gt;&amp;lt;protocol&amp;gt;&lt;/code&gt; element of experiment definition files:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;rerun-policy&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;message=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;[The message to be displayed to the operator]&amp;#34;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                 &lt;span style=&#34;color:#c4a000&#34;&gt;require-reason=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;[true or false]&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                 &lt;span style=&#34;color:#c4a000&#34;&gt;force-warning=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;[true or false]&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;incomplete-protocol-warning&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;value=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;[true or false]&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;allow-in-session-participant-creation&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;value=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;[Required: true or false]&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;in-session-display-of-participants&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;value=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;[Required: true or false]&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;re-run-policy&#34;&gt;Re-run policy&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#re-run-policy&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xD;&#xA;&lt;p&gt;The data set for a subject can store one result for each test in a protocol. If a test is rerun the previous result is replaced with the new result from the rerun. The &lt;code&gt;&amp;lt;rerun-policy&amp;gt;&lt;/code&gt; element determines how LabBench Runner will handle rerunning tests in the protocol.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sessions</title>
      <link>https://docs.labbench.io/docs/experiments/sessions/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.labbench.io/docs/experiments/sessions/</guid>
      <description>&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;&#xA;&lt;p&gt;Protocols can be devided up into multiple sessions that typically are repeated at different time points/days during the study. When sessions are defined in a protocol each test in the protocol must specify which session it belongs to with its &lt;code&gt;session&lt;/code&gt; attribute.&lt;/p&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Multi-session protocols are created by including a &lt;code&gt;&amp;lt;sessions&amp;gt;&lt;/code&gt; element in the Experiment Definition File:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;sessions&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;session&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;id=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;SES01&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;name=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Session 1&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;session&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;id=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;SES02&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;name=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Session 2&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/sessions&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;&amp;lt;sessions&amp;gt;&lt;/code&gt; element consists of a series of &lt;code&gt;&amp;lt;session&amp;gt;&lt;/code&gt; elements that each define a session in the protocol. Each &lt;code&gt;&amp;lt;session&amp;gt;&lt;/code&gt; must specify two attributes; &lt;code&gt;id&lt;/code&gt; which is the unique identifier (ID) that is used within the protocol to identify the session, and &lt;code&gt;name&lt;/code&gt; which is the name of the session that will be shown to the experimenter when (s)he must choose which session to perform when the LabBench Runner executes the protocol.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Persistent variables</title>
      <link>https://docs.labbench.io/docs/experiments/persistentvariables/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.labbench.io/docs/experiments/persistentvariables/</guid>
      <description>&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;&#xA;&lt;p&gt;Persistent variables share characteristics with &lt;code&gt;variables&lt;/code&gt; and can be used throughout a protocol wherever a variable can be used. However, unlike variables that are created each time a session is started, persistent variables are only created once when a participant is created and stay invariant for all sessions in a protocol. Furthermore, persistent variables are saved to the resulting data set and are available for data analysis scripts. Saving to the data set means that persistent variables have restrictions on their types, whereas &lt;code&gt;variables&lt;/code&gt; can be of any type created by Python code. Persistent variables &lt;code&gt;&amp;lt;persistent-variables&amp;gt;&lt;/code&gt; are primarily intended for randomizing protocol elements, but they can be used for any purpose.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Variables</title>
      <link>https://docs.labbench.io/docs/experiments/variables/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.labbench.io/docs/experiments/variables/</guid>
      <description>&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;&#xA;&lt;p&gt;Variables  can be used in calculated and dynamic text attributes, and Python scripts throughout a protocol. They enable the specification of parameters for test configuration (i.e., attribute values) that can be reused for multiple attributes, thereby eliminating the need for duplicate values. They also provide a convenient method for creating and using Python classes from single-line Python statements within Experiment Definition Files or from functions that are called from Python scripts. Python classes can significantly simplify the programming of advanced protocols.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
