___________________________________________________________________________________________________________________ FACE NAME ASSOCIATIVE MEMORY EXAM (FNAME) ___________________________________________________________________________________________________________________ Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC Date: 10-27-2016 last updated: 06-13-2023 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC Script Copyright © 06-13-2023 Millisecond Software ___________________________________________________________________________________________________________________ BACKGROUND INFO ___________________________________________________________________________________________________________________ This script implements the Face Name Associative Memory Exam (FNAME) test based on: Rentz et al (2013). Promising developments in neuropsychological approaches for the detection of preclinical Alzheimer’s disease: a selective review. Alzheimer's Research & Therapy 2013, 5:58 Rentz DM, Amariglio RE, Becker JA, Frey M, Olson LE, Frishe K, Carmasin J, Maye JE, Johnson KA, Sperling RA: Face–name associative memory performance is related to amyloid burden in normal elderly. Neuropsychologia 2011, 49:2776–2783. ___________________________________________________________________________________________________________________ TASK DESCRIPTION ___________________________________________________________________________________________________________________ from Rentz et al, 2011, p.2777: The FNAME requires the subject to remember 16 unfamiliar face-name pairs and 16 face-occupation pairs for a total of 32 cross-modal paired associates to be remembered. The test has an initial study phase as well as free recall and cued recall trials. Initial face study phase: the test begins with an exposure to all 16 faces. Subjects are shown 4 faces to a page, one face in each quadrant. They are asked to look at each face for a total of 2s until they have seen all 16 faces. (Note: in this script, a new page with 4 faces is presented every 8s) Initial study of face-name pairs: subjects are then presented the same faces with names underneath and asked to study the name that goes with the face. To ensure that the subject is learning the face-name pairs, the examiner points to the face and asks the subject to read the name associated with that face. After all 4 items are correctly identified; another 4 face-name pairs are presented until all 16 face-name pairs are studied. Subjects are given only one exposure to learn all 16 face-name pairs. (Note: in this script, a new page with 4 faces is presented every 20s - time limit can be changed under section Editable Parameters) Initial recall of face-name pairs: subjects are then shown the face and asked to recall the name that goes with the face. The correct number of face-name pairs is recorded as an initial learning score for names (ILN). The FNAME includes both “free” and “cued” recall trials at immediate and delayed intervals. Free recall trials: after the initial study phase, subjects are then asked to freely recall all the names (FRN) and occupations (FRO). Cued recall trials: following the free recall trial, subjects are shown the face and asked to recall the name (CRN) and occupation (CRO) that was associated with the face. 30-Min delayed free recall: subjects are again asked to freely recall the names (FRN30) and occupations (FRO30) following a 30-min delay. cued recall: subjects are again shown the face and asked to recall the name (CRN30) and occupation (CRO30) associated with the face. ___________________________________________________________________________________________________________________ DURATION ___________________________________________________________________________________________________________________ the default set-up of the script takes appr. 15min (IL, FR, CR) + 30Math.min(Delay) + 7 minutes (FR30, CR30) ___________________________________________________________________________________________________________________ DATA OUTPUT DICTIONARY ___________________________________________________________________________________________________________________ The fields in the data files are: (1) Raw data file: 'facenameassocitivememoryexam_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 session: 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. variables that store face-name-occupation information of the currently presented pic(s): face1- face4: used for presenting 4 faces per page: store the itemnumber of the presented faces (clockwise starting in upper left quadrant) name1- name4: used for presenting 4 names per page: store the itemnumber of the names that were assigned to faces1-4 occupation1- occupation4: used for presenting 4 occupations per page: store the itemnumber of the occupations that were assigned to faces1-4 targetFace: stores the itemnumber of the current face picture (if only 1 is presented) targetName: stores the itemnumber of the name assigned to the current face targetOccupation: stores the itemnumber of the occupation assigned to the current face Cued Recall dependent measures: iln: initial learning names ilo: initial learning occupations frn: freely recall names fro: freely recall occupations frn30: freely recall names after 30 minutes fro30: freely recall occupations after 30 minutes responseILN: stores the given name response to the current ILN trial correctResponseILN: stores the current correct name response in condition ILN correctILN: 1 = the current entered name is correct for the given picture; 0 = otherwise (in condition ILN) responseILO: stores the given occupation response to the current ILO trial correctResponseILO: stores the current correct occupation response in condition ILO correctILO: 1 = the current entered occupation is correct for the given picture; 0 = otherwise (in condition ILO) responseCRN: stores the given name response to the current CRN trial correctResponseCRN: stores the current correct name response in condition CRN correctCRN: 1 = the current entered name is correct for the given picture; 0 = otherwise (in condition CRN) responseCRO: stores the given occupation response to the current CRO trial correctResponseCRO: stores the current correct occupation response in condition CRO correctCRO: 1 = the current entered occupation is correct for the given picture; 0 = otherwise (in condition CRO) responseCRN30: stores the given name response to the current CRN30 trial correctResponseCRN30: stores the current correct name response in condition CRN30 correctCRN30: 1 = the current entered name is correct for the given picture; 0 = otherwise (in condition CRN30) responseCRO30: stores the given occupation response to the current CRO30 trial correctResponseCRO30: stores the current correct occupation response in condition CRO30 correctCRO30: 1 = the current entered occupation is correct for the given picture; 0 = otherwise (in condition CRO30) Free Recall Dependent Measures: responseFRN: stores the entered freely recalled names in the FRN condition (freely recall all the names = FRN) countCorrectFRN: counts the number of correctly recalled names in the FRN condition (freely recall all the names = FRN) wordEstimateFRN: stores the estimate of the number of names recalled in the FRN condition (freely recall all the names = FRN) intrusionOtherFRN: stores all the recalled names that were not part of the original list (Note: might also contain misspelled names!) in the FRN condition responseFRO: stores the entered freely recalled occupations in the FRO condition (freely recall all the occupations = FRO) countCorrectFRO: counts the number of correctly recalled occupations in the FRO condition (freely recall all the occupations = FRO) wordEstimateFRO: stores the estimate of the number of occupations recalled in the FRO condition (freely recall all the occupations = FRO) intrusionOtherFRO: stores all the recalled occupations that were not part of the original list (Note: might also contain misspelled occupations!) in the FRO condition responseFRN30: stores the entered freely recalled names in the FRN30 condition (freely recall all the names with 30 min delay = FRN30) countCorrectFRN30: counts the number of correctly recalled names in the FRN30 condition (freely recall all the names with 30 min delay = FRN30) wordEstimateFRN30: stores the estimate of the number of names recalled in the FRN30 condition (freely recall all the names with 30 min delay = FRN30) intrusionOtherFRN30: stores all the recalled names that were not part of the original list (Note: might also contain misspelled names!) in the FRN30 condition responseFRO30: stores the entered freely recalled occupations in the FRO30 condition (freely recall all the occupations with 30 min delay = FR030) countCorrectFRO30: counts the number of correctly recalled occupations in the FRO30 condition (freely recall all the occupations with 30 min delay = FR030) wordEstimateFRO30: stores the estimate of the number of occupations recalled in the FRO30 condition (freely recall all the occupations with 30 min delay = FR030) intrusionOtherFRO30: stores all the recalled occupations that were not part of the original list (Note: might also contain misspelled occupations!) in the FRO30 condition (2) Summary data file: 'facenameassocitivememoryexam_summary*.iqdat' (a separate file for each participant)* inquisit.version: Inquisit version run computer.platform: the platform the script was run on (win/mac/ios/android) startDate: date script was run startTime: time script was started subjectId: assigned subject id number groupId: assigned group id number sessionId: assigned session id number elapsedTime: time it took to run script (in ms); measured from onset to offset of script completed: 0 = script was not completed (prematurely aborted); 1 = script was completed (all conditions run) cued recall: iln: number of correctly recalled names in the ILN condition (initial learning score for names) ilo: number of correctly recalled occupations in the ILO condition crn: number of correctly recalled names in the CRN condition cro: number of correctly recalled occupations in the CRO condition crn30: number of correctly recalled names in the CRN30 condition cro30: number of correctly recalled occupations in the CRO30 condition Free Recall Dependent Measures: responseFRN: stores the entered freely recalled names in the FRN condition (freely recall all the names = FRN) countCorrectFRN: counts the number of correctly recalled names in the FRN condition (freely recall all the names = FRN) wordEstimateFRN: stores the estimate of the number of names recalled in the FRN condition (freely recall all the names = FRN) intrusionOtherFRN: stores all the recalled names that were not part of the original list (Note: might also contain misspelled names!) in the FRN condition responseFRO: stores the entered freely recalled occupations in the FRO condition (freely recall all the occupations = FRO) countCorrectFRO: counts the number of correctly recalled occupations in the FRO condition (freely recall all the occupations = FRO) wordEstimateFRO: stores the estimate of the number of occupations recalled in the FRO condition (freely recall all the occupations = FRO) intrusionOtherFRO: stores all the recalled occupations that were not part of the original list (Note: might also contain misspelled occupations!) in the FRO condition response FRN30: stores the entered freely recalled names in the FRN30 condition (freely recall all the names with 30 min delay = FRN30) countCorrectFRN30: counts the number of correctly recalled names in the FRN30 condition (freely recall all the names with 30 min delay = FRN30) wordEstimateFRN30: stores the estimate of the number of names recalled in the FRN30 condition (freely recall all the names with 30 min delay = FRN30) intrusionOtherFRN30: stores all the recalled names that were not part of the original list (Note: might also contain misspelled names!) in the FRN30 condition responseFRO30: stores the entered freely recalled occupations in the FRO30 condition (freely recall all the occupations with 30 min delay = FR030) countCorrectFRO30: counts the number of correctly recalled occupations in the FRO30 condition (freely recall all the occupations with 30 min delay = FR030) wordEstimateFRO30: stores the estimate of the number of occupations recalled in the FRO30 condition (freely recall all the occupations with 30 min delay = FR030) intrusionOtherFRO30: stores all the recalled occupations that were not part of the original list (Note: might also contain misspelled occupations!) in the FRO30 condition ___________________________________________________________________________________________________________________ EXPERIMENTAL SET-UP ___________________________________________________________________________________________________________________ (1) script pairs images with names and occupations by their respective itemnumbers (default) (Note: the pairings can be randomized by changing paramters.randomPairings) (2) FaceStudy: presents 4 trials of 4 randomly selected faces for initial familiarization. Each trial lasts 8s. (3) FaceNameStudy: presents 4 trials of 4 randomly selected faces with assigned names for name-face association study. Each trial lasts 20s. (4) Initial Learning of Names (ILN): presents all 16 faces, one at a time (faces are randomly selected) and collects written name input. (5) FaceOccupationStudy: presents 4 trials of 4 randomly selected faces with assigned occupations for name-occupation association study. Each trial lasts 20ss. (6) Initial Learning of Occupations (ILO): presents all 16 faces, one at a time (faces are randomly selected) and collects written occupation input (7) Free Recall of Names (FRN): provides a textbox and collects written input of recalled names. (8) Free Recall of Occupations (FRO): provides a textbox and collects written input of recalled occupations. (9) Cued Recall of both Names and Occupations (CR): presents all 16 faces, one at a time (faces are randomly selected) and collects written name and occupation input (10) Break (default: 30minutes) (11) 30 min Delayed Free Recall of Names (FRN30): provides a textbox and collects written input of recalled names after a delay of 30min (default) (12) 30 min Delayed Free Recall of Occupations (FRO30): provides a textbox and collects written input of recalled occupations after a delay of 30min (default) (13) 30 min Delayed Cued Recall of both Names and Occupations (CR30): presents all 16 faces, one at a time (faces are randomly selected) and collects written name and occupation input after a delay of 30min Recall Tasks: Algorithm to estimate number of recalled words: In general this algorithm uses the number of a specific word separator (here: comma) to estimate the number of words in between the separators. The algorithm uses several steps to clean up the text input to ensure as much as possible that only single commas are used as word separators. It also adds a comma before the first entry and after the last entry. Steps: (1) textbox response is stored in values.Recall as lower case letters (Example: values.Recall = "anna; britta; claire") (note: there is a space AND a ; after britta and anna) (2) values.Recall replaces 7 types of possible word separator symbols (e.g. ";", " ") with a comma (Example: values.Recall = "anna,,britta,,claire") (3) values.Recall adds a comma to the first item (Example: values.Recall = ",anna,,britta,,claire") (3) values.Recall replaces all consecutive commas with a single comma (Example: values.Recall = ",anna,britta,claire") (4) if values.Recall does not end in a comma at this point, this comma is added (Example: values.Recall = ",anna,britta,claire,") (5) the length of the variable values.Recall is stored in variable values.RecallLength (Example: values.RecallLength = 20) (6) a second variable (values.reducedRecall) deletes all commas in values.Recall (Example: values.reducedRecall = "annabrittaclaire" => length: 16) (7) the word count estimate = length of values.Recall* - length of values.reducedRecall - 1 (extra comma) (Example: estimate = 20 - 16 - 1 = 3) *with length = number of characters Note: the recall scoring algorithms implemented in this script depend on participants (a) using the implemented separators (b) make no spelling mistakes (c) don't use phonetically similar words (e.g. Clare instead of Claire) Manual checks of the raw data might be necessary to adjust the scores (e.g. check what is stored under values.intrusionOther) ___________________________________________________________________________________________________________________ STIMULI ___________________________________________________________________________________________________________________ 16 female faces (ethnicly diverse) taken from the internet (the original study does not specify gender) - can be replaced under section Editable Stimuli 16 names - can be replaced under section Editable Stimuli 16 occupations - can be replaced under section Editable Stimuli ___________________________________________________________________________________________________________________ INSTRUCTIONS ___________________________________________________________________________________________________________________ not original provided by Millisecond Software - can be replaced 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: /randomPairings: true (1): random pairings of images with names and occupations false (0): pairings are predetermined by itemnumbers (default) /faceStudy: the duration (in ms) assigned for each face-study trial (each trial presents 4 face images associations) (default: 8000ms) /nameFaceLearning: the duration (in ms) assigned for each name-face learning trial (each trial presents 4 name-face associations)(default: ) /occupationFaceLearning: the duration (in ms) assigned for each occupation-face learning trial (each trial presents 4 name-face associations) /recallDelay: the delay duration (in ms) of the delayed recall conditions (default: 30min => 1800000 ms) /nameSize: size of name/occupation label during study time in proportion to canvas height (default: 5%) /faceSize1: size of face photos during the study phase (default: 30%) /faceSize2: size of face photo during the cued recall testing phases (default: 50%)