___________________________________________________________________________________________________________________
'Me-not Me' Reaction Time Task
___________________________________________________________________________________________________________________
Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 09-20-2017
last updated: 03-13-2020 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC
Script Copyright © 03-13-2020 Millisecond Software
___________________________________________________________________________________________________________________
BACKGROUND INFO
___________________________________________________________________________________________________________________
This script implements a computerized version of the the 'Me-not me' reaction time task;
a task to study self-concept particularly in the context of relationships.
The implemented procedure is similarly to the one described in:
Aron, A, Tudor, M, Aron, E, & Nelson, G. (1991). Close relationships as including other in the self.
Journal of Personality and Social Psychology, 60(Feb 91), 241-253.
Slotter, E.B. ; Gardner, W.L. & Simpson, J. (2009). Where Do You End and I Begin? Evidence for Anticipatory,
Motivated Self–Other Integration Between Relationship Partners.
Journal of Personality and Social Psychology, Vol.96(6), pp.1137-1151
___________________________________________________________________________________________________________________
TASK DESCRIPTION
___________________________________________________________________________________________________________________
Participants are presented a series of trait descriptors, one at a time in the middle of the screen,
and are asked to sort the traits as fast as possible via a keypress into category 'me' (-> applies to me a lot)
or 'not me' (-> doesn't really apply to me).
___________________________________________________________________________________________________________________
DURATION
___________________________________________________________________________________________________________________
the default set-up of the script takes appr. 2 minutes to complete
___________________________________________________________________________________________________________________
DATA FILE INFORMATION
___________________________________________________________________________________________________________________
The default data stored in the data files are:
(1) Raw data file: 'menotme_raw*.iqdat' (a separate file for each participant)*
build: The specific Inquisit version used (the 'build') that was run
computer.platform: the platform the script was run on (win/mac/ios/android)
date, time, date and time script was run
subject, group, with the current subject/groupnumber
script.sessionid: with the current session id
blockcode, blocknum: the name and number of the current block (built-in Inquisit variable)
trialcode, trialnum: the name and number of the currently recorded trial (built-in Inquisit variable)
Note: trialnum is a built-in Inquisit variable; it counts all trials run; even those
that do not store data to the data file such as feedback trials. Thus, trialnum
may not reflect the number of main trials run per block.
values.countCategorizationBlocks: running total of all test categorization blocks
values.countCategorizationTrials: running total of the trials within each categorization block
stimulusitem: the presented stimuli in order of trial presentation
values.valence: valence of the presented trait: "positive" vs. "negative" vs. "neutral"
response: scancode of the selected response key (e.g. 18 = E; 23 = I)
values.responseCategory: response category selected: "me" vs. "not me"
latency: the response latency (in ms); measured from:
(2) Summary data file: 'menotme_summary*.iqdat' (a separate file for each participant)*
computer.platform: the platform the script was run on (win/mac/ios/android)
script.startdate: date script was run
script.starttime: time script was started
script.subjectid: assigned subject id number
script.groupid: assigned group id number
script.sessionid: assigned session id number
script.elapsedtime: time it took to run script (in ms); measured from onset to offset of script
script.completed: 0 = script was not completed (prematurely aborted);
1 = script was completed (all conditions run)
expressions.meanRT_me: mean latency (in ms) of 'me' categorization across all trait words
expressions.meanRT_notme: mean latency (in ms) of 'notme' categorization across all trait words
expressions.meanRT_me_positive: mean latency (in ms) of 'me' categorization across all positive trait words
expressions.meanRT_me_negative: mean latency (in ms) of 'me' categorization across all negative trait words
expressions.meanRT_me_neutral: mean latency (in ms) of 'me' categorization across all neutral trait words
expressions.meanRT_notme_positive: mean latency (in ms) of 'not me' categorization across all positive trait words
expressions.meanRT_notme_negative: mean latency (in ms) of 'not me' categorization across all negative trait words
expressions.meanRT_notme_neutral: mean latency (in ms) of 'not me' categorization across all neutral trait words
* separate data files: to change to one data file for all participants (on Inquisit Lab only), go to section
"DATA" and follow further instructions
___________________________________________________________________________________________________________________
EXPERIMENTAL SET-UP
___________________________________________________________________________________________________________________
(1) Practice Block: 5 practice traits are presented to practice the procedure
The practice block turns into the test block without further instructions
(2) Test Block:
* by default the test blocks runs once (see editable parameters.nrCategorizationBlocks)
* by default, each test block runs 45 items
(15 positively valenced descriptors, 15 neutral descriptors, 15 negatively valenced descriptors)
=> number of traits presented adapts automatically to the number of traits listed under item.traits
(see section Editable Stimuli)
* order of traits is selected randomly
Trial Sequence:
trait presented until categorization response -> ITI (default:1000ms)
___________________________________________________________________________________________________________________
STIMULI
___________________________________________________________________________________________________________________
trait words for this script were selected from:
Anderson, N. H. (1968). Likableness ratings of 555 personality-trait
words. Journal of Personality and Social Psychology. 9, 272-279.
Positive Traits: likeability score > 450
Neutral Traits: 350 > likeability score > 250
Negative Traits: 150 > likeability score
(the likeability scores of the default practice traits in this script fall outside these ranges)
The traits can easily be adapted under section Editable Stimuli.
___________________________________________________________________________________________________________________
INSTRUCTIONS
___________________________________________________________________________________________________________________
provided by Millisecond Software - can be edited under section Editable Instructions
___________________________________________________________________________________________________________________
EDITABLE CODE
___________________________________________________________________________________________________________________
check below for (relatively) easily editable parameters, stimuli, instructions etc.
Keep in mind that you can use this script as a template and therefore always "mess" with the entire code
to further customize your experiment.
The parameters you can change are:
Response Keys:
/leftKey: the left response key (here: E)
/rightKey: the right response key (here: I)
/leftcategory: 1 = category 'me'; 2 = category 'not me' (left category is assigned 'me' category)
/leftcategory: label of left category ('me')
/rightcategory: 1 = category 'me'; 2 = category 'not me' (right category is assigned 'not me' category)
/rightcategory: label of right category ('not me')
/traitSize: size of trait descriptor proportional to canvas height (default: 8%)
/iti: intertrial duration (in ms) (default: 1000ms)
/readyDuration: duration (in ms) of the 'get ready' trial (default: 5000ms)
/nrCategorizationBlocks: number of times the categorization blocks runs (default: 1)
**************************************************************************************************************
**************************************************************************************************************
EDITABLE PARAMETERS: change editable parameters here
**************************************************************************************************************
**************************************************************************************************************
/leftKey = "E"
/rightKey = "I"
/leftcategory = 1
/leftcategory_label = "me"
/rightcategory = 2
/rightcategory_label = "not me"
/traitSize = 8%
/iti = 1000
/readyDuration = 5000
/nrCategorizationBlocks = 1
**************************************************************************************************************
**************************************************************************************************************
EDITABLE STIMULI
**************************************************************************************************************
**************************************************************************************************************
Anderson (1968):
1-15: trait word ratings > 450 (positive)
16-30: 350 < trait word ratings < 250 (neutral)
31-45: 150 > trait word ratings (negative)
!script automatically adapts trials to number of items
!If the traits are edited, make sure to change item.traitvalences (below) accordingly (if of interest)
-
/1 = "sincere"
/2 = "reliable"
/3 = "open-minded"
/4 = "cheerful"
/5 = "tactful"
/6 = "energetic"
/7 = "polite"
/8 = "efficient"
/9 = "cooperative"
/10 = "patient"
/11 = "courageous"
/12 = "observant"
/13 = "creative"
/14 = "helpful"
/15 = "humorous"
/16 = "outspoken"
/17 = "perfectionistic"
/18 = "reserved"
/19 = "bold"
/20 = "suave"
/21 = "cautious"
/22 = "shrewd"
/23 = "impulsive"
/24 = "emotional"
/25 = "conservative"
/26 = "skeptical"
/27 = "eccentric"
/28 = "opinionated"
/29 = "naive"
/30 = "unpredictable"
/31 = "deceitful"
/32 = "conceited"
/33 = "selfish"
/34 = "intolerant"
/35 = "humorless"
/36 = "careless"
/37 = "irrational"
/38 = "unreliable"
/39 = "aimless"
/40 = "superficial"
/41 = "jealous"
/42 = "nosey"
/43 = "hostile"
/44 = "lazy"
/45 = "distrustful"
-
/1 = "positive"
/2 = "positive"
/3 = "positive"
/4 = "positive"
/5 = "positive"
/6 = "positive"
/7 = "positive"
/8 = "positive"
/9 = "positive"
/10 = "positive"
/11 = "positive"
/12 = "positive"
/13 = "positive"
/14 = "positive"
/15 = "positive"
/16 = "neutral"
/17 = "neutral"
/18 = "neutral"
/19 = "neutral"
/20 = "neutral"
/21 = "neutral"
/22 = "neutral"
/23 = "neutral"
/24 = "neutral"
/25 = "neutral"
/26 = "neutral"
/27 = "neutral"
/28 = "neutral"
/29 = "neutral"
/30 = "neutral"
/31 = "negative"
/32 = "negative"
/33 = "negative"
/34 = "negative"
/35 = "negative"
/36 = "negative"
/37 = "negative"
/38 = "negative"
/39 = "negative"
/40 = "negative"
/41 = "negative"
/42 = "negative"
/43 = "negative"
/44 = "negative"
/45 = "negative"
-
/1 = "diligent"
/2 = "charming"
/3 = "idealistic"
/4 = "sentimental"
/5 = "cynical"
**************************************************************************************************************
**************************************************************************************************************
EDITABLE INSTRUCTIONS: change instructions here
**************************************************************************************************************
**************************************************************************************************************
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
Thank you!
-
/ 1 = "Words describing traits will appear one by one in the middle of the screen. Sort these traits into the two categories at the top:
If a trait applies to you a lot, press the '<%values.meKey%>' button (for 'me').
Otherwise, press the '<%values.notmeKey%>' button (for 'not me').
This is a timed sorting task. GO AS FAST AS YOU CAN.
Press to start the sorting task."
*******************************
General Helper Instructions
******************************
/ items = ("Get Ready:
~n<%expressions.buttoninstruct1%>")
/ fontstyle = ("Arial", 3.00%, false, false, false, false, 5, 1)
/ size = (80%, 40%)
****************************************************************************************************
general instruction expressions: adjust the instruction text depending on device used to run script
****************************************************************************************************
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {
"Place your index fingers over the '<%values.meKey%>' and <%values.notmeKey%> buttons";}
else {
"Put your index fingers on the on '<%values.meKey%>' and '<%values.notmeKey%>' keys on your keyboard";}
**************************************************************************************************************
!!!REMAINING CODE: Customize after careful consideration only!!!
**************************************************************************************************************
**************************************************************************************************************
**************************************************************************************************************
DEFAULTS
**************************************************************************************************************
**************************************************************************************************************
script requires Inquisit 6.1.0.0 or higher
/canvasaspectratio = (4,3)
/minimumversion = "6.1.0.0"
/ fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
/txbgcolor = white
/ txcolor = black
/ screencolor = white
**************************************************************************************************************
**************************************************************************************************************
DATA
**************************************************************************************************************
**************************************************************************************************************
Note: data file explanations under User Manual Information at the top
To change from one data file per participant to one data file for all participants, set
/separatefiles = false
***********************
raw data file
***********************
/ columns = (build, computer.platform, date, time, subject, group, script.sessionid, blockcode, blocknum,
trialcode, trialnum,
values.countCategorizationBlocks, values.countCategorizationTrials,
stimulusitem, values.valence, response, values.responseCategory, latency)
***********************
summary data file
***********************
/ columns = (computer.platform, script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid, script.elapsedtime,
script.completed,
expressions.meanRT_me, expressions.meanRT_notme,
expressions.meanRT_me_positive, expressions.meanRT_me_negative, expressions.meanRT_me_neutral,
expressions.meanRT_notme_positive, expressions.meanRT_notme_negative, expressions.meanRT_notme_neutral)
**************************************************************************************************************
**************************************************************************************************************
VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************
/countCategorizationTrials: running total of the trials within each categorization block
/countCategorizationBlocks: running total of all test categorization blocks
/response: response category selected: "me" vs. "not me"
/valence: valence of the presented trait: "positive" vs. "negative" vs. "neutral"
/meKey: helper variable: stores scancode of 'me' key
/meKey: helper variable: stores label of 'me' key
/notmeKey: helper variable: stores scancode of 'not me' key
/notmeKey: helper variable: stores label of 'not me' key
/skipIntro: true (1) = the intro and practice trials are skipped
false (0) = the intro and practice trials are run
/countCategorizationTrials = 0
/countCategorizationBlocks = 0
/responseCategory = ""
/valence = ""
/meKey = 0
/notmeKey = 0
/skipIntro = 0
**************************************************************************************************************
**************************************************************************************************************
EXPRESSIONS
**************************************************************************************************************
**************************************************************************************************************
/meanRT_me: mean latency (in ms) of 'me' categorization across all trait words
/meanRT_notme: mean latency (in ms) of 'notme' categorization across all trait words
/meanRT_me_positive: mean latency (in ms) of 'me' categorization across all positive trait words
/meanRT_me_negative: mean latency (in ms) of 'me' categorization across all negative trait words
/meanRT_me_neutral: mean latency (in ms) of 'me' categorization across all neutral trait words
/meanRT_notme_positive: mean latency (in ms) of 'not me' categorization across all positive trait words
/meanRT_notme_negative: mean latency (in ms) of 'not me' categorization across all negative trait words
/meanRT_notme_neutral: mean latency (in ms) of 'not me' categorization across all neutral trait words
/meanRT_me = list.latencies_me.mean
/meanRT_notme = list.latencies_notme.mean
/meanRT_me_positive = list.latencies_me_pos.mean
/meanRT_me_negative = list.latencies_me_neg.mean
/meanRT_me_neutral = list.latencies_me_neu.mean
/meanRT_notme_positive = list.latencies_notme_pos.mean
/meanRT_notme_negative = list.latencies_notme_neg.mean
/meanRT_notme_neutral = list.latencies_notme_neu.mean
**************************************************************************************************************
**************************************************************************************************************
INSTRUCTIONS
**************************************************************************************************************
**************************************************************************************************************
/ items = instructions
/ fontstyle = ("Arial", 3.5%, false, false, false, false, 5, 1)
/ position = (50%, 50%)
/ vjustify = center
/ hjustify = left
/ size = (80%, 50%)
/ skip = [
values.skipIntro == 1;
]
/ stimulusframes = [1 = instructions]
/ validresponse = (" ")
/ recorddata = false
*************************************
General Helper Instruction Trials/Blocks
*************************************
This trial is used when participants are asked to place their fingers on specific response
buttons. On the touchscreen, this trial presents the (inactive) response buttons to the participants.
/ skip = [
values.skipIntro == 1;
]
/ stimulusframes = [1 = getReady]
/ trialduration = parameters.readyDuration
/ validresponse = (parameters.leftKey, parameters.rightKey)
/ beginresponsetime = parameters.readyDuration
/ errormessage = false
/ recorddata = false
/ posttrialpause = 500
**************************************************************************************************************
**************************************************************************************************************
STIMULI
**************************************************************************************************************
**************************************************************************************************************
/ items = traits
/ select = noreplace
/ fontstyle = ("Arial", parameters.traitSize, false, false, false, false, 5, 1)
/ position = (50%, 50%)
/ vjustify = center
/ hjustify = center
/ size = (80%, parameters.traitSize*1.5)
/ items = practiceTraits
/ select = noreplace
/ fontstyle = ("Arial", parameters.traitSize, false, false, false, false, 5, 1)
/ position = (50%, 50%)
/ vjustify = center
/ hjustify = center
/ size = (80%, parameters.traitSize*1.5)
-
/1 = "<%parameters.leftcategory_label%>"
/2 = "<%parameters.rightcategory_label%>"
/ items = anchors
/ select = 1
/ select = noreplace
/ fontstyle = ("Arial", 5%, false, false, false, false, 5, 1)
/ position = (20%, 10%)
/ vjustify = center
/ hjustify = center
/ size = (20%, 5%)
/ txcolor = blue
/ items = anchors
/ select = 2
/ select = noreplace
/ fontstyle = ("Arial", 5%, false, false, false, false, 5, 1)
/ position = (80%, 10%)
/ vjustify = center
/ hjustify = center
/ size = (20%, 5%)
/ txcolor = blue
**************************************************************************************************************
**************************************************************************************************************
LISTS
**************************************************************************************************************
**************************************************************************************************************
*************************************************
Data Lists: used for descriptive statistics
store correct latencies/accuracy data
fill up during runtime
*************************************************
Note: list stores the latency of correct responses for each relevant trial
Note: list stores the latency of correct responses for each relevant trial
Note: list stores the latency of correct responses for each relevant trial
Note: list stores the latency of correct responses for each relevant trial
Note: list stores the latency of correct responses for each relevant trial
Note: list stores the latency of correct responses for each relevant trial
Note: list stores the latency of correct responses for each relevant trial
Note: list stores the latency of correct responses for each relevant trial
**************************************************************************************************************
**************************************************************************************************************
TRIALS
**************************************************************************************************************
**************************************************************************************************************
/ skip = [
values.skipIntro == 1;
]
/ stimulustimes = [0 = practiceTrait]
/ validresponse = (parameters.leftKey, parameters.rightKey)
/ beginresponsetime = 0
/ responseinterrupt = immediate
/ ontrialend = [
if (trial.categorizationPractice.responsetext == values.meKey){
values.responseCategory = "me";
} else {
values.responseCategory = "not me";
};
]
/ branch = [
if (trial.categorizationPractice.trialcount < item.practiceTraits.itemcount){
return trial.categorizationPractice;
};
]
/ posttrialpause = parameters.iti
/ ontrialbegin = [
values.countCategorizationTrials += 1;
]
/ stimulustimes = [0 = trait]
/ validresponse = (parameters.leftKey, parameters.rightKey)
/ beginresponsetime = 0
/ responseinterrupt = immediate
/ ontrialend = [
values.valence = item.traitvalences.item(text.trait.currentitemnumber);
if (trial.categorization.responsetext == values.meKey){
list.latencies_me.appenditem(trial.categorization.latency);
values.responseCategory = "me";
if (values.valence == "positive"){
list.latencies_me_pos.appenditem(trial.categorization.latency);
} else if (values.valence == "negative"){
list.latencies_me_neg.appenditem(trial.categorization.latency);
} else {
list.latencies_me_neu.appenditem(trial.categorization.latency);
};
} else {
list.latencies_notme.appenditem(trial.categorization.latency);
values.responseCategory = "not me";
if (values.valence == "positive"){
list.latencies_notme_pos.appenditem(trial.categorization.latency);
} else if (values.valence == "negative"){
list.latencies_notme_neg.appenditem(trial.categorization.latency);
} else {
list.latencies_notme_neu.appenditem(trial.categorization.latency);
};
};
]
/ branch = [
if (values.countCategorizationTrials < item.traits.itemcount){
return trial.categorization;
};
]
/ posttrialpause = parameters.iti
**************************************************************************************************************
**************************************************************************************************************
BLOCKS
**************************************************************************************************************
**************************************************************************************************************
/ bgstim = (left, right)
/ onblockbegin = [
values.countCategorizationBlocks += 1;
values.countCategorizationTrials = 0;
]
/ trials = [1 = instructions; 2 = getReady; 3 = categorizationPractice; 4 = categorization]
/ onblockend = [
values.skipIntro = 1;
]
/ branch = [
if (values.countCategorizationBlocks < parameters.nrCategorizationBlocks){
return block.meCategorization;
};
]
**************************************************************************************************************
**************************************************************************************************************
EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************
/ onexptbegin = [
if (parameters.leftcategory == 1){
values.meKey = parameters.leftKey;
values.notmeKey = parameters.rightKey;
} else {
values.meKey = parameters.rightKey;
values.notmeKey = parameters.leftKey;
};
]
/ blocks = [
1 = meCategorization;
]
/ postinstructions = (end)
**************************************************************************************************************
End of File
**************************************************************************************************************